Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1084to1088
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

Makro per Makro in neue Datei kopieren

Makro per Makro in neue Datei kopieren
miss18
Guten Morgen alle zusammen,
ich hoffe Ihr könnt mir noch einmal helfen.
Ich habe folgendens Makro (siehe SUB AbteilungX) für die Freigabe der Dokumentenübersicht für eine bestimmte Abteilung. Diese Freigabe-Makros sind in einer Exceldatei (.xls). Wenn ich die Datei sozusagen freigebe, wird aus der Original-Exceldatei (.xls) eine Kopie als XLT (damit mehrere MA gleichzeitig darauf arbeiten können) gespeichert und diese wird dann den MA zur Verfügung gestellt. Von da aus können sie die Dokumente herunterladen.
Da die Datei aber XLT zur Verfügung gestellt wird, ist das Problem wenn der MA diese schliessen _
will, kommt die Abfrage wegen dem speichern. Diese will ich nun deaktivieren. Dafür habe ich das passende Makro schon gefunden allerdings muss ich dieses Makro in das untere nun irgendwie einbauen, dass er automatisch wenn es als XLT gepseichert wird in "DieseArbeitsmappe" dieses kleine Makro (siehe Private Sub Workbokk ...) dort hinterlegt. Da bei jeder Freigabe das XLT überschrieben wird ( _
alle 2-3 Tage) kann ich es nicht immer per Hand integireren.
Könnt Ihr mir bitte helfen wie ich das kleine Makro in das große einbauen kann? Ich weiß es gä _
be andere möglichkeiten wie z.B.
- nicht als XLT abspeichern: muss da mehrere Mitarbeiter gleichzeitg darauf arbeiten müssen
- das kleine Makro in die Original-Datei einbauen: zu großes Risiko, da mehrere MA mit dieser _
Datei arbeiten und nicht jeder so gewissenhaft ist und regelmäßig abspeichert.
Das heißt dieses System ist laut meinem Vorgesetzten nicht stark veränderbar und somit ist der _
Einbau des kleinen Makro in das große Makro der einzige Weg, den wir haben.
Ich hoffe, Ihr könnt mir noch einmal Mal helfen, da ich endlich dieses Projekt abschliessen _
will und das hoffentlich das letzte Hindernis ist.
Vielen vielen Dank im Voraus.
GLG Denise

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayAlerts = False
ThisWorkbook.Close False
Application.DisplayAlerts = True
End Sub



Sub AbteilungX()
'Speicher des Dokumentes als xlt
ActiveWorkbook.SaveAs Filename:= _
ActiveWorkbook.Path & "\AbteilungX.xlt", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=True
' Links oben in Tablellenblatt springen
Sheets("AbteilungX").Select
Range("B2:H2").Select
' Speichern im Ordner
ActiveWorkbook.SaveAs Filename:= _
ActiveWorkbook.Path & "\AbteilungX.xlt", _
FileFormat:=xlTemplate, ReadOnlyRecommended:=False, CreateBackup:=True
' Schliessen von Excel
Windows("AbteilungX.xlt").Activate
ActiveWindow.Close SaveChanges = True
End Sub


6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Makro per Makro in neue Datei kopieren
02.07.2009 10:42:12
Kawensmann
Hallo,
hier mal ein Ansatz:
Wichtig: Du musst im VBA-Editor über Extra|Verweise einen Verweis auf die
"Microsoft visual basic for applications extensibility 5.3" setzen!

Sub AbteilungX()
Dim cm As CodeModule
Dim i As Integer
Dim strCode As String
'Speicher des Dokumentes als xlt
ActiveWorkbook.SaveAs Filename:= _
ActiveWorkbook.Path & "\AbteilungX.xlt", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=True
strCode = "Private Sub Workbook_BeforeClose(Cancel As Boolean)" & Chr(13)
strCode = strCode & "Application.DisplayAlerts = False" & Chr(13)
strCode = strCode & "ThisWorkbook.Close False" & Chr(13)
strCode = strCode & "Application.DisplayAlerts = True" & Chr(13)
strCode = strCode & "End Sub"
Set cm = ActiveWorkbook.VBProject.VBComponents("DieseArbeitsmappe").CodeModule
With cm
i = .CountOfLines + 1 ' Falls schon Code vorhanden ist, soll dieser nicht überschrieben  _
werden
.InsertLines i, strCode
End With
' Links oben in Tablellenblatt springen
Sheets("AbteilungX").Select
Range("B2:H2").Select
' Speichern im Ordner
ActiveWorkbook.SaveAs Filename:= _
ActiveWorkbook.Path & "\AbteilungX.xlt", _
FileFormat:=xlTemplate, ReadOnlyRecommended:=False, CreateBackup:=True
' Schliessen von Excel
Windows("AbteilungX.xlt").Activate
ActiveWindow.Close SaveChanges = True
End Sub


Dieser Code prüft aber nicht, ob schon eine Prozedur mit diesem Namen vorhanden ist!
Gruß
Kawensmann

Anzeige
AW: Makro per Makro in neue Datei kopieren
02.07.2009 11:22:33
miss18
Hallo Kawensmann, vielen Dank zunächst.
Habs gleich asuprobiert allerdings kommt mir die Fehlermeldung Laufzeitfehler 1004 und zwar hier:
Set cm = ActiveWorkbook.VBProject.VBComponents("DieseArbeitsmappe").CodeModule
Das mit Extra/Verweise hatte ich davor gemacht.
AW: Makro per Makro in neue Datei kopieren
02.07.2009 11:32:35
Kawensmann
Heißt das Modul denn bei dir "DieseArbeitsmappe"? Dies ist bei einem deutschen Excel der Standard-Name.
Im englischen "ThisWorkbook".
AW: Makro per Makro in neue Datei kopieren
02.07.2009 12:45:28
miss18
Es heißt DieseArbeitsmappe, sicherheitshalber halbe ich es auch mit der Englischen probiert. Die gleiche Fehlermeldung:
"Der programmatische Zugriff auf das Visual Basis Projekt ist nicht sicher".
Anzeige
AW: Makro per Makro in neue Datei kopieren
02.07.2009 12:48:38
Rudi
Hallo,
Extras-Makro-Sicherheit-Vertrauenswürdige Quellen, Haken bei 'Zugriff auf ...' rein.
Gruß
Rudi
AW: Makro per Makro in neue Datei kopieren
02.07.2009 12:54:14
miss18
Hallo Rudi
danke genau das wars. Jetzt hat es super funktioniert.
Und ein herzliches Dankeschön natürlich auch an Kawensmann für das Makro selber. Wirklich super.
Genau das was ich wollte. Perfekt. Dankeschön.
LG Denise

316 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige