HERBERS Excel-Forum - das Archiv
Excel VBA unter office365 - Text einer Schaltfläche anfragen
f4rgun4no
Hallo zusammen,

ich hatte ein funktionierendes Makro unter einer älteren Office Version programmiert.
Jetzt nach dem Update in der Firma läuft das nicht mehr störungsfrei, da sich das Vokabular mal wieder geändert hat.

Ich möchte den Text einer Schaltfläche (früher Commandbutton1) abfragen und per Makro ändern.
bei "Me.Schaltfläche1585.caption" erkennt das Office aber das "me" nicht mehr (Meldung "Unzulässige Verwendung des Schlüsselwortes Me")
und ohne me kommt "Objekt erforderlich"

MsgBox Schaltfläche1585.Caption

Ich habe schon online mehrere Foren durchsucht, finde aber bisher nichts außer der o.g. Optionen. mit
"me.xxx.caption"

Ich bitte hiermit höflich um Hilfe.
Besten Dank im Vorraus!



AW: Excel VBA unter office365 - Text einer Schaltfläche anfragen
Luschi
Hallo f4rgun4no,

daraus ergeben sich für mich 2 Fragen:
- wo befindet sich das Steuerelement (auf dem Tabellenblatt, in 1 Userformular)?
- wo befindet sich der Makrocode dazu (im Klassenmodul des Tabellenblattes/Userformular oder normalen Modul)?

fragt sich Luschi
aus klein-Paris
AW: Excel VBA unter office365 - Text einer Schaltfläche anfragen
xlKing
Hallo,

das hat nicht unbedingt was mit der neuen Office-Version zu tun. Das ist ganz normales Verhalten in Excel. Wenn Shapes gelöscht werden bzw. Neue angelegt werden zählt der Zähler nun mal hoch bzw. nummeriert auch gern mal neu durch. Du hast offenbar zwischenzeitlich 1585 mal den Button neu angelegt, oder aber entsprechend viele Buttons auf dem Blatt.

Du musst also CommandButton1585 verwenden. Aber beim nächsten Mal ist es dann sicher 1586 usw. Standardnamen sind also schlecht. Excel reagiert zwar sowohl auf den Englischen als auch auf den deutschen Standardnamen (zumindest in der Shapes-Auflistung) aber dennoch ist es immer besser dem Ding einen eigenen Namen zu geben. z.B. "ButtonTrennz" Damit hat dann auch der Spuk (Deutsch-Englisch, bzw. mit welcher Nummer) ein Ende denn auch die Shapes-Auflistung reagiert dann immer auf diesen Namen.

Den Namen kannst du oben links neben der Formelleiste festlegen.

Gruß Mr. K.
AW: Excel VBA unter office365 - Text einer Schaltfläche anfragen
f4rgun4no
Hi Luschi!

daraus ergeben sich für mich 2 Fragen:
- wo befindet sich das Steuerelement (auf dem Tabellenblatt, in 1 Userformular)?


auf dem Tabellenblatt


- wo befindet sich der Makrocode dazu (im Klassenmodul des Tabellenblattes/Userformular oder normalen Modul)?

2erlei aber beides im Markocode des Tabellenblatts "Tabelle1 (xyz)" in dieser Form

1. in einem Private Sub '(habe ich noch nicht überarbeitet, weil ich die neue Schaltfläche erst teste
Private Sub CommandButton1_Click()

'MsgBox Me.CommandButton1.Caption
If Me.CommandButton1.Caption = " , " Then
Me.CommandButton1.Caption = " ; "
Else
If Me.CommandButton1.Caption = " ; " Then
Me.CommandButton1.Caption = " , "
End If
End If

End Sub

2. im Sub was mir halt die automatische Abarbeitung erledigt
(also in einer dyamische Dropbox die Trennzeichen der Auswahl-Zeilen anpasst, denn auf einem Rechner nimmt er "," und auf dem anderen Rechner ";")
If Schaltfläche1585.Caption = "   ,   " Then                                  'ALTE Version: If CommandButton1.Caption = "   ,   " Then

Deli_Arr = ","
Else
If Schaltfläche1585.Caption = " ; " Then
Deli_Arr = ";"
Else
Schaltfläche1585.Caption = " , "
MsgBox "Trennzeichen in Schaltfäche im Bereich AA9 nicht gewählt - auf ',' gesetzt"
Deli_Arr = ","
'Exit Sub
End If
End If

AW: Excel VBA unter office365 - Text einer Schaltfläche anfragen
Kuwer
Hallo,

vielleicht so?
  With ActiveSheet.Buttons("Schaltfläche 1585")

If .Caption = " , " Then 'ALTE Version: If CommandButton1.Caption = " , " Then
Deli_Arr = ","
Else
If .Caption = " ; " Then
Deli_Arr = ";"
Else
.Caption = " , "
MsgBox "Trennzeichen in Schaltfäche im Bereich AA9 nicht gewählt - auf ',' gesetzt"
Deli_Arr = ","
End If
End If
End With

Gruß, Uwe
AW: Excel VBA unter office365 - Text einer Schaltfläche anfragen
f4rgun4no
Super!
Damit komme ich weiter.

Ich mag zwar die With Variante nicht so, weil das immer mal wieder Theater macht,
aber da komme ich jetzt fürs erst nicht drum herum.

Vielen Dank Kuwer!
AW: Excel VBA unter office365 - Text einer Schaltfläche anfragen
daniel
Hi
wenn du WITH nicht magst:

kopiere den Text, der hinter WITH steht { ActiveSheet.Buttons("Schaltfläche 1585") }und füge ihn überall dort ein, wo ein "Wort" mit dem Punkt beginnt. { .Caption }

also aus .Caption wird ActiveSheet.Buttons("Schaltfläche 1585").Caption

dann kannst du die WITH-Klammer (Zeilen With ... und End With) löschen.

Gruß Daniel


AW: Excel VBA unter office365 - Text einer Schaltfläche anfragen
f4rgun4no
Danke daniel,

ich hab jetzt ne Weile nix mehr geschrieben und bin nicht mal eben drauf gekommen.
Genauso mache ich das immer.