1Danke
ERLEDIGT
JA
JA
ANTWORTEN
2
2
ZUGRIFFE
1020
1020
EMPFEHLEN
-
05.09.10 12:03 #1
- Registriert seit
- Sep 2008
- Beiträge
- 87
Hallo zusammen!
Wie oben beschrieben lösche ich beim Öffnen einer Excel-File das Modul "Modul1".
Danach importiere ich ein neues Modul1.
In dem alten Modul1 wird eine MessageBox mit "Alt" aufgerufen, in der neuen entsprechend eine MessageBox "Neu".
Code :1 2 3 4 5 6 7 8
Private Sub Workbook_Open() ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("Modul1") ThisWorkbook.VBProject.VBComponents.Import ("C:\Users\Markus\Documents\Modul1.bas") test End Sub
Per F8 ist folgendes zu beobachten:
Anscheinend wird das alte Modul1 gelöscht, allerdings ist es im Projekt-Explorer weiterhin sichtbar.
Das neue Modul1 wird importiert, jedoch wird dessen Name in Modul11 geändert,
weil wie gesagt das alte Modul1 noch irgendwie vorhanden ist.
Demzufolge kommt beim Aufrufen der test auch nur die Message-Box "Alt" statt wie gewollt "Neu".
Nach der MsgBox wird dann, auch sichtbar, das Modul1 gelöscht.
Hat jemand eine Lösung für dieses Problem? Kann ich den Projekt-Explorer zwischendurch irgendwie "aktualisieren"?
Bin für jede Hilfe dankbar!
Gruß Outi
-
07.09.10 09:55 #2
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.009
Das Problem ist wohl das im laufenden Code die Module usw. nicht wirklich aktualisiert werden. Auch wenn es "optisch" so aussieht.
Mit der unten stehenden Lösung/den Lösungen habe ich es auf 2 verschiedene Weisen hinbekommen. Zur Unterscheidung habe ich es mit einer UserForm und 2 Buttons gemacht. Es klappt aber auch bei WorkbookOpen.
Code vb:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
Private Sub CommandButton1_Click() 'Das bestehende Modul1 zuerst umbenennen und dann mit diesem Namen löschen. ThisWorkbook.VBProject.VBComponents("Modul1").Name = "Modul99" ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("Modul99") 'Neues Modul importieren und umbenennen ThisWorkbook.VBProject.VBComponents.Import ("C:\Modul1.bas") ThisWorkbook.VBProject.VBComponents(ThisWorkbook.VBProject.VBComponents.Count).Name = "Modul1" 'Aufruf über Zwischenschritt test1 End Sub Private Sub CommandButton2_Click() 'Hier wird nur gelöscht und neu importiert. Das importierte Modul erhält hierbei aber nicht den Namen Modul1, die Prozedur "test" wird trotzdem gefunden. ThisWorkbook.VBProject.VBComponents.Remove ThisWorkbook.VBProject.VBComponents("Modul1") ThisWorkbook.VBProject.VBComponents.Import ("C:\Modul1.bas") 'Aufruf über Zwischenschritt test1 End Sub Sub test1() 'Zwischenschritt damit die eigentliche Prozedur "test" nicht aus dem gleichen Codebereich aufgerufen wird test End Sub
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
08.09.10 06:31 #3
- Registriert seit
- Sep 2008
- Beiträge
- 87
Moin tombe,
danke für Deine Hilfe, funktioniert bestens!
Ähnliche Themen
-
Excel-Datei erstellen und Modul importieren
Von Outsider77 im Forum .NET CaféAntworten: 2Letzter Beitrag: 03.09.10, 09:33 -
Apache Modul in C / C++
Von ZodiacXP im Forum C/C++Antworten: 4Letzter Beitrag: 26.09.09, 13:05 -
JSF Modul
Von Xeal_RS im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 26.07.07, 11:49 -
externe swf datein importieren aber nicht importieren
Von michback im Forum Flash PlattformAntworten: 2Letzter Beitrag: 08.04.05, 02:46 -
PHP als CGI-Modul ?
Von low-group im Forum PHPAntworten: 2Letzter Beitrag: 11.02.05, 20:51





Zitieren

Login




