Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Arbeitsmappe speichern

Arbeitsmappe speichern
13.12.2012 16:11:01
Timo
Hallo,
ich möche von meiner Arbeitsmappe per Makro eine Kopie speichern.
Das ist auch kein Problem für mich.
Dies Datei ist allerdings sehr groß. Ich benötige bei der Kopie nur 2 Tabellenblätter und den kompletten VBA-Code.
Kann ich von 8 Tabellenblättern nur 2 Tabellenblättern in eine neue Mappe kopieren aber den kompletten VBA-Code (Userform, Module, Code der Tabellenblätter) mitnehmen?
Gruß
Timo

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitsmappe speichern
13.12.2012 16:55:52
UweD
Hallo
- per Makro als Kopie speichern
- dann per Makro alle nicht benötigten Tabellenblätter löschen
- nochmal speichern
gruß UweD

AW: Arbeitsmappe speichern
13.12.2012 17:00:32
Henrik
Hallo Timo,
hiermit solltest du etwas anfangen können mit deinem vba Status. 2 Möglichkeiten Blätter zu löschen.

Sub Kopie()
Dim wksName As String, wks As Worksheet
wksName = "C:\Users\Admin\Desktop\DA.xlsm"
ActiveWorkbook.SaveCopyAs wksName
Workbooks.Open (wksName)
With Workbooks(VBA.Right(wksName, VBA.Len(wksName) - VBA.InStrRev(wksName, "\", ,  _
vbTextCompare)))
'.Worksheets(Array(1, 3)).Select
For Each wks In .Worksheets
'wks.Name
Next
End With
End Sub

Gruß Henrik

Anzeige
AW: Arbeitsmappe speichern
13.12.2012 20:25:44
schauan
Hallo Timo,
die codes in DieseArbeitsmappe, Module und userforms bleiben in der Mappe, wenn Du sie als Kopie speicherst.
Wenn nicht, gibt es hier einige Beispiele für die Übernahme, z.B. das:
Übersicht:
https://www.herber.de/xlfaq/index.html#VBE
Modul "kopieren"
https://www.herber.de/mailing/013398h.htm
Im Prinzip werden die Dinger per Makro exportiert und in der neuen Mappe importiert.
Nach gleichem Muster geht es mit Userforms und Klassenmodulen.
Die codes aus DieseArbeitsmappe und den Tabellenblättern kannst Du zeilenweise auslesen und in der neuen Mappe einlesen. Allerdings habe ich schon erlebt, dass das Einfügen von code in DieseArbeitsmappe Probleme machen kann.
Code aus Tabellenblatt übertragen
https://www.herber.de/mailing/Makro_aus_einer_Arbeitsmappe_in_die_Personlxls_kopieren.htm
 Hoffe, geholfen zu haben. Grüße, André aus G in T  (xls 97-2013)

Anzeige
AW: Arbeitsmappe speichern
14.12.2012 08:45:59
Timo
Hallo Hendrik,
Danke für Deine Antwort.
so etwa hatte ich das auch gelöst.
Allerdings habe ich dann beim Öffnen der Kopie das Problem erst über "Inhalt aktivieren" gehen zu müssen. Sonst läuft der Code nicht durch.
Gruß Timo

? Läuft in 2007
14.12.2012 11:26:53
Henrik
Hallo Timo,
der Code kommt in ein Modul der Mappe (Quelle), von der eine Kopie erstellt werden soll.
Sollte in der (Quelle) ein workbook_open Ereignis sein wird dieses mit gespeichert.
In meinem Office 2007 wird eine ordentliche Kopie erstellt, die Kopie geöffnet und auch das dort enthaltene workbook_open Ereignis problemlos ausgeführt.
Hast du deine (Quelle) vorher gespeichert als Datei mit Makros?
Dann weiß ich nicht woran es bei dir liegt. Vielleicht 2010.
Gruß Henrik

Anzeige
AW: ? Läuft in 2007
14.12.2012 12:00:42
Timo
Hallo Hendrik,
ich verstehe das auch nicht mehr. Hier mal mein Code. Der läuft durch bis zu dem Zeitpunkt wo die Tabellenblätter gelöscht werden sollen. Dann springt er auf den Entwurfsmodus. Wenn ich diesen dann deaktivieren will kommt folgende Fehlermeldung:
"Aufgrund der Sicherheitseinstellungen wurden Makros deaktiviert. Zum Ausführen von Makros müssen sie diese Arbeitsmappe erneut öffnen und dann Makros aktivieren. Klicken Sie auf 'Hilfe' , um weitere Informationen zum Aktivieren von Makros zu erhalten."

Private Sub CommandButton2_Click()
Dim InI As Integer
Dim Pfad, heute, Datum, strFileName, cstrPathName, SatzName
Dim i As Long
Dim sh As Worksheet
If Sheets("Ergebnis_Satz").Satz = "" Then
MsgBox "Bitte Satz auswählen", vbCritical, "F E H L E R"
Exit Sub
Else
End If
'Pfad ermitteln
Pfad = ActiveWorkbook.Path
heute = Now
Datum = Format(heute, "dd_mm_yyyy_hh_mm") ' das Jahr herausfinden
' Filename aus Auswahl ermitteln
SatzName = Sheets("Ergebnis_Satz").Satz
strFileName = Sheets("Ergebnis_Satz").Satz & "_Projektstand_gesamt_vom_" & "_" & Datum & ".xlsm" _
' in Path
cstrPathName = Pfad & "\Auswertung\" & Sheets("Ergebnis_Satz").Satz
'Schauen ob der der Ordner schon vorhanden ist und wenn nicht erstellen
If Dir(Pfad & "\Auswertung\" & SatzName, vbDirectory) = "" Then
MkDir (Pfad & "\Auswertung\" & SatzName)
Else
End If
ActiveWorkbook.SaveCopyAs (cstrPathName + "\" + strFileName)
Application.Workbooks.Open (cstrPathName + "\" + strFileName)
Windows(strFileName).Activate
Application.DisplayAlerts = False
'alle Blätter einblenden
For Each sh In Sheets
sh.Visible = True
Next sh
'Blätter löschen
For Each sh In Sheets
If sh.Name  "Ergebnis_Satz" And sh.Name  "Daten_Satz" Then sh.Delete
Next
On Error Resume Next
'Combobox löschen
Sheets("Ergebnis_Satz").Activate
ActiveSheet.Shapes.Range(Array("Satz")).Select
Selection.Delete
Sheets("Daten_Satz").Visible = False
With ActiveWorkbook
.Save
.Close
End With
Application.DisplayAlerts = True
Windows("Soll-Ist.xlsm").Activate
End Sub

Anzeige
AW: ? Läuft in 2007
14.12.2012 18:37:20
schauan
Hallo,
der code läuft auch unter 2010. Wer weiß, was noch so in der Mappe steckt :-(
 Hoffe, geholfen zu haben. Grüße, André aus G in T  (xls 97-2013)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige