Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

VBA AktiveX CommandButton.Name mit call übergeben

Forumthread: VBA AktiveX CommandButton.Name mit call übergeben

VBA AktiveX CommandButton.Name mit call übergeben
21.01.2025 23:46:04
Thomasa Brill
Hallo,

ich möchte den Namen eines AKtiveX Commandbutton per Call an eine Prozedur über geben.

Wie muss ich den Namen des CommandButton butName in der Prozedur einbinden?

Beispiel Datei: https://www.herber.de/bbs/user/175020.xlsm

Weitere Infos:
Die CommandButton schreiben den Wert 0 oder 1 in die darunterliegen Zelle Spalte F.
Per Funktion SVERWEISPlus werden die Commandbutton.Caption aus Spalte G in einer Zelle zusammen ausgegeben.
Quelle SVERWEISPlus: https://answers.microsoft.com/de-de/msoffice/forum/all/sverweis-plus-mit-aus-gabe-mehrerer-werte-in-einer/ca46a7fc-e381-4dd0-880a-484e2a774770


' Die CommandButton sind AktivX Elemente

' Hier eine Prozdur für alle CommandButton
Private Sub allButtons(ByVal butName As String)

With wsCheckliste.butName
If .TopLeftCell.Offset(0, 0).Value = 1 Then
.TopLeftCell.Offset(0, 0).Value = 0
.BackColor = &H8000000F
Else
.TopLeftCell.Offset(0, 0).Value = 1
.BackColor = &H8080FF
End If
.TopLeftCell.Offset(0, -3).Select
End With

End Sub

Private Sub CommandButton1_Click()
Dim butName As String
butName = wksCheckl.CommandButton1.Name

Call allButtons(butName)

' With wsCheckl.CommandButton1
' If .TopLeftCell.Offset(0, 0).Value = 1 Then
' .TopLeftCell.Offset(0, 0).Value = 0
' .BackColor = &H8000000F
' Else
' .TopLeftCell.Offset(0, 0).Value = 1
' .BackColor = &H8080FF
' End If
' .TopLeftCell.Offset(0, -3).Select
' End With
End Sub
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA AktiveX CommandButton.Name mit call übergeben
22.01.2025 00:04:53
Onur
Wäre ja toll, wenn es SO einfach wäre...

Was soll eigentlich diese Codezeile?
butName = wksCheckl.CommandButton1.Name

Der Name ist doch "CommandButton1", wozu noch den Namen abfragen? Das wäre das Selbe wie:
butName = "CommandButton1"
"
was aber auch nix bringen würde.
Poste mal eine Datei, dann schaue ich mal...
Anzeige
er hat doch ...
22.01.2025 00:08:53
Uduuh
... eine Datei gepostet

Gruß aus'm Pott
Udo
AW: VBA AktiveX CommandButton.Name mit call übergeben
22.01.2025 00:52:57
Onur
Private Sub allButtons(nr)

With wsCheckliste.OLEObjects("CommandButton" & nr)
If .TopLeftCell.Offset(0, 0).Value = 1 Then
.TopLeftCell.Offset(0, 0).Value = 0
.Object.BackColor = &H8000000F
Else
.TopLeftCell.Offset(0, 0).Value = 1
.Object.BackColor = &H8080FF
End If
.TopLeftCell.Offset(0, -3).Select
End With
End Sub

Private Sub CommandButton1_Click()
Call allButtons(1)
End Sub
Private Sub CommandButton2_Click()
Call allButtons(2)
End Sub
'usw usw usw
Anzeige
AW: VBA AktiveX CommandButton.Name mit call übergeben
22.01.2025 02:38:56
Thomasa Brill
Hallo Onur

Der Code funktioniert bestens.

Vielen Dank

Gruß von der schwäbischen Alb
Thomas
AW: er hat doch ...
22.01.2025 00:17:20
Onur
OOOOPS !
Sorry - Danke !
AW: VBA AktiveX CommandButton.Name mit call übergeben
22.01.2025 00:07:29
Uduuh
Hallo,
besser das Objekt statt des Objekt-Namens.
Private Sub allButtons(BUT As Object)


With BUT
If .TopLeftCell.Offset(0, 0).Value = 1 Then
.TopLeftCell.Offset(0, 0).Value = 0
.BackColor = &H8000000F
Else
.TopLeftCell.Offset(0, 0).Value = 1
.BackColor = &H8080FF
End If
.TopLeftCell.Offset(0, -3).Select
End With

End Sub

Private Sub CommandButton1_Click()

Call allButtons(CommandButton1)

End Sub

Gruß aus'm Pott
Udo
Anzeige
AW: VBA AktiveX CommandButton.Name mit call übergeben
22.01.2025 00:38:02
Thomasa Brill
Hallo Udo

vielen Dank. Funktioniert mit einer kleinen Änderung. Ich musste Objekt durch VARIANT ersetzen.

Gruß von der schwäbischen Alb
Thomas

Private Sub allButtons(ByVal BUT As Variant)


With BUT
If .TopLeftCell.Offset(0, 0).Value = 1 Then
.TopLeftCell.Offset(0, 0).Value = 0
.BackColor = &H8000000F
Else
.TopLeftCell.Offset(0, 0).Value = 1
.BackColor = &H8080FF
End If
.TopLeftCell.Offset(0, -3).Select
End With

End Sub

Private Sub CommandButton1_Click()

Call allButtons(CommandButton1)

End Sub


Forumsbeitrag gelöst. Vielen Dank
Anzeige
AW: VBA AktiveX CommandButton.Name mit call übergeben
22.01.2025 21:23:29
Uduuh
Hallo,
ich habe nichts von ByVal geschrieben.

Gruß aus m Pott
Udo

Forumthreads zu verwandten Themen

Anzeige
Anzeige