Meldung: Makro nicht gefunden

Hallo Experten,

ich bins nochmal :wink:

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

VIELEN DANK

WillsWissen

Grüezi WillsWissen

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.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Thomas,

ich möchte mich zuerst für deine Hilfe bedanken,

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

Mit freundlichen Grüßen

WillsWissen

Grüezi WillsWissen

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.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo, ich komme bei deinem Beispiel nicht ganz mit. Ausserdem: wo hast du das Makro gespeichert? In der PERSONL.XLS?
Gruß
Ma

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

Hallo ascanpetersen,

VIELEN DANK für die Hilfe, leider klappt es noch nicht

ich hab ein Modul erstellt (Modul1):
Sub message()
MsgBox „hallo“
end Sub

das button.OnAction = „message“ befindet sich in Formulare.

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“

!!!trotzdem steht, wenn ich auf das button Aufruf klicke, das makro message wird nicht gefunden.!!!

Hallo Thomas,

vielen Dank für die HIlfe

ich hab ein Modul erstellt mit dem Sub message:

sub message()
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 ?

Grüezi WillsWissen

ich hab ein Modul erstellt mit dem Sub message:

sub message()
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 ?

Sorry, aber ohne den Aufbau deiner Mappe im Deatil zu kennen wird das wohl nicht so recht zum Erfolg führen, fürchte ich…

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Die Sub muss in einem Modul abgelegt sein nicht in den Tabellen(ExelObjekte), dann klappt es.

Und am ende der Sub bitte das END SUB.

hallo Sknorrell,

danke für dein Rat, aber leider geht es trotzdem nicht…

ich habe im modul1 mein Sub Prozedur:
sub message()
MsgBox = „hallo“
End Sub

die button.OnAction = „message“ befindet sich im Formular
-> trotzdem erkennt er mein Makro message nicht!!!

Hi,

sub message()
MsgBox(„hallo“)
End Sub

Habe vorhin vergessen, dass die MsgBox auch falsch war. Bitte wie oben schreiben.

Bei mir klappte es, wobei ich das xlWB beim Erstellen des Buttons entfernte.

Auf den Button gedrückt kam dann die Messagebox.

Hoffe, das dies jetzt das Problem gelöst hat, ansonsten steh ich auch vor einem Rätzel.

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.

wünsche dir viel erfolg!

Hallo WillsWissen,

hier ist mir nur ein Syntaxfehler aufgefallen:
Msgbox = „hallo“

Muss lauten:
Msgbox „hallo“

Gruß
Natator

hey

habe das makro nicht genau untersucht. aber was geschieht, wenn du statt:
btn.OnAction = „message“

neu diese Variante versuchst:
btn.OnAction = message

also ohne gänsefüsse

gruss m

Hallo

sehe denn fehler nicht auf denn ersten Blick!

Kannst Du nicht die Excel Datei mit senden!

Sonst an [email protected]

Es ist natürlich auch spät 1 Uhr :smile: Aber am Morgen ist man ja fittttttterr

Hallo Marc,

danke für deine Antwort!!!

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…

mfg
Wilsswissen

hallo Sknorrel,

vielen Dank für deine Antwort!!!

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

mfg
wilsswissen

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.

Hi, versuch es mal mit dieser Prozedur:

Sub message()

MsgBox („Hallo“)

End Sub