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

Module bzw. Code LÖSCHEN - Dilemma

Module bzw. Code LÖSCHEN - Dilemma
03.10.2004 00:35:46
k.reffert
Guten Abend zusammen, darf ich's nochmal wagen und euren schier unerschöpflichen Wissensfundus "anzapfen" ;-)
Habe eine "Roh"-Mappe mit 3 Modulen (die ich auch theoretisch in ein Modul
zusammenfassen könnte...); die Hauptprozedur bewirkt diverse Änderungen an der
Mappe und speichert sie z. Zt. abschliessend unter neuem Namen. Aus dieser neuen
Mappe möchte ich dann AUTOMATISCH alle Module (oder doch zumindest den darin
enthaltenen Code) löschen, ohne daß der User, der via ClickButton die Prozedur
gestartet hatte, das Löschen der Module explizit anstossen muß bzw. überhaupt
"mitbekommt"... Dank der tollen Seite von C. Pearson habe ich die passenden
Codezeilen gefunden, die in meiner TestundTüftelMappe super funktionieren:

Sub ModuleLöschen()
Dim VBComp As VBComponent
Set VBComp = ThisWorkbook.VBProject.VBComponents("Modul1") 'usw.
ThisWorkbook.VBProject.VBComponents.Remove VBComp
End 

Sub
er warnt allerdings davor, die Löschung aus dem zu löschenden Modul heraus zu
starten, also kann ich diese Zeilen schlecht an die Prozedur einfach 'dranhängen.
(Wäre mir auch zu risky! Wer weiss, wie Excel reagiert, wenn der Code sich selbst
löschen soll...)
Habe schon überlegt, obige Löschprozedur ins Klassenmodul als
'Workbook_BeforeClose'-Event zu schreiben, aber dann wird der Code ja bereits in
der Roh-Mappe ausgeführt und DAS darf nicht sein, weil ich diese immer als Basis
für den nächsten Monat habe...
Wer kann hier helfen, wer weiss einen Ausweg aus diesem Dilemma?
Forever grateful für jeden Hinweis!
LG,
Karin-die-nicht-weiter-kommt

		

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Module bzw. Code LÖSCHEN - Dilemma
03.10.2004 08:03:33
DieterB
Hallo Karin,
ändere das "ThisWorkbook" doch in workbook("Name der Mappe")
ThisWorkbook ist ja immer das aktive.
Dann solltest du mal die Recherche bemühen, um dir die richtige Syntax zu besorgen.
Gruß
DieterB-der-dir-hoffentlich-weiterhelfen-konnte
AW: Module bzw. Code LÖSCHEN - Dilemma
03.10.2004 08:17:42
Matthias
Hallo Dieter,
eine kleine Richtigstellung:
ThisWorkbook bezeichnet nicht die aktive, sondern die Mappe in der selbiger Code steht.
Also sollte nur ThisWorkbook in ActiveWorkbook geändert werden.
Ansonsten ist die Vorgehensweise von Karin die einzig mögliche, allen Code zu entfernen:
Mappe kopieren und die Module der kopierten Mappe von der Original-Mappe (mit "ActiveWorkbook") löschen.
Gruß
Matthias
Anzeige
AW: Module bzw. Code LÖSCHEN - Dilemma
03.10.2004 11:53:07
DieterB
Hallo Matthias,
sorry. ist klar.
habe (fälschlicherweise) ThisWorkbook mit der aktiven Mappe gleichgesetzt.
Gruß
DieterB
AW: Module LÖSCHEN - kein Dilemma mehr
03.10.2004 14:55:09
k.reffert
Ihr Lieben, der Kniff von Matthias war's, habe ThisWorkbook durch ActiveWorkbook ersetzt,
nicht ein Fitzelchen Code mehr in der neuen Mappe, juchhu und 1000 Dank euch allen!!!
@Ramses: da die sog. Rohmappe von Monat zu Monat den Namen wechselt -also zB. Roh_Januar,
Roh_Februar usw. und daraus allmonatlich verschiedene Fein-Tabellen abgeleitet werden
(nämlich durch meine Prozedur), zB. Fein1_Januar, Fein2_Januar, Fein1_Februar usw. soll der
Code in der Rohtabelle von Monat zu Monat "mitgeschleppt" werden, NICHT jedoch in den
Feintabellen- ist deine Annahme nicht gegeben, dennoch herzlichen Dank für den Vorschlag,
den ich sicher noch an anderer Stelle verwenden kann. (Huch, was ist das für'n Deutsch?)
LG,
Karin-sich-dolle-freuend...
Anzeige
AW: Module bzw. Code LÖSCHEN - Dilemma
Ramses
Hallo
da bist du doch wahrscheinlich schon auf dem richtigen Weg
"...'Workbook_BeforeClose'-Event zu schreiben, aber dann wird der Code ja bereits in
der Roh-Mappe ausgeführt und DAS darf nicht sein, weil ich diese immer als Basis
für den nächsten Monat habe......"
Wenn du eine Roh-Mappe hast, denke ich nun mal ;-), wird diese immer den gleichen Namen haben. Frag doch vorher den Namen mit einer Wenn-Bedingung ab.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim VBComp As VBComponent
Set VBComp = ThisWorkbook.VBProject.VBComponents("Modul1") 'usw.
If Thisworkbook.Name "Rohmappe.xls" Then
ThisWorkbook.VBProject.VBComponents.Remove VBComp
End If
Gruss Rainer
End
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige