HERBERS Excel-Forum - das Archiv
Arbeitsblatt speichern
Meier

Hallo, ich habe folgenden Wunsch:
Ich will ein Arbeitsblatt mit einer Schaltfläche in enem Verzeichnis speichern. z.B. Zelle A1, darin steht der Name und die Rech.Nr.
Soweit habe ich das hinbekommen. Ich will aber bei der Kopie weder die Schatfläche noch das ganze Arbeitsblatt gespeichert haben, lediglich die sogennante Din A4 Seite z.B. (A1:H60)?
Wer kann mich in dieser Angelegenheit unterstützen?
Bitte um Hilfe!
Mfg
WilliMeier

AW: Arbeitsblatt speichern
Backowe

Hi Willi,
Private Sub CommandButton1_Click()
Dim wb As Workbook, wbneu As Workbook
Set wb = ThisWorkbook
Set wbneu = Workbooks.Add
wb.Sheets("Tabelle1").[A1:H60].Copy _
  Destination:=wbneu.Sheets("Tabelle1").[A1]
Application.DisplayAlerts = False
With wbneu
  .SaveAs "C:\test.xls"
  .Close savechanges:=False
End With
Application.DisplayAlerts = True
End Sub

AW: Arbeitsblatt speichern
Meier

Hi Backowe
Vielen Dank für die prompte Antwort, aber die Lösung hat nichts gebracht.
Anbei ein Makro, das ich über einen Button auf der zuspeicherten Seite starte.
Die Speicherung funktioniert wie gewünscht. Nur einen Schönheitsfehler hat die Sache:
1. Das gespeicherte Arbeitsblatt (hier "Lieferschein") bleibt nach der Speicherung voll markiert.
2. Dér Button bleibt auf der gespeicherten Datei sichtbar.
3. Wenn ich die gespeicherte Datei (die Datei heißt dann "Kundenname&Lieferscheinnummer",
ist auf dem Originalblatt in Zelle A1 hinterlegt, dann weiter bearbeiten möchte muß ich die Markierung
entfernen.
Störend ist dann nur noch der sichtbare Button.
Hier das Makro


Sub TabellenblattSpeichern()
Dim WNeueDatei As String, Pfad As String, WName1 As String, Wname2 As String
Pfad = "C:\Getränkelieferung\Lieferschein\"
WNeueDatei = Range("A1")
WName1 = ActiveWorkbook.Name
Workbooks.Add
Wname2 = ActiveWorkbook.Name
Windows(WName1).Activate
Cells.Select
Selection.Copy
Windows(Wname2).Activate
Cells.Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveWorkbook.SaveAs Filename:= _
"C:\Getränkelieferung\Lieferschein\" & WNeueDatei & ".xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
ActiveWorkbook.Close
End Sub


Vielleicht geht Dir beim Lesen des Makros ein Licht auf, das für mich eine Hilfe ist.
Wie gesagt im Prinzip funktioniert es, aber eben mit den Schönheitsfehlern.
Vielen Dank vorab.
Mfg
Willi

AW: Arbeitsblatt speichern
Backowe

Hallo Willi,
der ich habe Deinen Code, den Du mit dem Makrorecorder aufgezeichnet hast, schon verstanden.
Schau Dir mal den Code genauer an, ich habe ihn dokumentiert.
Private Sub CommandButton1_Click()
Dim wb As Workbook, wbneu As Workbook
Dim Pfad As String
'Speicherpfad
Pfad = "C:\Getränkelieferung\Lieferschein\"
Set wb = ThisWorkbook
Set wbneu = Workbooks.Add
'Kopiere aus dieser Mappe in Tabelle 1 den Bereich A1:H60
'in ein neues Workbook
'Da in A1 der Dateiname steht habe ich den Bereich auf die
'zweite Zeile angepasst!
'Bei mir wird kein Button mitkopiert!
wb.Sheets("Tabelle1").[A2:H60].Copy _
  Destination:=wbneu.Sheets("Tabelle1").[A1]
'Falls die Datei schon existieren sollte, wird die aufpoppende
'Fehlermeldung unterdrückt
Application.DisplayAlerts = False
'Das neue Workbook wird im Pfad gespeichert und das
'hinzugefügte Workbook geschlossen ohne zu speichern
With wbneu
  .SaveAs Pfad & wb.Sheets("Tabelle1").[A1] & ".xls"
  .Close savechanges:=False
End With
'Die Bildschirmfehlermeldungen werden wieder eingeschaltet!
Application.DisplayAlerts = True
End Sub
Gruss Jürgen