mit folgendem Code importiere ich Code für "Sheet1" und ein komplettes UserForm.
Sub SE38_ÖffnenFormatierenSpeichern()
Dim VBKomp As VBComponent
Dim Tabelle As CodeModule
Const ImportTabelle = "H:\Sperrlager\SE38_Tabelle1.txt"
Const ImportUserForm = "H:\Sperrlager\SperrlagerChargen.frm"
'...
Set Tabelle = ActiveWorkbook.VBProject.VBComponents("Sheet1").CodeModule
Tabelle.AddFromFile ImportTabelle
Set VBKomp = ActiveWorkbook.VBProject.VBComponents.Import(ImportUserForm)
'...
End Sub
Das funktioniert auch einwandfrei.
Im Code von "Sheet1" steht nun folgender Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim Bereich As Range
Set Bereich = Intersect(Sheets(1).Range(Target.Address), Sheets(1).Range("D1:D" & Sheets(1).UsedRange.Rows.Count))
If Not Bereich Is Nothing Then
Application.CommandBars("Cell").Enabled = False
UserForm1.Show
End If
End Sub
nun folgendes Problem: Wird das Ereignis ausgelöst, erscheint die Fehlermeldung:
'Run-time error '-2147352571 (80020005)'
Type mismatch.
und die Zeile UserForm1.Show wird gehighlightet (Das eigefügte UserForm heißt UserForm1).
Füge ich manuell ein zusätzliches UserForm2 ein und ändere den Code auf UserForm2.Show, dann funktioniert's einwandfrei.
kann mir jemand sagen, warum der Fehler nur auftritt, wenn das UserForm mittels Code importiert wird und sonst nicht?
Hoffe das ist verständlich erklärt.
Danke für Tips.
Gruß
Bertram