Anzeige
Archiv - Navigation
384to388
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
384to388
384to388
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schaltflächen beschriften

Schaltflächen beschriften
20.02.2004 08:45:17
Ralf
Guten Morgen Forum,
ich habe auf einem Tabellenblatt mehrere Schaltflächen mit zugewiesenen Makros. Ich möchte die Beschriftung der Schaltflächen automatisieren. Geht das???
Zur Zeit mache ich dies von Hand, was ziemlich viel Arbeit bedeutet. Kann ich da nur Text schreiben, oder kann ich auch auf Zellbezüge zurückgreifen?
Gruß
Ralf

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schaltflächen beschriften
20.02.2004 09:23:20
Dirk
Hallo!
Per Makro kannst Du die Dinger auch beschriften.
Etwa so: worksheets("tabelle1").commandbutton1.caption = worksheets("tabelle1").Range("A1")
Damit hättest Du das was in Zelle A1 im Tabellenblatt1 steht auf der Schaltfläche im Tabellenblatt1
Cheers
AW: Schaltflächen beschriften
20.02.2004 09:35:24
Alex K.
Hallo Ralf,
hier mal die Möglichkeiten:

Public Sub ControlCaption()
'für Controls aus der Symbolleiste "Steuerelemente-Toolbox"
ActiveSheet.OLEObjects("CommandButton1").Object.Caption = ActiveSheet.Range("A1").Value
'Alternativ direkt über den Namen
ActiveSheet.CommandButton1.Caption = ActiveSheet.Range("A1").Value
'für Contols aus der Symbolleiste "Formular"
ActiveSheet.Shapes("Schaltfläche 30").DrawingObject.Caption = ActiveSheet.Range("A1").Value
End Sub

Anzeige
AW: Schaltflächen beschriften
20.02.2004 10:10:14
Ralf
Hm,
ich mal folgendes in das Tabellenblatt des VB Projectes kopiert:
Public

Sub ControlCaption()
ActiveSheet.Shapes("Schaltfläche 59").DrawingObject.Caption = ActiveSheet.Range("A2").Value
ActiveSheet.Shapes("Schaltfläche 61").DrawingObject.Caption = ActiveSheet.Range("A2").Value
End Sub

Die Schaltfläche ist immer noch unbeschriftet. Oder muß ich die irgendwo anders hin kopieren?
Kann ich in der Klammer um den Zellbezug weiteren Text schreiben, der sich nicht verändert?
Gruß
Ralf
AW: Schaltflächen beschriften
20.02.2004 10:20:23
Alex K.
Hallo Ralf,
die ganze Funktion bezieht sich auf das AKTIVE Tabellenblatt. D.h. sowohl der Wert aus A2 als auch die Schaltflächen müssen auf dem gleichen Tabellenblatt liegen und dieses muss aktiviert sein.
Steht auch wirklich ein Text in A2?
Ja, du hast verschiedene Möglichkeiten, denn Zellbezug anzugeben. Beschreibe mal genaue dein Problem, dann kann ich dir auch sagen, wie das mit VBA zu machen ist.
Anzeige
AW: Schaltflächen beschriften
20.02.2004 10:45:44
Ralf
Also,
mit einer Formel geht das ja scheinbar nicht.
Ich habe 18 Tabellenblätter, die heißen GP 1, GP 2, GP 3, ..., GP 18.
Auf jedem Tabellenblatt befinden sich u.a. nun diese zwei Schaltflächen mit Namen Schaltfläche59 und Schaltfläche61. In der Zelle A2 befindet sich definitiv ein Text.
Auf der Schaltfläche 59 soll nun stehen: Tipp "Zellinhalt A2" drucken (1 mal)
Auf der Schaltfläche 61 soll nun stehen: Tipp "Zellinhalt A2" drucken (4 mal)
Das Makro habe ich kopiert in VBAProject => Tabelle01 (GP 1)
Ich hoffe wir kommen wieder etwas weiter.
Gruß
Ralf
AW: Schaltflächen beschriften
20.02.2004 11:03:34
Alex K.
Hallo Ralf,
zuerst mal ein eingenes Modul anlegen und dort den Code reinschreiben. Ist besser, da der Code ja für mehr als ein Tabellenblatt gelten soll. Also im VBA Editor über Menü "Einfügen -> Modul" das Modul1 anlegen. Dort kopierst du dann den folgenden Code:

Public Sub SetControlCaption()
Dim sh      As Worksheet
On Error Resume Next
For Each sh In ActiveWorkbook.Worksheets
'dieser Code geht davon aus, dass in JEDEM Tabellenblatt in A2 der Text steht
sh.Shapes("Schaltfläche 59").DrawingObject.Caption = "Tipp " & sh.Range("A2").Value & _
" drucken (1 mal)"
'alternativ der Code, wenn der Text von A2 aus einem BESTIMMTEN Blatt genommen werden soll
'sh.Shapes("Schaltfläche 59").DrawingObject.Caption = "Tipp " & _
'        Worksheets("GP 1").Range("A2").Value & " drucken (1 mal)"
'die Schaltfläche 59 wurde nicht gefunden, deshalb einfach weiter
If Err.Number <> 0 Then
Err.Clear
End If
'dieser Code geht davon aus, dass in JEDEM Tabellenblatt in A2 der Text steht
sh.Shapes("Schaltfläche 61").DrawingObject.Caption = "Tipp " & sh.Range("A2").Value & _
" drucken (4 mal)"
If Err.Number <> 0 Then
Err.Clear
End If
Next sh
End Sub

Bitte beachte die Voraussetzungen:
1) "Schaltfläche 59" und "Schaltfläche 61" müssen vorhanden sein.
2) Auf JEDEM Tabellenblatt muss in A2 ein Text für die Schaltfläche stehen
Falls es nicht klappt, dann bitte lade die Datei mal hoch. Ansonsten suchen wir uns zu Tode. Meine Erfahrung zeigt, dass es oft Kleinigkeiten sind, welche ich sofort finde, wenn ich die Datei vorliegen habe.
Danke
Anzeige
AW: Schaltflächen beschriften
20.02.2004 11:42:18
Ralf
Hier habe ich mal die Datei hochgeladen.
https://www.herber.de/bbs/user/3818.xls
Ich habe das Makro mal in Modul 2 kopiert.
Komisch, dass die Schaltflächen in GP 2 und GP 3 nun 51 und 53 heißen.
Ich weiß natürlich auch nicht, wie ich die umbenennen kann.
Danke für Deine Hilfe.
Gruß
Ralf
AW: Schaltflächen beschriften
20.02.2004 12:16:41
Alex K.
Hallo Ralf,
da haben wir ja schon den Fehler :-)
Wir benennen am besten die Schaltflächen einheitlich, dann gibt es auch keine Probleme mehr :-)
Also einfach die gewünschte Schaltfläche mit der rechten Maustaste anklicken. Dann siehst du in der Bearbeitungsleiste in der linken Auswahlliste, wo normalerweise der Zellbereich z.B. A1 steht, den Namen der Schaltfläche. Diese mit dem neuen Namen überschreiben und mit Enter bestätigen.
Bitte nenne die erste Schaltfläche auf ALLEN Blättern "Druck1" und die zweite "Druck2". Dann kopiere dir diesen neuen Code für die Beschriftung. Ich habe es getest, läuft einwandfrei.

Public Sub SetControlCaption()
Dim sh      As Worksheet
On Error Resume Next
For Each sh In ActiveWorkbook.Worksheets
sh.Shapes("Druck1").DrawingObject.Caption = "Tippzettel " & sh.Range("A2").Value & _
" drucken (1 mal)"
'die Schaltfläche wurde nicht gefunden, deshalb einfach weiter
If Err.Number <> 0 Then
Err.Clear
End If
sh.Shapes("Druck2").DrawingObject.Caption = "Tippzettel " & sh.Range("A2").Value & _
" drucken (4 mal)"
If Err.Number <> 0 Then
Err.Clear
End If
Next sh
End Sub

Wenn du nun die Blätter GP4 bis GP18 erstellst, dann wird beim Kopieren eines bestehenden Blattes (z.B. GP1 -> GP4) die Namen der Schaltflächen mitübernommen. Du brauchst die also nicht jedesmal ändern.
Anzeige
AW: Schaltflächen beschriften
20.02.2004 12:41:01
Ralf
Ich habe mein Ergebnis noch hochgeladen:

Die Datei https://www.herber.de/bbs/user/3819.xls wurde aus Datenschutzgründen gelöscht

Die Beschriftung auf den Schaltflächen ist immer noch nicht da.
Die Schaltflächen habe ich umbenannt. Wieso klappt es nicht????? Ich verzweifel hier noch, oder ich sehe den Wald vor lauter Bäumen nicht.
Danke für Deine Hilfe.
AW: Schaltflächen beschriften
20.02.2004 12:54:57
Alex K.
Hallo Ralf,
ich bin schon ein wenig sauer. Du veränderst meinen Code und beschwerst dich dann, dass es nicht läuft. Findest du das fair mir gegenüber. Ich schenke dir schliesslich Zeit!!!!
Also nimm deine Zeile

If Left(ActiveSheet.Name, 2) <> "GP" Then Exit Sub

raus, dann läuft es auch!!!!!
Du brauchst keine Abfrage, ob du dich in einem GP-Blatt befindest. Mein Makro durchläuft ALLE Tabellenblätter und ändert nur diese, welche die Schaltflächen "Druck1" und "Druck2" besitzen. Wenn die Schaltflächen nicht vorhanden sind, wird der Fehler ignoriert und weiter gemacht. Somit werden in einem Aufwasch alle Blätter bearbeitet!!!!!!
Hier das Ergebnis, und bitte nicht wieder meinen Code verändern!!!
https://www.herber.de/bbs/user/3820.xls
Anzeige
AW: Schaltflächen beschriften
20.02.2004 13:04:56
Ralf
Mea culpa,
das war ein Versuch meinerseits. Ich habe vergessen dies wieder rückgängig zu machen.
Jetzt ist so, die Beschriftung ist nun da, ich weiß nicht wieso, aber sei's drum.
Ich habe jetzt probehalber mal die Zelle A2 verändert. Die Schaltfläche zieht aber nicht nach.
Gruß
Ralf
AW: Schaltflächen beschriften
20.02.2004 13:10:55
Alex K.
Hallo Ralph,
klar zieht die Schaltfläche nicht autmatisch nach. Du musst bei einer Änderung das Makro neu aufrufen.
Wenn du es automatisch willst, dann sieht der Code ganz anders aus. Das hättest du mir aber auch am Anfang sagen können, dann hätte ich dir hierfür eine Lösung liefern können.
Also die Frage, soll die Schaltfläche automatisch geändert werden?
Wenn ja, dann bitte kurz Bescheid.
Danke
Anzeige
Automatische Lösung
20.02.2004 13:19:45
Alex K.
Hallo Ralf,
hier die autmatisch Lösung. Ausserdem kannst du über das Makro "SetAllControlCaption" alle Buttons auf einmal setzen.
Zusätzlich wird nun die Beschriftung in der aktuellen Tabelle geändert, wenn du A2 änderst.
https://www.herber.de/bbs/user/3821.xls
AW: Automatische Lösung
20.02.2004 14:13:08
Ralf
Ich bin begeistert.
Danke für Deine Hilfe und tschuldige meine Schusseligkeit mit dem veränderten Makro.
Gruß und Allaf
Ralf
Alles klar
20.02.2004 14:38:53
Alex K.
Hallo Ralf,
super, dass es jetzt funktioniert. Am besten das nächste Mal genaue angeben, was man will, dann bekommst man auch gleich eine Lösung :-)
viel Spass im Karneval
alex
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige