Wo ist der Fehler im Excel VBA Code?
Hi Leute,
zuerst einmal muss ich loswerden, dass ich verzweifle, aber glaube dass irgendetwas winzig kleines der Fehler ist....
Situation:
Ich möchte einen Button erstellen, der nur eingeblendet wird, wenn Zellen X,Y,Z, usw. ausgefüllt sind.
Wenn er dann eingeblendet ist, soll er das Makro "Meldung_Absenden" ausführen.
STAND JETZT: Funktioniert alles, bis auf das Ausführen des Makros. Der Button wird richtig ausgeblendet, wenn die Felder nicht ausgefüllt sind. Sobald alle felder ausgefüllt sind, kommt der Fehler: 1004 "Anwendungs- oder Objektdefinierter Fehler"
Ich finde den Fehler im Code nicht. Der Button "CommandButton1" ist ein ActiveX Steuerelement.
Mein Testbutton "Meldung absenden" ist ein Formularsteuerelement. Damit lässt sich das Makro auslösen. Ich will aber nicht, dass eine Meldung abgegeben werden kann, wenn nicht alle Felder ausgefüllt werden.
Könnt ihr mir da helfen? Bei nachfragen stehe ich gerne zur Verfügung.
2 Antworten
Ja, diese Fehlermeldung 1004 "Anwendungs- oder Objektdefinierter Fehler" ist leider nicht besonders hilfreich. Meistens heißt das entweder, dass VBA unter dem Namen nichts finden kann oder dass noch irgendwas der Ausführung des Befehls im Weg steht. Mir ist z.B. grade aufgefallen, dass ein neuer Button zwar als "Schaltfläche 1" angezeigt wird, aber in der Shapes-Liste steht er als "Button 1" drin. Am besten änderst du einmal den Namen den Buttons (z.B. in "btnAbsenden"), damit er in der Ansicht und in der Shapes-Liste den gleichen Namen hat. Dafür musst du den Button markieren (rechtsklick drauf machen) und dann in Excel links neben der Formel-Zeile einen Namen reinschreiben.
Warum weist du dem Button überhaupt während der Laufzeit das Makro zu? Es würde doch auch reichen, wenn du den Button nur ein- oder ausblendest (also nur das Visible auf True oder False setzt).
Soll der Button auch "automatisch" ausgeführt werden ?
Ich glaube nicht.
Also dein Einblenden funktioniert.
Anstatt das Makro dynamisch dem Knopf zuweisen wollen, diese "einmalig" hardcoded hinter das Click Ereignis des Button legen.
Ggf anstelle eines Aktive X Button ein Shape, dass entsprechend gestaltet ist verwenden. Dies kann man auch visible schalten.