Mittels Makro Excel-Datei speichern
Hallo
Können Sie mir helfen?
Ich möchte ein Dokument mittels eines Macros wie folgt speichern (auf C: \Privat-Doku):
nur Tabelle1 und die Spalten A1 bis I52 ohne Formeln und Makros.
Vielen Dank für Ihre Unterstützung.
Freundliche Grüsse
François
Antwort schreiben
Antwort 1 von Saarbauer vom 12.02.2020, 09:05 Options
hallo,
zeichne dir ein entsprechendes Makro auf, damit ist es ohne Probleme zu erledigen.
Mit dem speichern der Tabelle 1 wirst du nach löschen der übrigen keine Probleme haben, aber nur den Bereich A1 bis I52 geht nach meinem Kenntnisstand, zumindest bis excel 2003 nicht. dort ist nur das ganze Blatt zu speichern.
Eine Lösung wäre den Rest zu löschen.
Gruß
Helmut
Antwort 2 von Francis vom 12.02.2020, 10:30 Options
Hallo Helmuth
Vielen Dank für deine Antwort.
Dies ist genaue mein Problem!
Ich habe bereits Makro, das mein Dokument speichert.
Aber ich habe zwei Probleme mit:
1) dieses Dokument hat 5 Tabellen, und ich will nur Tabelle1 speichern.
2) im Prinzip will ich nur den Druckbereich speichern.
Hier mein Makro:
Sub Speichern()
Dim nom As String
Dim pfad As String
pfad = "C:\Dokumente und Einstellungen\Rechnungen\"
nom = Range("c24")
ActiveWorkbook.SaveAs Filename:=pfad & nom
End Sub
Gruss
Francis
Antwort 3 von Francis vom 13.02.2020, 17:13 Options
Hallo Leute
Mittels ein MaKro drucke ich meine Rechnung, nach dieser Aktion werden einige Angaben in eine andere Tabelle (Rechnungskontrolle) exportiert, dann wird das Rechnungsformular (Tabelle "Rechnung") aktualisiert (alle Daten, ausser der Fortlaufende Rechnungsnummer,
werden gelöscht. ). Dies funktioniert einwandfrei.
Nun habe ich ein Problem für die folgende Etappe!
Zwischen Daten-Export und Aktualisierung des Rechnungsformulars will ich:
a) Die Rechnung in einem Ordner auf C:\ speichern (nur die Tabelle "Rechnung", Spalten A1:I52)
-Dateiname: "Rechnungsnummer".xls (Spalte C24 im Formular)
Viele Dank für Eure Hilfe.
Mfg
Francis
Hier mein Makro:
Sub PrintInvoice()
Dim response
Sheet1.PrintOut
'response = MsgBox("Do you need another copy?", vbYesNo + vbQuestion, "Confirmation")
'If response = vbNo Then
Call FillInvoiceList
Call NewInvoice
'Else
'End If
End Sub
Private Sub FillInvoiceList()
Dim rngInvNumber As Range
Set rngInvNumber = Range("Rechnungskontrolle!A2:A2000")
For i = 1 To 2000
With rngInvNumber
If .Cells(i, 1) = "" Then
.Cells(i, 1).Value = Sheet1.Range("c24").Value
.Cells(i, 3).Value = Sheet1.Range("j2").Value
.Cells(i, 4).Value = Sheet1.Range("i45").Value
.Cells(i, 5).Value = Sheet1.Range("i46").Value
.Cells(i, 6).Value = Sheet1.Range("i48").Value
.Cells(i, 7).Value = Sheet1.Range("c20").Value
Exit For
End If
End With
Next i
End Sub
Sub NewInvoice()
Dim rngInvNumber As Range
Sheet1.Select
Sheet1.Range("NeedDel").Select
Selection.ClearContents
Sheet1.Range("c24").Select
Set rngInvNumber = Range("Rechnungskontrolle!A2:A2000")
For i = 1 To 2000
If rngInvNumber.Cells(i, 1) = "" Then
If Not IsNumeric(rngInvNumber.Cells(i - 1, 1).Value) Then
Sheet1.Range("c24").Value = Sheet1.Range("j4").Value
Else
Sheet1.Range("c24").Value = rngInvNumber.Cells(i - 1, 1).Value + 1
End If
Exit For
End If
Next i
Sheet1.Select
Sheet1.Range("j2").Select
End Sub