103540
02.03.2012
16719
13
0
Excel VBA - Tabelle per Button-Klick abspeichern. Speichername setzt sich aus einem Text und einem Zellinhalt zusammen.
Moin,
ich habe ein commandbutton der nach dem Klick die Arbeitsmappe abspeichern soll. Dies funktioniert schon... allerdings möchte ich, dass der Speichername sich aus einem Text (nämlich "000") und einer Vorgangsnr. (befindet sich in G30) zusammensetzt.
Also nach dem Klick des Buttons (wenn die Vorgangsnr. z.B. 12 ist) wird die Tabelle als 00012.xlsm in einem Unterordner (Unterordner heisst = Vorgänge) abgespeichert.
Hier mein bisheriger Code... den hab ich aus verschiedenen Codes die ich im Netz gefunden habe zusammengebastelt...
Es öffnet sich zwar das Fenster zum abspeichern, aber es wird mein definierter Text als Speichername nicht angezeigt. Zusätzlich fehlt die Funktion mit dem Unterordner komplett.
Ich hoffe jemand kann mir helfen...
Grüße
Amiga500
ich habe ein commandbutton der nach dem Klick die Arbeitsmappe abspeichern soll. Dies funktioniert schon... allerdings möchte ich, dass der Speichername sich aus einem Text (nämlich "000") und einer Vorgangsnr. (befindet sich in G30) zusammensetzt.
Also nach dem Klick des Buttons (wenn die Vorgangsnr. z.B. 12 ist) wird die Tabelle als 00012.xlsm in einem Unterordner (Unterordner heisst = Vorgänge) abgespeichert.
Hier mein bisheriger Code... den hab ich aus verschiedenen Codes die ich im Netz gefunden habe zusammengebastelt...
Es öffnet sich zwar das Fenster zum abspeichern, aber es wird mein definierter Text als Speichername nicht angezeigt. Zusätzlich fehlt die Funktion mit dem Unterordner komplett.
Private Sub button2_Click()
ActiveSheet.Unprotect
'Variablen deklarieren
Dim var1 As String
Dim var2 As String
fileSaveName = Application.GetSaveAsFilename( _
fileFilter:="Microsoft Office Excel-Arbeitsmappe (*.xlsm), *.xlsm")
If fileSaveName = False Then
'wenn im Dialogfeld auf Abbrechen geklickt wurde...
MsgBox "Vorgang wurde abgebrochen !" & vbCr & _
"Datei wurde NICHT gespeichert ", _
vbOKOnly, "Achtung....."
Else
'Werte aus den Zellen auslesen
var1 = "000"
var2 = Tabelle1.Cells(7, 30)
'Arbeitsmappe unter dem zusammengesetzten Dateinamen speichern
ThisWorkbook.SaveAs var1 & "_" & var2 & ".xlsm"
End If
ActiveSheet.Protect
End Sub
Ich hoffe jemand kann mir helfen...
Grüße
Amiga500
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 181332
Url: https://administrator.de/contentid/181332
Ausgedruckt am: 23.11.2024 um 01:11 Uhr
13 Kommentare
Neuester Kommentar
Hallo Amigaa500
probier mal die Zeile 08 durch
zu ersetzen
Mit deiner Ordnergeschichte könntest du circa so vorgehen
(was zum spielen)
Gruss
Tsuki
probier mal die Zeile 08 durch
var2 = Range("G32").Value
Mit deiner Ordnergeschichte könntest du circa so vorgehen
(was zum spielen)
NeuerOrdner = "Vorgaenge"
Set FSO = CreateObject("Scripting.FileSystemObject")
if not FSO.Folderexists (NeuerOrdner) then
Set OrdnerPfadNeu = FSO.CreateFolder(NeuerOrdner)
End If
Gruss
Tsuki
Bevor du ins Wochenende gehst vielleicht noch das hier
Schönes WE
Tsuki
Nach dem Klick des Buttons soll er trotzdem noch in der ursprünglichen Excel Tabelle bleiben.
das ginge eventuell mitWindows("MeineUrspruenglicheExcelTabelle").Activate
' dann das Abspeichern
ActiveSheet.Unprotect
Dim var1 As String
Dim var2 As String
var1 = "000"
var2 = Range("G32").Value
ThisWorkbook.SaveAs var1 & var2 & ".xlsm"
ActiveSheet.Protect
Schönes WE
Tsuki
Also ich hab's nochmal als funktionierendes Beispiel in einem Testcode zusammengefasst
Bei Mappe1 muss nur rein, wie deine Exceldatei heisst (Bsp.: Meine.xls -> dann Meine) etc.
Gruss
Tsuki
Private Sub CommandButton1_Click()
Windows("Mappe1").Activate
Dim var1 As String
Dim var2 As String
var1 = "000"
var2 = Range("G32").Value
NeuerOrdner = "Vorgaenge"
Set FSO = CreateObject("Scripting.FileSystemObject")
If Not FSO.Folderexists(NeuerOrdner) Then
Set OrdnerPfadNeu = FSO.CreateFolder(NeuerOrdner)
End If
ThisWorkbook.SaveAs NeuerOrdner & "\" & var1 & var2 & ".xls"
End Sub
Bei Mappe1 muss nur rein, wie deine Exceldatei heisst (Bsp.: Meine.xls -> dann Meine) etc.
Gruss
Tsuki
Index ist in Zeile 14 außerhalb des gültiges Bereichs sagt er mir beim Ausführen (Laufzeitfehler '9')
Logisch!Weil, du speicherst unter... und damit ist deine Antrag.xlsm nicht mehr "da"
aber mit
ThisWorkbook.Close
Workbooks.Open Filename:="C:\Users\luczakd\_Diverses\ss\Antrag.xls"
funktionieren.
Gruss
Tsuki