Microsoft Excel

Herbers Excel/VBA-Archiv

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

Speicherung eines Excel-Blattes

Betrifft: Speicherung eines Excel-Blattes von: Klaus Peter
Geschrieben am: 06.09.2004 09:19:03

Hallo,

ich habe ein Problem.

Ich habe ein Excel-Tabellenblatt mit Wochenberichten, bei dem man über indirekte Adressierung mit Eingabe der Wochenzahl auf die entsprechende Woche zugreifen kann.
Ich möchte jetzt immer eine Woche seperat speichern können.

Ich hab dafür das in VBA geschrieben:

Private Sub cmdDelete_Click()

txtSpeicherort.Text = ""

End Sub


Private Sub cmdSave_Click()

Call AktivesBlattSpeichern

End Sub


Sub AktivesBlattSpeichern()
Dim SpeichernUnter As String

SpeichernUnter = txtSpeicherort
ActiveSheet.Copy

' Ersetzung der Formeln durch Werte

Cells.Copy
'Diese Zeile verursacht den Laufzeitfehler
ActiveSheet.Paste
Cells(1, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Cells(1, 1).Select
Application.CutCopyMode = False

ActiveWorkbook.SaveAs Filename:=SpeichernUnter
txtSpeicherort.Text = ""
ActiveWindow.Close

ThisWorkbook.Activate

End Sub

Allerdings funktioniert das nicht wie erhofft.
Zwei Probleme:
1. Dieses Skript speichert das gesamte Tabellenblatt ab und nicht nur eine einzelne Woche.
2. Dieses Skript verursacht Laufzeitfehler 1004, da die Zellengröße des Originals nicht gleich groß ist.

Bin für jede Anregung dankbar.

Vielen Dank
Klaus Peter
  


Betrifft: AW: Speicherung eines Excel-Blattes von: Lars Jungclaus
Geschrieben am: 08.09.2004 12:52:43

Hallo Peter,

versuche es mal damit.

Etwas angepasst:

Sub BlattSpeichern()
Dim tbname$
    tbname = InputBox("Blattname:")
    If tbname = "" Then Exit Sub
    WBName = InputBox("Dateiname:")
    If WBName = "" Then Exit Sub
    Worksheets(tbname).Copy
    ActiveWorkbook.SaveAs WBName
    ActiveWorkbook.Close
End Sub


müßte das gehen.

MfG Lars Jungclaus (Excel-Tuning)