Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
548to552
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
548to552
548to552
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA-Code per Programm korrigieren

VBA-Code per Programm korrigieren
19.01.2005 08:38:43
Peter
Guten Morgen
Ich habe ein Zeiterfassungsprogramm in VBA erstellt. Seit 1.1.2005 wird es von mehreren Leuten benutzt.
Nun stelle ich fest, dass in den 12 Monatssheets, in welchen die gleiche VBA-Routine enthalten ist, ein Fehler auftritt und deshalb eine Programmzeile eingefügt werden muss.
Meine Frage: Gibt es eine Möglichkeit, diese Programmsequenz von aussen über ein Hilfsprogramm, welches ich den Leuten zustellen kann, anzupassen?
Wie müsste ich vorgehen?
Besten Dank zum Voraus für einen zweckdienlichen Vorschlag.
Freundliche Grüsse
Peter

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nur eine Anregung ...
19.01.2005 12:31:25
Russi
Hi Peter!
Habe leider keine Komplettlösung für Dich, aber schau Dir mal den Begriff "VBComponents" an, der sollte Dir eigentlich weiterhelfen. Zumindest ist es damit möglich, eine neue

Sub in eine Arbeitsmappe einzutragen:
Dim StrMakroText As String
StrMakroText = "

Sub TempMakro()" & Chr(10) _
& "    Kill " & """" & ThisWorkbook.FullName & """" & Chr(10) & _
& "    Thisworkbook.Close False" & Chr(10) & _
& "End Sub
"

' Temp-Datei generieren und Indexwert zuweisen
Dim IntMappe As Integer
Workbooks.Add
For IntMappe = 1 To Application.Workbooks.Count
If Workbooks(IntMappe).Name = Activeworkbook.Name Then Exit For
Next
'Makrozeilen in ausgeblendete Temp-Datei einfügen:
With Workbooks(IntMappe)
.Windows(1).Visible = False
.VBProject.VBComponents.Add (1)
With .VBProject
With .VBComponents(.VBComponents.Count).CodeModule
.AddFromString StrMakroText
End With
End With
End With
Hoffe, das hilft Dir wenigstens ein bisschen.
Viele Grüße
Russi
www.Russi.de.tt
Anzeige
AW: Nur eine Anregung ...
Peter
Hallo Russi
Besten Dank für die Programmsequenz. Ein Stück weit konnte ich mit ersten Anpassungen schon kleine Erfolge erzielen. Doch bleibe ich dennoch ratlos, wie ich folgendes Problem lösen kann:
Die von dir gesandte Programmsequenz habe ich in einem Excelworkbook implementiert. Von hier aus muss ich das zu korrigierende Programm: "Arbeitszeit_2005.xls" starten, den VBA-Schutz aufheben und die in jedem der 12 Monatssheets Tabelle1 (Jan) bis Tabelle12 (Dez) enthaltene Programmsequenz löschen und anschliessend durch die neue ersetzen.
Ein neues Modul muss also nicht eingefügt werden.
Anschliessend soll das Arbeitszeit_2005.xls gesichert und geschlossen werden.
Darf ich nochmals um deinen Tipp bitten?
Besten Dank und Gruss
Peter
Anzeige
Noch offen: Makro per Makro ändern
20.01.2005 09:01:13
Russi
Hallo Peter!
Geschützte Projekte zu entsperren ist wohl nur über Sendkeys möglich:
https://www.herber.de/forum/archiv/276to280/t277346.htm
Wie Du gezielt einzelne Zeilen in einer Sub austauschst oder veränderst, kann ich Dir leider nicht sagen. Den Code, den ich Dir gegeben habe, habe ich selber hier im Forum bekommen.
Gib mal bei Google ein "Makro per Makro ändern site:www.herber.de", da ist bestimmt was schönes dabei.
Viele Grüße
Russi
www.Russi.de.tt
AW: Noch offen: Makro per Makro ändern
Peter
Hallo Russi
Vielen Dank nochmals für deine Tipps. Mit dem mir zugesandten VBA-Code kann ein neues Modul im zu ändernden Workbook hinzugefügt und mit dem gewünschten VBA-Code abgefüllt werden. Ich muss aber herausfinden, wie ich jedes der 12 bestehenden VBA-Monatssheets ansprechen und das bisherige fehlerhafte Programm durch das korrekte ersetzen kann. Nur das scheint mir noch das Problem zu sein.
Beste Grüsse
Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige