ich möchte für eine Anwendung ein Programm schreiben, das alle VBA-Module auf den neusten Stand bringt.
Dazu wird zunächst jedes alte Modul gelöscht und anschließen das neue importiert.
Nun habe ich folgendes Problem:
Beim Öffnen des Workbooks das upgegradet werden soll habe ich ein Menü (Formular) programmiert,
das beim Start automatisch geladen wird.
Wenn ich nun dieses Formular ersetzen möchte, kann ich es zwar löschen, aber nicht mehr
neu importierten.
Wie kann man nun dieses Formular das von einer anderen Arbeitsmappe geladen wurde unloaden?
also Unload Formularname
Aber wie refernziere ich den Formularnamen aus der anderen Arbeitsmappe?
Code: TargetWorkbook ist ein Objekt auf die Zielmappe
With ThisWorkbook
FName = .Path & "\code.txt"
If Dir(FName) "" Then
Kill FName
End If
For Each VBComp In .VBProject.VBComponents
If VBComp.Type vbext_ct_Document Then
VBComp.Export FName
For Each VBComp2 In TargetWorkbook.VBProject.VBComponents
If VBComp2.Name = VBComp.Name Then TargetWorkbook.VBProject.VBComponents.Remove VBComp2
Next VBComp2
TargetWorkbook.VBProject.VBComponents. _
Import FName
Kill FName
End If
Next VBComp
End With