ich habe ein Userform in Excel und eine Datenbank in Access erstellt.
Der Bediner soll über Userform einige Werte eintragen und diese dann mit einem Klick auf OK bestätigen.
----Makro OK_Click--------
…ruft DB usw
jetzt will ich das nach dem drücken von OK ein Excel Fenster erscheint, die die Ergebnisse der Abfrage anzeigt.
-> Auf diesem Fenster soll sich ein Button befinden
im Makro habe ich für die Erstellung eines Buttons in Excel ein Programm geschrieben, bis dahin funktioniert alles gut, aber
->:stuck_out_tongue_winking_eye:ROBLEM: Jetzt will ich auf das Button klicken können und danach soll eine andere Prozedur beginnen
--------Erstellen von Button in Makro------
With Selection
dWidth = .Cells(.Cells.Count).Left - _
.Cells(1).Left + .Cells(.Cells.Count).Width
dHeight = .Cells(.Cells.Count).Top - _
.Cells(1).Top + .Cells(.Cells.Count).RowHeight
Set btn = xlWb.Worksheets(„tabelle1“).Buttons.Add(.Cells(1).Left, _
.Cells(1).Top, dWidth, dHeight)
End With
btn.Caption = „Aufruf“
btn.OnAction = „message“
--------Die neue Prozedur----------------
Sub message_Click()
MsgBox = „Hallo“
End Sub
nachdem ich auf das Button Aufruf auf der neu erstellten Excel Blatt klicke erscheint ein Fenster -> Das Makro message wird nicht gefunden .
leider kann ich Dir in diesem Punkt nicht weiterhelfen, da meine Kenntnisse in Excel sehr beschraenkt sind, und ich legiglich nur ueber einige Grundkenntnisse in diesem Programm verfuege.
1.) wenn Du die Prozedur „message“ aufrufen möchtest, muss natürlich auch die Prozedur so bezeichnet werden. Daher lass bei der Prozedur das „_Click“ weg!
2.) Die Prozedur muss in einem allgemeinen Modul plaziert werden.
ANTWORT:
Wenn du ein neues Excel-Sheet anlegst mit einem Button,
dann erhält dieser Button entweder automatisch einen Namen von Excel (z.B. CommandButton1) oder einen Namen, den du beim Erstellen des Buttons mit deinem Programm generierst. Der Verweis auf das Makro, das durch den Button ausgeführt werden soll, muss die volle Pfadangabe zu der Excel-Datei besitzen, in der es sich tatsächlich befindet. Dein Makroverweis sucht das Makro in der neu erstellten Excel-Datei, in der es sich natürlich nicht befinden kann. Also entweder erstellst du beim Erzeugen des neuen Excel-Sheets auch gleich das entsprechende Modul und das Makro „message“ mit, dann steht es im neuen Sheet zur Verfügung (mit deinem jetzigen Aufruf), oder du baust den Pfad so auf, dass das Makro in der anderen Excel-Datei gefunden wird.
BEISPIEL:
Aktueller Pfad: ThisWorkbook.Path ( = Pfad der aktuellen Datei in der das Sheet erstellt wird)