Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

Arbeitsblatt speichern

Betrifft: Arbeitsblatt speichern von: Meier
Geschrieben am: 31.07.2008 12:08:00

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

  

Betrifft: AW: Arbeitsblatt speichern von: Backowe
Geschrieben am: 31.07.2008 13:58:29

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
Code eingefügt mit Syntaxhighlighter 4.15



  

Betrifft: AW: Arbeitsblatt speichern von: Meier
Geschrieben am: 31.07.2008 15:40:57

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


  

Betrifft: AW: Arbeitsblatt speichern von: Backowe
Geschrieben am: 31.07.2008 16:44:53

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
Code eingefügt mit Syntaxhighlighter 4.15


Gruss Jürgen


 

Beiträge aus den Excel-Beispielen zum Thema "Arbeitsblatt speichern"