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

Code aus Code starten, was ist falsch?

Code aus Code starten, was ist falsch?
Volker
Hallo liebe Excelgemeinde, hallo Franz und fcs,
diesen Code möchte ich aus einem andere Code per "Call entFerneCode" starten. leider bekomme ich es nicht gebacken.
Was mache ich falsch?
Sub entFerneCode(ByRef myWbk As Workbook)
Dim codeObject As Object
For Each codeObject In myWbk.VBProject.VBComponents
With codeObject
' Alle Module (Type 1), Forms (Code 2) und Klassenmodule (Code 3) löschen
If .Type >= 1 And .Type Select Case .Name
Case "Modulxyz", "Modul9"
'nicht löschen, genaue Groß-/Kleinschreibung der Namen beachten!
Case Else
'Löschen
myWbk.VBProject.VBComponents.Remove codeObject
End Select
ElseIf .Type = 100 Then
' Etwaigen Code in Tabellenblättern und DieseArbeitsmappe löschen
On Error Resume Next
.CodeModule.DeleteLines 1, .CodeModule.CountOfLines
On Error GoTo 0
End If
End With
Next

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Code aus Code starten, was ist falsch?
29.09.2009 07:38:55
otto
Hi,
falls sich dein Code den du ausführen willst in Modul1 befindet, und der Code mit dem du ihn starten willst in Modul2, dann musst du angeben:
Modul1.entFerneCode
Das Call kannst du weglassen.
otto
AW: Code aus Code starten, was ist falsch?
29.09.2009 07:52:23
Volker
Danke erst mal Otto, werde es mal so ausprobieren
Code aus Code starten
29.09.2009 08:04:14
Erich
Hi Otto,
das stimmt nicht! Den Modulnamen muss man nur voranstellen, wenn der Prozedurname in mehreren Modulen vorkommt.
Damit würde dann erst eindeutig, welche der so benannten Prozeduren aufgerufen werden soll.
Volker, du hast nicht angegeben, wie du die Prozedur aufrufst.
Wichtig ist der Parameter - das muss ein ein Workbook-Objekt sein, z. B. ThisWorkbook
So ein Aufruf würde funzen:

Sub start()
entFerneCode ThisWorkbook
End Sub
Und das auch dann, wenn z. B. Start in Modul9, entFerneCode in Modul Modulxyz steht.
Statt ThisWorkbook könnte da auch stehen Workbooks("abc.xls")
Zum Testen: https://www.herber.de/bbs/user/64772.xls
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Code aus Code starten
29.09.2009 08:35:34
Volker
Hallo Erich, danke ich habe es sofort ausprobiert.
Läuft sehr gut.
Ich finde es super, das hier in der Excel- Gemeinde immer hilfe für mich da ist!!!
Das entfernt den PgmCode aus dem Standort-...
29.09.2009 14:56:36
Luc:-?
...Projekt der Entfernungssubroutine, also auch den Entfernungscode selbst, Erich...
Danach kann sie hier nicht erneut aufgerufen wdn! Ich würde so etwas an anderer Stelle bereithalten und dann entweder mit ActiveWorkbook oder deiner Alternative arbeiten.
Gruß Luc :-?
@Luc: Irrtum!
29.09.2009 15:43:51
Erich
Hi Luc :-?,
hast du's einfach mal mit meiner Beispielmappe getestet oder dir die Löschroutine von Franz (fcs) angesehen?
Dann wäre dir schon klar, dass man "Start" und damit "entFerneCode ThisWorkbook" ohne Schaden wiederholt
laufen lassen kann, denn die Module, in denen diese beiden Prozeduren stehen, werden nicht gelöscht.
Mit ActiveWorkbook würde ich hier vermutlich nicht arbeiten - dann müsste man das jeweilige WB ja vorher aktivieren...
entFerneCode Workbooks(strWbName) wäre mein Favorit,
wobei natürlich in der Stringvariablen strWbName der Name des WB stehen muss,
in dem der Code gelöscht werden soll.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Ich habe weder Lust noch Zeit jeden 'Insel...
03.10.2009 17:35:28
Luc:-?
...lösungsquark' zu testen, Erich,
aber anscheinend hatte ich ja - zumindest zT - recht... ;-)
Gruß Luc :-?
AW: Das entfernt den PgmCode aus dem Standort-...
29.09.2009 17:03:04
Volker
Hallo Erich, Luc, Otto und andere.
Jetzt habe ich den Fehler, ich hatte Thisworkbook und dank Luc noch mal alle Nachrichten gelesen. Activeworkbook ist RICHTIG.
Danke noch mal an ALLE

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige