26.07.2018, 10:20
(Dieser Beitrag wurde zuletzt bearbeitet: 26.07.2018, 10:35 von Mr.Invisible.)
Hallo Zusammen,
ich stehe vor einem echt ärgerlichem Problem.
In meiner Arbeitsmappe "Mappe1" habe ich einen CommandButton, mit diesem wird eine neue Arbeitsmappe ("Mappe2") erstellt, gleichzeitig wird in Mappe2 zwei UserFormen importiert und zwei CommandButtons erstellt.
Mit CommandButton1 in Mappe2 soll dann die importierte Userform1 geöffnet werden.
Mit CommandButton2 soll die importierte Userform2 angezeigt werden.
Allerdings bekomme ich beim MouseOver immer die Fehlermeldung "Fehler beim Kompilieren: Die Objektbibliothek ist ungültig oder enthält Verweise Objektdefinitionen, die nicht gefunden werden können."
Ich habe zum testen manuel eine neue Mappe erstellt und einen CommandButton eingebaut. Dann habe ich die zwei Userform mit Drag & Drop in die neu erstellt Arbeitsmappe gezogen. Da hat dann alles funktioniert.
Hier meine Makros:
In Mappe2 wird mir dann der Teil [UserForm1].Show blau markiert und die Fehlermeldung kommt.
Ich hoffe jemand kann mir hier helfen wie ich den Fehler beheben kann.
ich stehe vor einem echt ärgerlichem Problem.
In meiner Arbeitsmappe "Mappe1" habe ich einen CommandButton, mit diesem wird eine neue Arbeitsmappe ("Mappe2") erstellt, gleichzeitig wird in Mappe2 zwei UserFormen importiert und zwei CommandButtons erstellt.
Mit CommandButton1 in Mappe2 soll dann die importierte Userform1 geöffnet werden.
Mit CommandButton2 soll die importierte Userform2 angezeigt werden.
Allerdings bekomme ich beim MouseOver immer die Fehlermeldung "Fehler beim Kompilieren: Die Objektbibliothek ist ungültig oder enthält Verweise Objektdefinitionen, die nicht gefunden werden können."
Ich habe zum testen manuel eine neue Mappe erstellt und einen CommandButton eingebaut. Dann habe ich die zwei Userform mit Drag & Drop in die neu erstellt Arbeitsmappe gezogen. Da hat dann alles funktioniert.
Hier meine Makros:
Code:
' Mappe1 CommandButton
Private Sub PM_Controlling_Click()
Dim relativePath As String
Dim btn1 As Object
Dim Code As String
' Neue Mappe erstellen:
Workbooks.Add
relativeString = ThisWorkbook.Path & "\Mappe2"
ActiveWorkbook.SaveAs Filename:=relativeString & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
' UserFormen importieren:
Workbooks("Mappe2.xlsm").VBProject.VBComponents.Import Filename:="C:\Users\UserForm\Add\UserForm1.frm"
Workbooks("Mappe2.xlsm").VBProject.VBComponents.Import Filename:="C:\Users\UserForm\Add\UserForm2.frm"
' Button für UF1 erstellen:
Set btn = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
, DisplayAsIcon:=False, Left:=10, Top:=10, Width:=110, Height:=25)
ActiveSheet.OLEObjects(1).Object.Caption = "Project Report"
btn.Name = "Project_Report"
' Code für UF1:
Code = "Private Sub Project_Report_Click()" & vbCrLf
Code = Code & " [UserForm1].Show" & vbCrLf
Code = Code & "End Sub"
With ActiveWorkbook.VBProject.VBComponents(Worksheets(ActiveSheet.Name).CodeName).CodeModule
.insertlines .CountOfLines + 1, Code
End With
' Button für UF2 erstellen:
Set btn = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
, DisplayAsIcon:=False, Left:=10, Top:=40, Width:=110, Height:=25)
ActiveSheet.OLEObjects(2).Object.Caption = "Watch Project Report"
btn.Name = "Watch_Report"
' Code für UF2:
Code = "Private Sub Watch_Report_Click()" & vbCrLf
Code = Code & " [UserForm2].Show" & vbCrLf
Code = Code & "End Sub"
With ActiveWorkbook.VBProject.VBComponents(Worksheets(ActiveSheet.Name).CodeName).CodeModule
.insertlines .CountOfLines + 1, Code
End With
End Sub
_____________________________________________________________________________________________________________________________________
' Code in Mappe2
Private Sub Project_Report_Click()
[UserForm1].Show
End Sub
Private Sub Watch_Report_Click()
[UserForm2].Show
End Sub
' UserForm1 Code
Private Sub CommandButton1_Click()
UserForm2.Label1 = TextBox1.Value
UserForm2.Label2 = TextBox2.Value
UserForm2.Label3 = TextBox3.Value
UserForm2.Label4 = TextBox4.Value
[UserForm1].Hide
End Sub
Private Sub CommandButton2_Click()
[UserForm1].Hide
End Sub
'UserForm2 Code
Private Sub CommandButton1_Click()
[UserForm2].Hide
End Sub
In Mappe2 wird mir dann der Teil [UserForm1].Show blau markiert und die Fehlermeldung kommt.
Ich hoffe jemand kann mir hier helfen wie ich den Fehler beheben kann.