VB-Editor MainWindow
04.03.2005 10:59:41
jan-und-jana
da ich mit diesem Formum wirklich sehr gute Erfahrung gemacht habe wende ich mich mit folgenden Problem an euch:
Der unten aufgeführte Code sollte in eine leere Arbeitsmappe (dem Workbook.Modul?) kopiert werden, gespeichert und dann neu gestartet werden. Nun passiert forlgendes:
- die Arbeitsmappe öffnet sich ganz mormal
- für einen kurzen Moment öffnet sich der VB-Editor (das soll verhindert werden)
- die normale Arbeitsmappe wird wieder angezeigt
Ich möchte nun, dass sich nie der VB-Editor öffnet der Code natürlich trotzdem eingefügt wird.
Zur Erklärung:
Ich baue eine Art Generator der meherere Sheets erzeugt, in denen dann der Code jeweils eingefügt wird. Zwischen der Generierung der einzelnen Sheets vergehen ca. 2-3 Sekunden und in diesem sieht man die ganze Zeit diesen Vb-Editor (very ugly).
Die Welt wird deshalb nicht unter gehen, aber für Hilfe bin ich sehr dankbar.
Vielen Dank im vorraus für die Hilfe,
Gruß jan-und-jana
Code Anhang:
Private Sub Workbook_Open()
Call createEventProcedure
End Sub
'---------------------------------------------------------------------------->
'
Private Sub createEventProcedure()
On Error GoTo err_Handler
Dim longStartLine As Long
Dim objVbComponent As VBComponent
Application.ScreenUpdating = False
For Each VBComponent In ActiveWorkbook.VBProject.VBComponents
If VBComponent.Type = vbext_ct_Document And _
VBComponent.CodeModule.CountOfLines < 3 Then 'weil Option Explicit manchmal eigefügt wird
Set objVbComponent = VBComponent
objVbComponent.VBE.MainWindow.Close
Exit For
End If
Next VBComponent
With objVbComponent.CodeModule
longStartLine = .CreateEventProc("Change", "Worksheet") + 1
.InsertLines longStartLine, " Debug.Print 1"
End With
Application.VBE.MainWindow.Visible = False ' damit der Vis.Basic.Editor-Fenster wieder geschlossen wird
' Application.ScreenUpdating = True
Set objVbComponent = Nothing
Exit Sub
err_Handler:
MsgBox "Generator.CreateEventProcedure() " & Err.Description, vbOKOnly + vbCritical
Set objVbComponent = Nothing
Application.ScreenUpdating = True
End Sub