Office - Word, Excel und Co. 9.742 Themen, 41.386 Beiträge

Steuerelement in Excel

pappnasen / 29 Antworten / Baumansicht Nickles

Hallo.

Ich habe in einer Tabelle einen Button, der mit einem Makro belegt ist.

Nun kann ich das Makro aber nicht ausführen, weil sich dort immer ein Kreuz-Icon drüberlegt, um den Buttton zu verschieben.##Wie bekomme ich die Originalansicht zurück?

Danke.

bei Antwort benachrichtigen
Anne_21 pappnasen „Steuerelement in Excel“
Optionen

Versuch - habe hier nur LibreOffice:

Markiere den Button und klicke ihn mit der rechten Maustaste an.
Im Menü sollte etwas wie Makro zuweisen (so bei LO) auftauchen. 

Habe leider grade nicht mehr im Kopf, wie das in EXCEL lief.... ist schon soooo lange her.

Anne

bei Antwort benachrichtigen
pappnasen Anne_21 „Versuch - habe hier nur LibreOffice: Markiere den Button und klicke ihn mit der rechten Maustaste an. Im Menü sollte etwas ...“
Optionen

in Makro liegt da nicht drauf, sondern VBA-Befehle.

Gestern ging es noch und ich weiß nicht, wieso sich der Entwurfsmodus aktiviwert hat.

Ich habe Entwicklertooös aktiviert, kann aber mit dem Entwurfsmodus-Schalter nichts anfangen.

Dort sollte man es aktivieren und deaktivieren können.

bei Antwort benachrichtigen
mawe2 pappnasen „in Makro liegt da nicht drauf, sondern VBA-Befehle. Gestern ging es noch und ich weiß nicht, wieso sich der Entwurfsmodus ...“
Optionen

Ist die Ausführung von Makros überhaupt aktiviert?

Ist es ein Formularsteuerelement oder ein ActiveX-Steuerelement?

in Makro liegt da nicht drauf, sondern VBA-Befehle.

Was willst Du damit sagen?

weil sich dort immer ein Kreuz-Icon drüberlegt,

Was ist mit "Kreuz-Icon" gemeint?

bei Antwort benachrichtigen
pappnasen mawe2 „Ist die Ausführung von Makros überhaupt aktiviert? Ist es ein Formularsteuerelement oder ein ActiveX-Steuerelement? Was ...“
Optionen

Es ist kein Makro, was aufgezeichnet ist, sondern VBA.

Das ist ein Kreuz mit 4 Pfeilen an den Enden, um was zu verschieben.

bei Antwort benachrichtigen
mawe2 pappnasen „Es ist kein Makro, was aufgezeichnet ist, sondern VBA. Das ist ein Kreuz mit 4 Pfeilen an den Enden, um was zu verschieben.“
Optionen
Es ist kein Makro, was aufgezeichnet ist, sondern VBA.

Ein Makro, was aufgezeichnet wurde, ist auch VBA...

Es ist egal, ob der Code über Aufzeichnung oder manuelle Eingabe erzeugt wurde.

Das ist ein Kreuz mit 4 Pfeilen an den Enden, um was zu verschieben.

Dann ist es vermutlich ein ActiveX-Steuerelement.

ActiveX-Steuerelemente können im Entwurfsmodus bearbeitet werden. Schaltet man den Entwurfsmodus ab, kann man die Schaltfläche anklicken und somit den VBA-Code ausführen.

Lässt sich der Entwurfsmodus nicht abschalten, ist die Ausführung von Makros deaktiviert. (Evtl. im TrustCenter nochmal die Makroeinstellungen kontrollieren / ändern.)

bei Antwort benachrichtigen
pappnasen mawe2 „Ein Makro, was aufgezeichnet wurde, ist auch VBA... Es ist egal, ob der Code über Aufzeichnung oder manuelle Eingabe ...“
Optionen

Mittlerweile ist das Kreuz weg und ich habe wieder einen Finger.

Allerdings lässt es sich nicht ausführen.

bei Antwort benachrichtigen
mawe2 pappnasen „Mittlerweile ist das Kreuz weg und ich habe wieder einen Finger. Allerdings lässt es sich nicht ausführen.“
Optionen
Allerdings lässt es sich nicht ausführen.

Gibt es eine Fehlermeldung?

Kannst Du den Code im VBA-Editor anzeigen und ausführen?

bei Antwort benachrichtigen
pappnasen mawe2 „Gibt es eine Fehlermeldung? Kannst Du den Code im VBA-Editor anzeigen und ausführen?“
Optionen

Hi.

Inzwischen habe ich es am Laufen bekommen. Ich habe das Makro noch einmal beu geschrieben und dann neu zugewiesen.

Allerdings steht es jetzt dreimal unter VBA drin.

Löschen kann ich nur eins, aber das ist wohl das aktive.

Einmal unt

er Tabelle (Bedarf) und 2x unter Modul1

bei Antwort benachrichtigen
mawe2 pappnasen „Hi. Inzwischen habe ich es am Laufen bekommen. Ich habe das Makro noch einmal beu geschrieben und dann neu zugewiesen. ...“
Optionen
Einmal unter Tabelle (Bedarf) und 2x unter Modul1

Ich sehe es einmal unter Tabelle5 (Bedarf) und einmal (!!) unter Modul1.

(Auf dem 2. Screenshot hast Du beide Codefenster gemeinsam abgebildet!)

Code, der nur auf einem bestimmten Tabellenblatt benötigt wird, sollte auch nur dort gespeichert werden. Also z.B. unter "Tabelle5 (Bedarf)".

bei Antwort benachrichtigen
pappnasen mawe2 „Ich sehe es einmal unter Tabelle5 Bedarf und einmal !! unter Modul1. Auf dem 2. Screenshot hast Du beide Codefenster ...“
Optionen

Da ist es ja auch. Unter Modul ist es 2x.

bei Antwort benachrichtigen
mawe2 pappnasen „Da ist es ja auch. Unter Modul ist es 2x.“
Optionen
Unter Modul ist es 2x.

Nein.

Nochmal: Dein 2. Screenshot zeigt die Codefenster von "Tabelle5" und "Modul1". (Das steht jeweils in der Titelzeile des jeweiligen Codefensters.)

Und in beiden steht der Code genau einmal drin.

Und der Scrollbalken am rechten Rand (beider Fenster) zeigt, dass da auch nichts mehr kommt.

Wenn sich die Schaltfläche auf dem Tabellenblatt "Bedarf" befindet, kannst Du das gesamte "Modul1" komplett entfernen!

bei Antwort benachrichtigen
pappnasen mawe2 „Nein. Nochmal: Dein 2. Screenshot zeigt die Codefenster von Tabelle5 und Modul1 . Das steht jeweils in der Titelzeile des ...“
Optionen

Habe ich versucht. Das Modul kann ich entfernen und dann kommz:

bei Antwort benachrichtigen
mawe2 pappnasen „Habe ich versucht. Das Modul kann ich entfernen und dann kommz:“
Optionen

Es ist wirklich schwer, Dir zu helfen, wenn Du meine Fragen einfach nicht beantwortest!

Ich hatte oben gefragt

Ist es ein Formularsteuerelement oder ein ActiveX-Steuerelement?

- keine Antwort!

Aus Deiner Info

Das ist ein Kreuz mit 4 Pfeilen an den Enden, um was zu verschieben.

habe ich dann geschlussfolgert, dass es (wahrscheinlich) ein ActiveX-Steuerelement ist.

Jetzt schreibst Du aber

Mittlerweile ist das Kreuz weg und ich habe wieder einen Finger.

Der "Finger" wiederum deutet aber darauf hin, dass es (wahrscheinlich) ein Formularsteuerelement ist.

Also was denn nun?

Genauso die Frage

Ist die Ausführung von Makros überhaupt aktiviert?

- bis jetzt nicht beantwortet.

Ebenso die Frage

Kannst Du den Code im VBA-Editor ... ausführen?

Statt mich hier ewig herumrätseln zu lassen, wäre es doch am einfachsten, wenn Du diese Fragen einfach erstmal beantworten würdest.

Letzter Versuch:

  • VBA-Code von "Tabelle5 (Bedarf)" komplett löschen
  • VBA-Code von "Modul1" ändern:
    Zeile Private Sub CommanButton1_Click() ersetzen
    durch Sub Makro1()
  • VBA-Editor schließen
  • "Die" Schaltfläche auf dem betreffenden Tabellenblatt löschen
  • eine neue Formularschaltfläche erstellen und bei der Erstellung dieser Schaltfläche "Makro1" zuweisen
  • Datei speichern
  • Testen

Gruß, mawe2

bei Antwort benachrichtigen
pappnasen mawe2 „Es ist wirklich schwer, Dir zu helfen, wenn Du meine Fragen einfach nicht beantwortest! Ich hatte oben gefragt - keine ...“
Optionen
Es ist wirklich schwer, Dir zu helfen,

Ich weiß und du weißt, dass ich nicht mehr viel sehe.

Wenn ich mich dran erinnere, dann ist es ein Formularsteuerelement. Ich weiß allerdings nicht, wie ich das ermitteln kann.

Makroausführung aktiv? Ich weiß nicht, wo ich da suchen sollte. Tut mir Leid.

Ich habe auf Ausführen geklickt, aber ob sich was tut, weiß ich nicht. Ich habe in den Daten was verändert. Wenn ich dann ausführe, kommt eine Fenster.  Das heißt Makros uns ist leer.

VBA-Code von "Tabelle5 (Bedarf)" komplett löschen

Das geht nicht

VBA-Code von "Modul1" ändern: Zeile Private Sub CommanButton1_Click() ersetzen durch Sub Makro1()

Habe ich gemacht. Ersetzen geht nicht, nur neu erstellen. Danach habe ich Mudul2.

Das mit dem neuen Button schaffe ich heute aus Termingründen nicht mehr.

Gruß

Werner

bei Antwort benachrichtigen
pappnasen Nachtrag zu: „Ich weiß und du weißt, dass ich nicht mehr viel sehe. Wenn ich mich dran erinnere, dann ist es ein ...“
Optionen

Ich habe viele Arbeitsblätter mit einem entsprechenden Button.Soweit ich mich erinnern kann, habe ich nie Makros geschrieben, sondern immer den Code dem Button zugewiesen.

Ich kann auch kein Button mit rechts anklicken und ein Makro zuordnen. Wenn ich da was ändern will, nur unter der VBA Benutzerfläche. Und da gibt es im Gegensatz zu meinem Problem keine Dubletten, sonndern immer nur eine Datei.

bei Antwort benachrichtigen
pappnasen Nachtrag zu: „Ich habe viele Arbeitsblätter mit einem entsprechenden Button.Soweit ich mich erinnern kann, habe ich nie Makros ...“
Optionen

In der Arbeitsmappe sind keine Makros vorhanden.

bei Antwort benachrichtigen
mawe2 pappnasen „In der Arbeitsmappe sind keine Makros vorhanden.“
Optionen
In der Arbeitsmappe sind keine Makros vorhanden.

Wenn Du damit die Arbeitsmappe "Finanzen.xlsm" meinst (Posting v. 18.08.2022, 18:22), dann kann das schon sein, dass dort keine (aufgezeichneten) Makros drin sind, denn dort gibt es ja offensichtlich auch kein Modul ("Modul1" etc.).

Gibt es denn in dieser Datei überhaupt ein Problem oder wolltest Du sie nur als Beispiel für eine funktionierende Datei erwähnen?

bei Antwort benachrichtigen
mawe2 pappnasen „Ich habe viele Arbeitsblätter mit einem entsprechenden Button.Soweit ich mich erinnern kann, habe ich nie Makros ...“
Optionen
Ich kann auch kein Button mit rechts anklicken und ein Makro zuordnen. Wenn ich da was ändern will, nur unter der VBA Benutzerfläche.

Wenn beim Rechtsklick auf die Schaltfläche kein "Makro zuordnen..." vorhanden ist, sondern nur "Code anzeigen", dann ist es ein "ActiveX-Steuerelement". (Letzteres ist aber nur bei aktiviertem Entwicklermodus möglich!)

Beim Erstellen von Steuerelementen (Menü "Entwicklertools" > "Steuerelemente" > "Einfügen" hat man immer zwei Möglichkeiten, Schaltflächen zu erzeugen: als Formularsteuerelement oder als ActiveX-Steuerelement.

Während man beim Formularsteuerelement ein (vorher erzeugtes) Makro zuordnen kann, muss man beim ActiveX-Steuerelement den VBA-Code über den VBA-Editor eingeben.

bei Antwort benachrichtigen
pappnasen mawe2 „Wenn beim Rechtsklick auf die Schaltfläche kein Makro zuordnen... vorhanden ist, sondern nur Code anzeigen , dann ist es ...“
Optionen

Wenn ich in einer Arbeitsmappe Alt + F8 drücke, werden alle vorhandenen Makros angezeigt. Da gibt es aber keine.

Mit Rechtsklick auf de Schaltfläche bekomme ich aber die Option, ein Makro zuzuweisen.

Angeboten wird mir dann der Text aus dem VBA-Editor.

Wenn ich dann auf Bearbeiten klicke, öffnet sich der Code von Modul1.

Ich kann OK klicken, aber es ist kein Makro zugeordnrt.

Alt + F8 ist leer.

bei Antwort benachrichtigen
mawe2 pappnasen „Wenn ich in einer Arbeitsmappe Alt F8 drücke, werden alle vorhandenen Makros angezeigt. Da gibt es aber keine. Mit ...“
Optionen
Wenn ich in einer Arbeitsmappe Alt + F8 drücke, werden alle vorhandenen Makros angezeigt. Da gibt es aber keine.

Dort werden Makros nur angezeigt, wenn Du irgendwo im Code Sub's hast, die nicht als "Private" deklariert sind.

Bsp:

Du hast einer (ActiveX-)Schaltfläche auf Tabelle1 diesen Code zugeordnet:

Private Sub CommandButton1_Click()
    MsgBox "Hallo"
End Sub

Du kannst auf Tabelle1 die Schaltfläche anklicken und die Aktion wird ausgeführt.

Der Code erscheint aber nicht im Makro-Fenster.

Wenn Du jetzt den Code folgendermaßen änderst:

Sub CommandButton1_Click()
    MsgBox "Hallo"
End Sub

oder

Public Sub CommandButton1_Click()
    MsgBox "Hallo"
End Sub

wird der Code im Makro-Fenster aufgelistet:

Er kann dort ausgeführt oder gelöscht werden und man kommt von dort auch zur Bearbeitung dieses Codes.

Mit Rechtsklick auf de Schaltfläche bekomme ich aber die Option, ein Makro zuzuweisen. Angeboten wird mir dann der Text aus dem VBA-Editor.

das ist ein Widerspruch!

die Option, ein Makro zuzuweisen

gibt es beim Formularsteuerelement,

Angeboten wird mir dann der Text aus dem VBA-Editor.

das jedoch erscheint bei einem ActiveX-Steuerelement.

(Da wären wir wieder bei der Frage, die ich schon mehrmals gestellt habe.)

Weil ich weiß, dass Du den Unterschid zwischen diesen beiden Arten von Steuerelementen (und eben vor allem den richtigen Umgang damit) nicht kennst, hatte ich oben (Posting v. 18.08.2022, 17:09) eine mögliche Schrittfolge möglichst einfach versucht darzustellen.

Du musst einfach nur das machen, was ich dort aufgeschrieben habe...

Wenn ich dann auf Bearbeiten klicke, öffnet sich der Code von Modul1.

Code, der einer Schaltfläche, die sich auf einem Tabellenblatt befindet, zugeordnet ist, erscheint nicht in einem Modul sondern bei der betreffenden Tabelle.

Es ist mir ein völliges Rätsel, wie Du VBA-Code selber erstellen kannst, ohne diese ganzen Zusammenhänge zu kennen!

bei Antwort benachrichtigen
mawe2 pappnasen „Ich habe viele Arbeitsblätter mit einem entsprechenden Button.Soweit ich mich erinnern kann, habe ich nie Makros ...“
Optionen

Es wird nicht einfacher, wenn Du jetzt noch mit einer ganz anderen Datei um die Ecke kommst!

Wollen wir nicht erstmal den Fehler in der Datei "Krankenkasse.xlsm" beseitigen?

bei Antwort benachrichtigen
mawe2 pappnasen „Ich weiß und du weißt, dass ich nicht mehr viel sehe. Wenn ich mich dran erinnere, dann ist es ein ...“
Optionen

Mal ganz nebenbei: Von welcher Excel-Version sprechen wir eigentlich?

Makroausführung aktiv? Ich weiß nicht, wo ich da suchen sollte.

Menü "Entwicklertools" > "Code" > "Makrosicherh."

Dort nachsehen, ob bei "Makroeinstellungen" der 2. oder der 4. Punkt aktiviert ist.

Falls beim Öffnen der XLSM-Datei die folgende Sicherheitswarnung erscheint, "Inhalt aktivieren" anklicken.

Ich habe auf Ausführen geklickt, aber ob sich was tut, weiß ich nicht.

Das verstehe ich nicht. Du musst doch merken, ob das Makro das tut, was es tun soll oder eben nicht.

Wenn ich dann ausführe, kommt eine Fenster.  Das heißt Makros uns ist leer.

Bitte Screenshot zeigen!

VBA-Code von "Tabelle5 (Bedarf)" komplett löschen
Das geht nicht

Warum geht das nicht? Was passiert da? Gibt es eine Fehlermeldung?

Ggf. Screenshot zeigen!

VBA-Code von "Modul1" ändern: Zeile Private Sub CommanButton1_Click() ersetzen durch Sub Makro1()
Habe ich gemacht. Ersetzen geht nicht, nur neu erstellen.

Warum geht das Ersetzen nicht? Du musst doch jeglichen existierenden Code auch editieren können.

bei Antwort benachrichtigen
pappnasen mawe2 „Mal ganz nebenbei: Von welcher Excel-Version sprechen wir eigentlich? Menü Entwicklertools Code Makrosicherh. Dort ...“
Optionen

Ich habe versucht, alles nachzuvollziehen.

Ausführen Modul1 geht, er macht das.

VBA-Code in Tabelle kann ich löschen mit dem Editor.

VBA Code geändert in Modul. Wird nicht ausgeführt.

Vor dem Namen Makro1() wieder Private eingetragen. Ausführen- Bild

bei Antwort benachrichtigen
mawe2 pappnasen „Ich habe versucht, alles nachzuvollziehen. Ausführen Modul1 geht, er macht das. VBA-Code in Tabelle kann ich löschen mit ...“
Optionen
Vor dem Namen Makro1() wieder Private eingetragen.

Warum?

bei Antwort benachrichtigen
pappnasen mawe2 „Warum?“
Optionen

Ich dachte, es ist wichtig.

bei Antwort benachrichtigen
mawe2 pappnasen „Ich dachte, es ist wichtig.“
Optionen

Das kann wichtig sein, muss aber nicht.

Ich kann das von hier nicht beurteilen, da ich Dein Projekt nicht vollständig sehen kann.

Lies das hier und entscheide selbst!

https://www.vba-tutorial.de/prozeduren/sichtbarkeit.htm

Fakt ist, dass Du mit "Private" die Prozedur nicht im Makro-Fenster angezeigt bekommst und Du sie deswegen keiner Schaltfläche zuweisen kannst, wenn die Schaltfläche ein Formularsteuerelement ist.

Muss es zwingend "Private" sein, nimm ein ActiveX-Steuerelement!

bei Antwort benachrichtigen
neanderix pappnasen „Es ist kein Makro, was aufgezeichnet ist, sondern VBA. Das ist ein Kreuz mit 4 Pfeilen an den Enden, um was zu verschieben.“
Optionen

MS nennt beides "Makro" - wobei sie damit den Begriff "Makro" eher verwässern.

Die Ursprüngliche Definition eines Makros ist eine aufzeichnung oder manuelle Eingabe einer Befehlsfolge, um selbige zu automatisieren - nicht mehr, nicht weniger.

VBA "Makros" hingegen können sogar recht komplexe Anwendungen sein - weshalb ich den Begriff "Makro" ins Verbindung mit VBA-Routinen eher vermeide.

Computers are like airconditioners - they stop working properly when you open Windows Ich bin unschuldig, ich habe sie nicht gewählt!
bei Antwort benachrichtigen
mawe2 neanderix „MS nennt beides Makro - wobei sie damit den Begriff Makro eher verwässern. Die Ursprüngliche Definition eines Makros ist ...“
Optionen
Die Ursprüngliche Definition eines Makros ist

Wer hat eigentlich die exklusive Definitionshoheit für diesen Begriff?

In Wikipedia wird ein Makro folgendermaßen definiert:

"Ein Makro ist in der Softwareentwicklung eine unter einer bestimmten Bezeichnung (Makroname) zusammengefasste Folge von Anweisungen oder Deklarationen, um diese (anstelle der Einzelanweisungen, i. d. R. an mehreren Stellen im Programm) mit nur einem einfachen Aufruf ausführen zu können."

Da ist es also erstmal völlig gleichgültig, mit welcher Sprache das aufgezeichnet oder programmiert wurde. Ein VBA-Makro ist dann eben auch ein "Makro".

bei Antwort benachrichtigen
mawe2 Anne_21 „Versuch - habe hier nur LibreOffice: Markiere den Button und klicke ihn mit der rechten Maustaste an. Im Menü sollte etwas ...“
Optionen

LibreOffice hilft bei solchen Fragen leider nicht weiter.

bei Antwort benachrichtigen