Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1008to1012
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
neue Makros in Dateien übernehmen
17.09.2008 14:23:49
josef
Hallo Leute!
Es gibt 18 Excel-Listen, welche alle die gleichen Makros (auto-open, auto-close) hinterlegt haben.
Diese Listen werden von verschiedenen Personen bearbeitet und sind somit für mich nicht immer zugänglich.
Bei Änderung in diesen Makros muss ich nun immer warten, bis die Dateien für mich zugänglich sind, dann kann ich bei allen 18 Dateien das Modul (auto) löschen und das überarbeitete Modul (auto) einspielen.
Gibt es eine Möglichkeit diese Arbeiten so zu automatisieren, dass die Aktion z.Bsp. über einen Button (neue Makros übernehmen !) aufgerufen und abgearbeitet werden kann?
Danke
Josef

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: neue Makros in Dateien übernehmen
17.09.2008 16:31:16
Leonhard.Stempfle
Hallo Josef,
mit dem untenstehenden Code ersetze ich Module oder Userforms in mehreren Dateien.
Gruß Leo

Sub ObjektInAllenDateienErsetzen()
Application.ScreenUpdating = False
'Programmbeschreibung
'Entfernt in allen Exceldateien welche sich im selben Verzeichnis befinden das gewählte
Objekt und ersetzt es durch das neue Objekt. Code von VBA aus starten
Dim Objekt As String
Dim Pfad As String
Dim Mappe As String
Dim NewCode As String
Objekt = "Userform1" ' Name von Modul oder Userform als String eingeben
Pfad = ThisWorkbook.Path & "\"
NewCode = ThisWorkbook.Path & "\" & (Objekt) & (".bas")
'Beginn das Objekt aus den Dateien zu entfernen
Mappe = Dir(Pfad & "*.xls")
Do While Mappe  ""
On Error Resume Next
If Mappe = ThisWorkbook.Name Then GoTo Weiter1
Workbooks.Open Mappe
With ActiveWorkbook.VBProject
.VBComponents.Remove .VBComponents(Objekt)
End With
ActiveWorkbook.Save
Weiter1:
Mappe = Dir
Loop
'Ende das Objekt aus den Dateien zu entfernen
'Beginn Alle Dateien wieder schließen
Mappe = Dir(Pfad & "*.xls")
Do While Mappe  ""
If Mappe = ThisWorkbook.Name Then GoTo Weiter2:
Workbooks(Mappe).Close
Weiter2:
Mappe = Dir
Loop
'Ende Alle Dateien wieder schließen
'Beginn Objekt aus dieser Mappe exportieren
Application.VBE.ActiveVBProject.VBComponents(Objekt).Export NewCode
'Ende Objekt aus dieser Mappe exportieren
'Beginn Objekt in alle Mappen einzufügen
Mappe = Dir(Pfad & "*.xls")
Do While Mappe  ""
If Mappe = ThisWorkbook.Name Then GoTo Weiter3
Workbooks.Open Mappe
With Workbooks(Mappe)
.Application.VBE.ActiveVBProject.VBComponents.Import NewCode
.Save
End With
Weiter3:
Mappe = Dir
Loop
'Ende Objekt in alle Mappen einzufügen
'Beginn Kopie von Modul1 löschen
Kill (Pfad) & ("*.bas")
Kill (Pfad) & ("*.frx")
Kill (Pfad) & ("*.log")
'Ende Kopie von Objekt löschen
'Beginn Alle Dateien wieder schließen
Mappe = Dir(Pfad & "*.xls")
Do While Mappe  ""
If Mappe = ThisWorkbook.Name Then GoTo Weiter4:
Workbooks(Mappe).Close
Weiter4:
Mappe = Dir
Loop
'Ende Alle Dateien wieder schließen
Application.ScreenUpdating = True
End Sub


Anzeige
AW: neue Makros in Dateien übernehmen
17.09.2008 17:05:39
josef
Hallo Leo,
Danke für die Unterstützung.
Ich versuche gerade den code so umzuändern, dass ich das nun zu ändernde projekt vorbereite mit
With ActiveWorkbook.VBProject
.VBComponents.Remove .VBComponents(Objekt)
End With
nun kommt die meldung: "Der programmatische Zugriff auf das Visual Basic-Projekt ist nicht sicher"
? Was heißt das ? die Hilfe zeigt nichts an ?!
Josef
AW: neue Makros in Dateien übernehmen
17.09.2008 17:27:00
josef
Hallo Leo,
hab den Fehler gfunden - funktioniert.
Danke
Josef

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige