Active Sheet in neue Datei mit VBA
Betrifft: Active Sheet in neue Datei mit VBA
von: Andreas
Geschrieben am: 06.08.2014 18:37:07
Hallo Excelfreunde,
Habe folgenden Code der auch funktioniert.
Mit diesem Code kann ich aus meinem aktiven Sheet über einen CommandButton das aktive Sheet in eine Neue Datei die welche laut Makro Vorgabe neu erstellt wird mit allen Inhalten sowie vorhandenen CommandButtons einfügen. Das ist auch so gewollt.
Sub Speichern3()
Dim strPath As String
Application.ScreenUpdating = False
ChDrive "D:\"
ChDir Sheets("Eingabe").Range("F3").Value ' Pfad aus Zelle F3
Sheets("Eingabe").Copy
strPath = Application.GetSaveAsFilename(InitialFileName:=Sheets("Eingabe").Range("D5").Value & ".xls", FileFilter:="Exceldateien (*.xls),*.xls,Alle Dateien (*.*), *.*") If strPath = "False" Or strPath = "Falsch" Then Exit Sub
ActiveWorkbook.SaveAs strPath
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub
Jetzt möchte ich aber noch verschiedene andere Sheets (aber eben nicht alle) aus der aktiven Datei auf die gleiche Weise kopieren und in die neue Datei einfügen. Wenn das neue Sheet in der neuen Datei schon vorhanden ist soll es nicht reinkopiert werden und eine Meldung kommen. Wenn das zu kopierende Sheet noch nicht in der neu erstellten Datei vorhanden ist soll es eingefügt werden.
Das kann ich aber mit diesem Makro nicht machen.
Ich habe aber noch ein Makro
Private Sub TabellenblattSpeichern()
'ActiveSheet.Name = ActiveSheet.Range("D13")
'ActiveSheet.Copy After:=Workbooks("Teilnehmerliste_ViA.xlsm").Sheets(Sheets.Count)
ActiveSheet.Copy After:=Workbooks("Teilnehmerliste_ViA.xlsm").Sheets(Workbooks(" _
Teilnehmerliste_ViA1.xlsm").Sheets.Count)
'ActiveSheet.Shapes.Range(Array("CommandButton1")).Select
'Selection.Delete
'ActiveSheet.Shapes.Range(Array("CommandButton2")).Select
'Selection.Delete
'ActiveSheet.Shapes.Range(Array("CommandButton3")).Select
'Selection.Delete
End Sub
mit diesem Makro fett dargestellte Codezeile kann ich das aktive Sheet kopieren. Dieses wird aber in meine aktive Datei eingefügt. Ich will aber das mit dieser Codezeile das wie zuvor beschrieben das aktive Sheet in die Neu erstellte Datei eingefügt wird.
Wie muß ich dies in mein erstes Makro mit einbauen. Leider krieg ich das ohne hilfe nicht hin.
Kann mir jemand meinen ersten Code dementsprechend anpassen. Meine VBA Kenntnisse sind noch eher mangelhaft. Sorry
liebe Grüße Andreas
Betrifft: AW: Active Sheet in neue Datei mit VBA
von: Luschi
Geschrieben am: 06.08.2014 18:47:35
Hallo Andreas,
ActiveSheet.Copy
kopiert die gerade sichtbare Tabelle in eine neue leere Arbeitsmappe.
Gruß von Luschi
aus klein-Paris
Betrifft: AW: Active Sheet in neue Datei mit VBA
von: Andreas
Geschrieben am: 06.08.2014 19:37:27
Hallo Luschi,
klappt nicht mit meinem Code
trotzdem Danke
hier nochmal kurz mein Problem geschildert
Private Sub CommandButton3_Click()
Speichern3
End Sub
Sub Speichern3()
Dim strPath As String
Application.ScreenUpdating = False
ChDrive "D:\"
' Pfad fest vorgeben
ChDir "D:\Users\OH"
' Pfad aus Zelle C1
'ChDir Sheets("Tabelle1").Range("C1").Value
Sheets("Eingabe").Copy
strPath = Application.GetSaveAsFilename(InitialFileName:=Sheets("Eingabe").Range("D5").Value & ".xls", FileFilter:="Exceldateien (*.xls),*.xls,Alle Dateien (*.*), *.*")
If strPath = "False" Or strPath = "Falsch" Then Exit Sub
ActiveWorkbook.SaveAs strPath
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub
habe Deine Codezeile anstatt meiner Codezeile "Sheets("Eingabe").Copy"
an gleicher Stelle in meinem Code ersetzt gehabt. Leider ohne erfolg.
Der Code kopiert eben nur immer ein ausgewähltes Tabellenblatt in die neue Datei. Wenn ich jetzt aber ein neues (zweites) ausgewähltes Tabellenblatt in die neue Datei einfügen will macht der Code dies eigentlich auch. Nur jetzt wird dann meine Neue vorhandene Datei überschrieben und ich habe wieder nur das eine gerade vorher selektierte Tabellenblatt in meiner neuen Datei.
Ich will aber das die Datei nicht überschrieben wird und alle neu einzufügenden Tabellen eingefügt werden.
Dies hätte ich gern in meinem Makro mit eingebaut.
Kann mir da einer weiterhelfen? Und meinen Code dementsprechend anpassen?
Brauch echt Hilfe dazu.
liebe Grüße Andreas
Betrifft: AW: Active Sheet in neue Datei mit VBA
von: Uduuh
Geschrieben am: 06.08.2014 20:30:17
Hallo,
hilft dir
sheets(array("Tabelle1", "tabelle2","etc")).copy
weiter?
Gruß aus’m Pott
Udo
Betrifft: AW: Active Sheet in neue Datei mit VBA
von: Andreas
Geschrieben am: 06.08.2014 20:40:55
Hallo Uduuh,
Super das wars.
funktioniert bestens. Wenn ich jetzt in das Array alle meine Tabellen mit Namen eintrage werden sie mit allen Formatierungen , Formeln und allen vorhandenen CommandButtons kopiert. So wollte ich das haben.
Somit ist mein Problem gelöst.
Nochmals besten Dank
liebe Grüße Andreas