ich habe per Makro eine Exceltabelle und ein Button programmiert. Wenn ich auf das Button klicke, kommt diese Fehlermeldung: Makro ‚message‘ nicht gefunden.
------------Makro für Button-------------------
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“
-------------------Prozedur message--------------
sub message()
Msgbox = „hallo“
End
ich habe per Makro eine Exceltabelle und ein Button
programmiert. Wenn ich auf das Button klicke, kommt diese
Fehlermeldung: Makro ‚message‘ nicht gefunden.
------------Makro für Button-------------------
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“
Wo genau steht dieser Code in der Mappe?
-------------------Prozedur message--------------
sub message()
Msgbox = „hallo“
End
Und wo genau stehen diese Zeilen?
Diese sollten/müssten in einem allgemeinen Modul der Mappe stehen, damit die Zuweisung klappen kann.
das Makro für das Button habe ich erst nach der Erstellung der ExcelTabelle und nach dem Checken der Version von Excel programmiert.
die zweite Prozedur kommt direkt nach dem End Sub vom OK_klick.
Vielleicht sollte ich es genauer beschreiben.
ich habe eine Userform mit einem Ok Button, wenn der Bediener fertig ist mit seiner Eingabe drückt er auf OK
-> in dem Makro für OK (Sub OK_Click) wird auf die Datenbank zugegriffen, eine Exceltabelle erstellt in dem die Ergebnisse angzeigt werden, die Excelverison gecheckt und DANACH kommt das MAKRO für das button.
Das Makro für message kommt erst nach End Sub von OK_CLICK
ich habe eine Userform mit einem Ok Button, wenn der Bediener
fertig ist mit seiner Eingabe drückt er auf OK
-> in dem Makro für OK (Sub OK_Click) wird auf die Datenbank
zugegriffen, eine Exceltabelle erstellt in dem die Ergebnisse
angzeigt werden, die Excelverison gecheckt und DANACH kommt
das MAKRO für das button.
Das Makro für message kommt erst nach End Sub von OK_CLICK
Ja, das hatte ich schon so vermutet - lies bitte meinen letzten Satz nochmals und handle dann dementsprechend.
du solltest in dein vba-projekt ein modul einfügen (dialog unter „vb / einfügen“, z.b. „modul1“. anschließend das sub message (und andere subs) in deinem code ausschneiden und in das neue modul einfügen. dann gehts. subs werden nur in modulen gefunden.
kleine schreibfehler, es muß heißen:
msgbox „hallo“
end sub
das Button.OnAction = „message“ befindet sich im Ordner Formular.
leider funktioniert es immer noch nicht… was muss ich denn machen, um das Modul1 und das Formular miteinander zu verknüpfen, reicht es aus, wenn die Funktion nur den selben namen hat ?
das Button.OnAction = „message“ befindet sich im Ordner
Formular.
leider funktioniert es immer noch nicht… was muss ich denn
machen, um das Modul1 und das Formular miteinander zu
verknüpfen, reicht es aus, wenn die Funktion nur den selben
namen hat ?
Sorry, aber ohne den Aufbau deiner Mappe im Deatil zu kennen wird das wohl nicht so recht zum Erfolg führen, fürchte ich…
da ich ehrlich gesagt deinen code nicht ganz überblicke, habe ich mir ein testprogramm geschrieben. dafür habe ich einen button „test“ angelegt und im vba-projekt unter „tabelle1“ mit folgendem code hinterlegt:
Private Sub test_Click()
Set btn = Worksheets(„tabelle1“).Buttons.Add(100, 100, 30, 30)
btn.Caption = „Aufruf“
btn.OnAction = „message“
End Sub
außerdem habe ich in „modul1“ folgenden code geschrieben:
Sub message()
MsgBox „hallo“
End Sub
das funktioniert - jedenfalls bei mir …
wenn ich auf „test“ clicke, wird „Aufruf“ eingerichtet, und wenn ich darauf clicke, erscheint die msgbox.
ich habe das mehrmals versucht gehabt, wenn ich das OnAction ohne gänsefüsse mache, wird das button nicht activiert.
momentan bin ich so weit, dass ich ein button in das ergebnistabelle erzeugen kann, leider wenn ich draufklicke wird das makro im extra modul nicht erkannt.
wenn ich aber das button in das normale tabelle1 einfüge, klappt es… das kann ich aber nicht verstehen, wenn ich also beim erstellen das Set btn = xlWb.Worksheet(tabelle1)… das xlWb weglasse klaptt es…
wenn ich das xlWb lösche klapt es!, aber dann erzeugt er mir das Button nicht in das Ergebnistabelle.
In meinem Beispiel, werden die Ergebnisse der Abfrage auf ein neues Tabellenblatt kopiert, dort mit xlWb wird das Button erzeugt, ohne xlWb wird das button in das standardtabelle erzeugt, so funktioniert es aber auch…
ich verstehe aber nicht warum
ich habe leider nicht so erfahrung mit buttons, die via makro erstellt haben. ich setze die buttons direkt in die tabelle und rufe dann via „makro eigenschaften“ das gewünschte makro auf, wenn der button gedrückt wurde.