Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1612to1616
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

Button Array

Button Array
06.03.2018 06:36:02
Antonio
Hallo Veteranen,
ich bilde zur Laufzeit ein Button Array, das Problem ist das nur der letzte Button erkannt wird. Hier mein Code:
In ein Klassenmodul:
Option Explicit
Public WithEvents myCmd As MSForms.CommandButton
Dim Label16 As Object
Private Sub myCmd_Click()
'MsgBox (myCmd.Caption & " gedrückt")
UserForm1.Label16 = myCmd.Caption
End Sub
In Userform1:
Private Sub UserForm_Initialize()
Dim Obj As Object
Dim a As Integer
Dim i As Long
Dim myClass As cls_Test
Set myClass = New cls_Test
For i = 1 To 49
Set myClass.myCmd = Frame1.Controls.Add("Forms.CommandButton.1", "myCmd" & i, True)
With myClass.myCmd
'        .Tag = i + 1
'        .Caption = Sheets("Tabelle6").Range("A1" & i).Value
.Left = 0
.Height = 20
.Width = 55
.Top = i * 20 - 20
For Each Obj In Me.Frame1.Controls
If Obj.Name = "myCmd" & i Then
Obj.Caption = Sheets("Tabelle6").Range("A" & i).Value
End If
Next Obj
End With
Next i
myColl.Add myClass
With Frame1
'~~> This will create a vertical scrollbar
.ScrollBars = fmScrollBarsVertical
.ScrollHeight = .InsideHeight * 7.5 / 3 '~~> Change the values of 2 as Per your  _
requirements
.ScrollWidth = .InsideWidth * 9
End With
End Sub
Kann mir bitte jemand helfen das alle Button angesprochen werden?
Danke in Voraus
Antonio

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Button Array
06.03.2018 07:52:31
Luschi
Hallo Antonio,
so klappt das bei mir:

Private myColl As Collection
Private Sub UserForm_Initialize()
Dim ctrl As MSForms.Control
Dim a As Integer
Dim i As Long
Dim myClass As clsButtonArray
''Set myClass = New clsButtonArray ' muß in der For-Schleife stehen!
Set myColl = New Collection
For i = 1 To 49
'Set myClass.myCmd = Frame1.Controls.Add("Forms.CommandButton.1", "myCmd" & i, True)
Set ctrl = Me.Frame1.Controls.Add("Forms.CommandButton.1", "myCmd" & i, True)
With ctrl
.Tag = i
'.Caption = ThisWorkbook.Worksheets("Tabelle1").Range("A" & i).Value
.Caption = "cmdButton " & Format(i, "00")
.Left = 0
.Height = 20
.Width = 65
.Top = IIf(i = 1, 5, i * 20)
End With
Set myClass = New clsButtonArray
Set myClass.myCmd = ctrl
myColl.Add myClass
Next i
With Me.Frame1
'~~> This will create a vertical scrollbar
.ScrollBars = fmScrollBarsVertical
.ScrollHeight = .InsideHeight * 7.5 / 1.5   '2
.ScrollWidth = .InsideWidth * 9
End With
End Sub
'im Klassenmodul (Name:= clsButtonArray)
Public WithEvents myCmd As MSForms.CommandButton
Dim Label16 As Object
Private Sub myCmd_Click()
'MsgBox (myCmd.Caption & " gedrückt")
UserForm2.Label1.Caption = myCmd.Caption
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Button Array
06.03.2018 08:18:18
Antonio
Hi Luschi,
danke erstmal für deine Antwort,
SUUUPER, jetzt funzt und ich weis wo der Fehler war.
Nochwas, Kann ich jetzt mit:
Private Sub myCmd_Click()
etwas bewirken, auslösen? Oder bin ich Falsch weil der myCmd im Klassenmodul ist?
Bsp.:
Private Sub myCmd_Click()
Worksheets("Tabelle6").Activate
ActiveSheet.Cells(8, 11).Value = CommandButton220.Caption
'TextBox4.Value = ActiveSheet.Cells(1, 11).Value
'TextBox1 = TextBox4.Text
'End Sub
'Private Sub ListBox2_Click()
Worksheets("Tabelle6").Activate
ActiveSheet.Cells(8, 11).Value = CommandButton220.Caption
'TextBox5 = ActiveSheet.Cells(8, 11).Value
TextBox1 = Sheets("Tabelle6").Cells(12, 11).Value
End Sub
Danke in Voraus
Antonio
Anzeige
AW: Button Array
06.03.2018 10:40:05
Antonio
Hi!
Ich bitte um eure Hilfe da mit:
Private Sub myCmd_Click()
nicht funzt.
Vielen Dank in Voraus
Antonio
AW: Button Array
06.03.2018 10:54:45
Luschi
Hallo Antonio,
was ist los? Erst großer Jubel und jetzt Katzengejammer; zeige doch mal Dein Demo-Beispiel als xlsm-Datei, damit man was Handfestes hat und nicht nur Beschreibungen.
Gruß von Luschi
aus klein-Paris
AW: Button Array
06.03.2018 11:10:33
Antonio
Hallo Luschi,
es ist kein Katzengejammer, habe deswegen ernuet gepostet weil du mein voriger Thread nicht eingegangen bist, habe gedacht du bist nicht mehr online.
Wenn ich hier mein xlsm poste würde dir nichts sagen weil im excel habe Tabellen die mit der Userform nichts zu tun Haben. Es würde auch zu lang dauern dir alles zu erklären was im Excel geschiet.
Falls du interesse hast kannst in der Beitragsliste :
2018-03-05 06:35:19 Antonio AW: hier geht es mE nur mit VBA weiter ....
schauen was in xlsm passiert, aber wie gesagt nichts mit der Userform zu tun, lediglich Zellenwerte in Textboxen übertragen.
das ist was ich vorher geschrieben habe:
Nochwas, Kann ich jetzt mit:
Private Sub myCmd_Click()
etwas bewirken, auslösen? Oder bin ich Falsch weil der myCmd im Klassenmodul ist?
Bsp.:
Private Sub myCmd_Click()
Worksheets("Tabelle6").Activate
ActiveSheet.Cells(8, 11).Value = CommandButton220.Caption
'TextBox4.Value = ActiveSheet.Cells(1, 11).Value
'TextBox1 = TextBox4.Text
'End Sub
'Private Sub ListBox2_Click()
Worksheets("Tabelle6").Activate
ActiveSheet.Cells(8, 11).Value = CommandButton220.Caption
'TextBox5 = ActiveSheet.Cells(8, 11).Value
TextBox1 = Sheets("Tabelle6").Cells(12, 11).Value
End Sub
Danke in Voraus
Antonio
Wolte nur wissen wie beim Clicken auf ein ArrayButton ein Ereignis auslösen kann.
Danke
Antonio
Anzeige
AW: Button Array
06.03.2018 14:55:26
Luschi
Hallo Antonio,
mit diesen Angabe: 2018-03-05 06:35:19 Antonio AW: hier geht es mE nur mit VBA weiter ....
finde ich keinen Eintrag in der Beitragsliste, so daß mir auch keine Excel-Datei zur Verfügung steht, die ich downloaden könnte.
Wenn Du alles richtig gemacht hast, dann ist 'myCmd' das Objekt im Klassenmodul, daß alle _ Buttons der Userform repräsentiert, die im 'Frame1' erzeugt wurden und erkennt somit auch jedes Klick-Ereignis dieser Buttons. Die Klicks per Maus auf die erzeugten Buttons werden mit Hilfe des Initialize-Ereignisses der UF umgeleitet auf das 'myCmd'-Objekt und dessen Klick-Ereignis. Dafür steht ja diese Prozedur im Klassenmodul:

Private Sub myCmd_Click()
'MsgBox (myCmd.Caption & " gedrückt")
UserForm2.Label1.Caption = myCmd.Caption
End Sub
Egal auf welchen Button ich klicke, jedesmal sird diese Routine ausgelöst.
Wenn nicht ist eirgendwas falsch; bei mir jedenfalls klappt es. Da ich seit über 2 Jahren kaum noch Beispieldateien bereitstelle, die ich selber erstellen mußte, bleibt es bei dieser theortischen Beschreibung. Was ich allerdings tue: Dateien zum downloaden weiterbearbeiten und zurückschicken.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Button Array
06.03.2018 15:03:30
Antonio
Hallo Luschi,
hast du ein e-mail?
AW: Button Array
06.03.2018 15:10:30
Antonio
Ich muss bald Heim, wenn du mir dein e-mail sendest kann ich dir die xlsm file schicken
Antonio
AW: Button Array
06.03.2018 15:16:07
Antonio
wenn kein e-mail
siehe hier:
Userbild
dann auf Antwort auf: (ganz oben) soweit zurück klicken bis alles hast.
LG
Antonio
PS.: ich muss jetzt gehen, bis morgen
AW: Button Array
06.03.2018 15:46:43
Luschi
Hallo Antonio,
leider finde ich diesen Eintrag im Archiv nicht!
Userbild
Da gibts bei mir eine riesige Archiv-Lücke.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Button Array
07.03.2018 06:54:56
Antonio
Hallo Luschi,
schaut so aus das dir einiges fehlt.
Aber ich habe es hinbekommen, habe einige Satze direkt in Klassenmodul eingetragen und funzt.
habe noch ein Problem:
Userbild
Ich habe einige Buttons in der Form, habe versucht mit If Then sie anzusprechen (siehe Bild)wird mir aber nur der erste angezeigt.
Habe auch versucht mit Select Case, ohne Erfolg, das liegt aber an mir, weil ich die richtige Sintax nicht kenne und im Internet nichts über Button select Case gefunden habe außer über Radio Button, das scheint nicht das gleiche zu sein weil auch hier, mit dem Code von Radio Button aber geändert, bin gescheitert.
Hättest du hier ein Tipp?
Ich kann kein Array bilden weil die Buttons unterschiedlich in der Größe sind. (siehe Bild)
Userbild
Oder vielleicht weis du wie man ein Array bildet mit diesen Buttons.
Danke in Voraus
Antonio
Anzeige
AW: Button Array
07.03.2018 10:14:16
Luschi
Hallo Antonio,
ohne Beispieldatei von Dir bleibe ich im Relax-Modus.
Gruß von Luschi
aus klein-Paris
AW: Button Array
07.03.2018 11:19:10
Antonio
...erledigt...
Danke Luschi
Antonio
AW: Button Array
07.03.2018 11:50:30
Antonio
hast du ein e-mail addresse?
Ich weis sowas macht man nicht, aber gibt es die Möglichkeit eine PN an dir zu senden?
Dann würde ich dir meine xlsm senden.
Antonio
AW: Button Array
07.03.2018 19:03:04
Luschi
Hallo Antonio,
http://www.ms-office-forum.net/forum/forumdisplay.php?f=29
melde Dich bei diesem Forum an; dann suche nach Beiträgen von Luschi und Du kannst mir dann eine PN schicken.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Button Array
08.03.2018 07:06:57
Antonio
Hallo Luschi,
ich verstehe es nicht, ich war bei ms-office schon registriet, habe mich wieder angemeldet aber schaut so aus das ich keine Rechte habe:
Userbild
Userbild
Userbild
Ich weis nicht warum ich in diesem Forum gar nichts mehr machen kann.
Ich weis nicht weiter.
Antonio
AW: Button Array
08.03.2018 10:12:57
Antonio
Hallo Luschi,
ich bin schon lang Mitglied von ms-office.
Keine Chance, bin zwar angeloggt aber keine RECHTE, ich weis nicht was passiert ist.
Antonio

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige