Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1700to1704
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
Inhaltsverzeichnis

Welcher CommandButton wurde gedrückt? Schleife?

Welcher CommandButton wurde gedrückt? Schleife?
16.07.2019 16:00:41
Sonja
Hallo ihr Lieben,
hoffe ihr könnt und wollt mir helfen ;-)
Ich habe eine UserForm mit insgesamt 16 CommandButtons. Je nach dem welcher Button gedrückt _
wurde, möchte ich in eine entsprechende Zeile schreiben. Hoffe die Problemstellung ist verstä _
ndlich.
Private Sub CommandButton1_Click()
CMB = 1
Worksheets(2).Cells(CMB, 10) = CMB
End Sub
Private Sub CommandButton2_Click()
CMB = 2
Worksheets(2).Cells(CMB, 10) = CMB
End Sub
Private Sub CommandButton3_Click()
CMB = 3
Worksheets(2).Cells(CMB, 10) = CMB
End Sub
Private Sub CommandButton ... _Click()
CMB = ...
End Sub

Kann man dies irgendwie mit einer Art Schleife kürzer fassen?
Vielen Dank schon mal
Gruß Sonja

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Klassenprogrammierung
16.07.2019 16:26:17
Rudi
Hallo,
füge ein Klassenmodul ein.
Name: clsButton
Code:
Option Explicit
Public WithEvents myButton As MSForms.commandbutton
Private Sub myButton_Click()
MsgBox myButton.Caption
End Sub

In der UF z.B.:
Option Explicit
Dim objButton(1 To 16) As New clsButton  '16 Commandbuttons
Private Sub UserForm_Initialize()
Dim objControl As Control, i As Integer
For Each objControl In Me.Controls
If TypeName(objControl) = "CommandButton" Then
i = i + 1
Set objButton(i).myButton = objControl
With objButton(i).myButton
.Caption = i
End With
End If
Next
End Sub
Gruß
Rudi
Anzeige
AW: Klassenprogrammierung
17.07.2019 21:06:20
Sonja
Hey Rudi,
vielen Dank. Leider sind meine VBA Kenntnisse noch nicht bis zur Anwendung von Klassen vorgedrungen. Daher kann ich deinen Code nicht so ganz verstehen. Werde dies als Hausaufgabe mitnehmen.
Gruß Sonja
AW: Welcher CommandButton wurde gedrückt? Schleife?
16.07.2019 17:43:17
onur

Private Sub CommandButton1_Click()
Call test
End Sub
Private Sub CommandButton2_Click()
Call test
End Sub
Private Sub CommandButton13_Click()
Call test
End Sub
Public Sub test()
Dim CMB, nam
nam = ActiveControl.Name
CMB = Val(Mid(nam, 14))
Worksheets(2).Cells(CMB, 10) = CMB
End Sub

AW: Welcher CommandButton wurde gedrückt? Schleife?
17.07.2019 21:03:46
Sonja
Hey Onur,
vielen Dank. Super Idee mit dem "Abschneiden" des Namens des Buttons. Konnte ich gleich noch an anderer Stelle verwenden.
Gruß Sonja
Anzeige
AW: Welcher CommandButton wurde gedrückt? Schleife?
17.07.2019 22:23:04
Daniel
HI
ich würde hier statt der 16 Commandbuttons eine LISTBOX mit 16 einträgen verwenden.
dann reicht dir ein einziges Steuerelement und ein Makro:
Private Sub Listbox1_Click()
if Listbox1.Listindex >= 0 Then
CBM = Listbox1.ListIndex + 1
Worksheets(2).Cells(CMB, 10) = CMB
Listbox1.ListIndex = -1
End if
End Sub
Gruß Daniel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige