Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
748to752
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
748to752
748to752
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Nummer aus CommandButton1_Click() an Variable
01.04.2006 21:45:18
Uwe
Hallo Ihr,
ich brauche Eure Hilfe.
Ich habe eine Tabelle mit 200 Commandbuttons, die CommandButton(1-200) heißen.
In einer zweiten Tabelle stehen in Spalte A und B Namen und Vornamen.
Die Captions der Commandbuttons zeigen diese Namen. Wird der Button angeklickt soll in Spalte C hinter dem Namen ein X erscheinen. (Außerdem wechselt der Button die Farbe). Der Code hierfür sieht so aus:


Private Sub CommandButton1_Click()
If CommandButton1.BackColor = &HC0C0C0 Then
      CommandButton1.BackColor = &H80FF80
   Else: CommandButton1.BackColor = &HC0C0C0
End If
If CommandButton1.BackColor = &H80FF80 Then
      Sheets(2).Cells(1, 3).Value = "X"
   Else: Sheets(2).Cells(1, 3).Value = ""
End If
End Sub


Nun bin ich ja faul, und hoffe das Forum unterstützt mich dabei:
Wie kann ich es mir ersparen die Codes für alle 200 Buttons durch Ersetzen der Zähler anpassen zu müssen?
Mit Me.Name im Code erhalte ich leider nur den Tabellen-Namen (:-(
ALSO DIE EIGENTLICHE FRAGE: Wie kann ich innerhalb des Klickereignisscodes abfragen wie der Commandbutton heißt, oder beser noch welche Nummer er hat, sodaß ich damit die Position des X in der Namenstabelle festlegen kann?
Schon mal vielen Dank im Voraus für Eure Tips.
Gruß
Uwe
(:o)

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nummer aus CommandButton1_Click() an Variable
01.04.2006 21:49:35
chris
Das ganze kannst du nur mit Klassenmodulen erreichen.Wenn ich dich richtig verstanden habe.
Habe dir einfach mal eine Datei derart zum Download zur verfügung gestellt und hoffe er Hilft dir.
https://www.herber.de/bbs/user/32525.xls
gruß Christian
AW: Nummer aus CommandButton1_Click() an Variable
01.04.2006 21:49:35
chris
Das ganze kannst du nur mit Klassenmodulen erreichen.Wenn ich dich richtig verstanden habe.
Habe dir einfach mal eine Datei derart zum Download zur verfügung gestellt und hoffe er Hilft dir.
https://www.herber.de/bbs/user/32525.xls
gruß Christian
Anzeige
AW: Nummer aus CommandButton1_Click() an Variable
01.04.2006 21:53:21
Ramses
Hallo
Button Formular
Ins aufzurufende Makro
msgbox Application.Caller
Button Steuerelement Toolbox
Msgbox Me.Commandbutton1.Caption
Du brauchst also nur dem Makro im Aufruf dies als Parameter zu übergeben
Gruss Rainer
AW: Nummer aus CommandButton1_Click() an Variable
01.04.2006 22:23:15
Uwe
Hi Chris und Rainer.
Für Chris' Vorschlag bin ich heute abend nicht mehr fit genug. Schau ich mir morgen nochmal an und melde mich auf jedenfall noch.
Bin mir auch nicht sicher ob ich richtig verstanden worden bin, auch bei Rainers Vorschlag. Was ich brauche ist eine Zeile in meinem Code (s.o.), die mir im Prinzip nur sagt: MsgBox "Du hast" & Commandbutton1 & "angeklickt". Mir also zurückgibt welchen Commandbotton ich angeklickt habe, damit ich mir aus dem String die 1 raussuchen kann (bzw. die 2,3,...200). Damit kann ich dann das Range in der Namenstabelle ansprechen.
Ich lass die Frage nochnmal offen. Werd aber morgen mit klarerem Kopf nochmal checken ob ich die Lösung nicht doch schon bekommen habe.
Auf jeden Fall viiieeelen Dank für Eure Mühe.
Gruß
Uwe
(:O)
Anzeige
AW: Nummer aus CommandButton1_Click() an Variable
01.04.2006 22:23:19
Uwe
Hi Chris und Rainer.
Für Chris' Vorschlag bin ich heute abend nicht mehr fit genug. Schau ich mir morgen nochmal an und melde mich auf jedenfall noch.
Bin mir auch nicht sicher ob ich richtig verstanden worden bin, auch bei Rainers Vorschlag. Was ich brauche ist eine Zeile in meinem Code (s.o.), die mir im Prinzip nur sagt: MsgBox "Du hast" & Commandbutton1 & "angeklickt". Mir also zurückgibt welchen Commandbotton ich angeklickt habe, damit ich mir aus dem String die 1 raussuchen kann (bzw. die 2,3,...200). Damit kann ich dann das Range in der Namenstabelle ansprechen.
Ich lass die Frage nochnmal offen. Werd aber morgen mit klarerem Kopf nochmal checken ob ich die Lösung nicht doch schon bekommen habe.
Auf jeden Fall viiieeelen Dank für Eure Mühe.
Gruß
Uwe
(:O)
Anzeige
AW: Nummer aus CommandButton1_Click() an Variable
01.04.2006 23:38:39
Ramses
Hallo
um dir mal auf die Sprünge zu helfen ;-)
So geht es mit einer Schaltfläche aus der Symbolleiste Formular.
Diesen Schaltflächen ist jeweils das Makro1 zugeordnet
Option Explicit

Sub Makro1()
    Dim tarRange As Range
    'Für Makro die durch die Schaltfläche aus
    'der Symbolleiste Formular aufgerufen werden
    MsgBox "Ich bin :" & Application.Caller
    Set tarRange = Range(Worksheets(ActiveSheet.Name).Shapes(Application.Caller).TopLeftCell.Address)
    'Wert Links vom Button
    MsgBox "Wert aus der Zelle links vom angeklickten Button: " & tarRange.Offset(0, -1)
End Sub

Mit einem Commandbutton geht es so.
Es wird jeweils das Makro2 aufgerufen mit Parameterübergabe
Option Explicit

Private Sub CommandButton1_Click()
    Makro2 Me.CommandButton1.Name
End Sub

Sub Makro2()
    Dim tarButton As Shape
    Set tarButton = Worksheets(ActiveSheet.Name).Shape("Commanbutton1")
    With tarButton
        .BackColor = &H80FF80
    End With
End Sub

Gruss Rainer
Anzeige
AW: Nummer aus CommandButton1_Click() an Variable
02.04.2006 00:24:10
Gerd
Hi,
unerträgliche Batelei, bei VBA gut noch nie was von Klassenmodulen gehört?
mfg Gerd
Antwort und Korrektur
02.04.2006 00:48:14
Ramses
Hallo
Den Beitrag hättest du dir sparen können.
1. Hat Chris das bereits geschrieben und ein Beispiel hochgeladen im Gegensatz zu Dir
2. Für jemand der noch nicht mit Klassenmodulen gearbeitet hat, ist meine Variante vielleicht eine Alternative
3. Was daran unterträglich ist, kann ich nicht nachvollziehen.
Aber ich danke dir trotzdem, da ich hier noch eine Korrektur anbringen kann.
Option Explicit

Private Sub CommandButton1_Click()
    Makro2 Me.CommandButton1.Name
End Sub

Sub Makro2(btnName As String)
    Dim tarButton As Shape
    Set tarButton = Worksheets(ActiveSheet.Name).Shape(btnName)
    With tarButton
        .BackColor = &H80FF80
    End With
End Sub

Das hätte dir, bei deinem Wissen, aber auffallen müssen.
Gruss Rainer
Anzeige
AW: Antwort und Korrektur
02.04.2006 18:41:09
Uwe
Hi Ramses,
danke für Deinen Code.
Ich habe die Buttons aus der Steuerelement-Toolbox.
Im Moment habe ich noch ein Problem. Ich bekomme bei Makro2 in der Zeile Set tarButton .... die Fehlermeldung: Objekt unterstützd die Eigenschaft oder Methode nicht. Im Debugger sehe ich dass btnName als "CommandButton1" übergeben wurde. Hab's auch schon mit sheets(1) und ähnlichem versucht, bekomme aber immer die gleiche Fehlermeldung?!
Werde mich gleich nochmal intensiver damit (und auch mit Chris' Lösung) beschäftigen. Jetzt muss ich erstmal Daumendrücken dass Schalke endlich ein (paar) Tor(e) schießt!!!
Auf jeden Fall schon mal vielen Dank!
Gruß
Uwe
(:o)
Anzeige
AW: Antwort und Korrektur
02.04.2006 19:39:07
Uwe
Hi,
ein Stückchen weiter bin ich jetzt.
Wenn ich .Shape(btnName) durch .Shapes(btnName) ersetze erhalte ich die Fehlermeldung erst bei .BackColor.... (:-|
Ich hab' da ein bisschen rumgetestet: .name ="TEST" oder .Width = 50 funktionieren, nur leider .BackColor und auch .Caption leider nicht?!
Ich fummel mal weiter.
Gruß
Uwe
(:o)
AW: Nummer aus CommandButton1_Click() an Variable
02.04.2006 18:28:41
Uwe
Hi Gerd,
was bitte ist Batelei?
Zu meinem Level: Ich weiß, ich bin in VBA nicht wirklich gut. Ich lerne noch, allerdings schon seit einigen Monaten anhand von Büchern und vor allen Dingen durch regelmäßigen Besuch dieses tollen Forums.
Ich habe schon ein paar Fragen gestellt, aber auch schon sehr oft anderen (auch wenn sie "VBA gut" waren) helfen können.
Ich finde mich in "Kaum Excel- /VBA-Kenntnisse" nicht wieder und die nächste Stufe ist halt gut/gut.
Vielleicht müsste noch eine Stufe "Excel gut / VBA noch nicht ganz so gut" eingeführt werden?! (;-).
Ich weiß was Klassenmodule sind, bin aber noch nicht so weit sie wirklich selbst zu erstellen und sinnvoll einzusetzen.
Und wenn ich nicht mehr weiterweiß frag ich halt hier und habe auch keine Angst mal eine dumme Frage zu stellen, weil ich weiß das die meisten hier im Forum deshalb NICHT sauer werden.
Gruß
Uwe
(:o)
Anzeige
AW: Nummer aus CommandButton1_Click() an Variable
02.04.2006 19:57:29
Gerd
Hi,
schau mal richtig hin, mein posting ist unter Ramses platziert, war also für ihn bestimmt.
mfg Gerd

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige