ich bin gerade dabei einen Report-Generator für physikalische Versuche zu erstellen.
Da viele Informationen über den Versuch und den Auftraggeber schon in Excel-Files vorliegen, hat mein Arbeitgeber mich gebeten diese Informationen zu nutzen und in einen Leer-Report einzutragen, da die Mitarbeiter vorher alle Informationen ausdruckten und von Hand wieder in den Report eintrugen.
Der Report wird jetzt komplet generiet. Ich unterlege Felder die vom Generator ausgefüllt wurden in Gelb (zur Kontrolle durch den Benutzer) und Felder die noch vom Benutzer auszufüllen sind in Orange.
Nach dem Ausfüllen des Reports möchte ich, dass der Benutzer auf ein spezielles Worksheet geht, und dort einen Button drückt und dann eine Routine zum Entfernen des Hintergrundes eingefügt wird. Die Routine zum Löschen ist getestet und funktioniert.
Zum Erzeugen des Buttons habe ich folgenden Code programmiert:
Sub button(rapportWB)
'ajouter une button avec son code pour vider le fond plus tard
Dim oo As OLEObject
With Workbooks(rapportWB).Worksheets("Feuil1")
Set oo = .OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:= _
False, Left:=60, Top:=20, Width:=120, Height:=40)
oo.name = "cmdClear"
oo.Object.Caption = "Clear"
End With
Dim mdlWB As Object
Set mdlWB = Workbooks(rapportWB).VBProject.VBComponents(Workbooks(rapportWB).Worksheets(" _
Feuil1").CodeName)
With mdlWB.CodeModule
.InsertLines 3, "Private Sub cmdClear_Click()"
.InsertLines 4, " call Feuil2.clear"
.InsertLines 5, "End Sub
End With
End Sub
Dieser Code funktioniert auch im Prinzip, jedoch nicht vollständig, da Excel am Ende immer ein Laufzeitfehler zur Automatisierung auftritt und Excel sich aufhängt.
MS-VB Laufzeitfehler '-2147417848 (80010108)' Automatisierungsfehler
Wenn ich dann jedoch in den generierten Report schaue, ist alles gemacht und der Code funktioniert auch.
Was mache ich falsch? Wo liegt das Problem? Alle meine anderen Probleme konnte ich mit Hilfe des Forums lösem, jedoch habe ich hierfür keine Antwort und bin völlig ratlos.
Vielen Dank für Eure Hilfe
Thomas