-
Fototrend
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Mutt
senior tag
válasz
Pakliman #54199 üzenetére
Szia,
Két megoldást tudok javasolni:
1. A Click eseményeket beteszed egy saját subroutinba és azonnal meghívod ahogy a vezérlőt (választó gombot) létrehoztad.Sub RunClick(obj As Object)
Dim frm As MSForms.UserForm
Set frm = obj.Parent
With frm
Select Case obj.Name
Case "opbXYZ1"
.Label1.Caption = obj.Name & ": " & obj.Value
Case "opbXYZ2"
frm.BackColor = 13882323
MsgBox "hello world"
Case "opbXYZ3"
frm.BackColor = 14481663
End Select
End With
End Sub
A Select Case-el csak bemutattam hogy eltérő ágakat tudsz létrehozni.2. Megvárod, hogy a vezérlő létrejöjjön és csak utánna változtatod meg az értékét.
A kódodon csak minimálisan változtattam (tartalmazza az 1-es lehetőséget is), a végén van a 2-es opció. Ott véletlenszerűen megváltoztatom az egyik vezérlő értékét, ekkor már le fog futni a Change esemény-Private Sub CommandButton1_Click()
Dim ctl_OpB As MSForms.OptionButton
Dim i As Long
ReDim opbArray(1 To 3)
For i = 1 To 3
Set ctl_OpB = Me.Controls.Add("Forms.OptionButton.1", "opbXYZ" & i, False)
With ctl_OpB
.Left = 100
.Top = 150 + (i * 20)
.Width = 100
.Caption = "opb_" & CStr(i)
.Visible = True
End With
'egyik megoldás, hogy létrehozáskor elindítod a saját kódod
Call RunClick(ctl_OpB)
Set opbArray(i).OptionButton = ctl_OpB
Next i
Set ctl_OpB = Nothing
'másik megoldás, hogy létrehozás után változtatod meg az értékét
Dim r As Double
Randomize
r = Int(Rnd * 3) + 1
opbArray(r).OptionButton.Value = Not opbArray(r).OptionButton.Value
End Sub
A class module-ban csak ennyi van:
Public WithEvents OptionButton As MSForms.OptionButton
Private Sub OptionButton_Change()
Dim frm As MSForms.UserForm
Set frm = OptionButton.Parent
With frm
.Label1.Caption = .Label1.Caption & vbNewLine & OptionButton.Name & " - " & OptionButton.Value
End With
End Sub
Próbáld ki.
üdv
-
Fferi50
Topikgazda
válasz
Pakliman #54199 üzenetére
Szia!
Nem egészen értem, hogy miért szeretnél makróval eseményt indítani egy újonnan felvett vezérlőre. Ezeket pont a userrel való kommunikációra használjuk. Pláne úgy, hogy egy aktív userformon van. Ha végig fut a makró, a userform fennmarad, akkor kattintgathat a user, vezérelheti a folyamatokat.
Persze értem én, hogy tanulni szeretnél, csak nem logikus szerintem.
Üdv.
Új hozzászólás Aktív témák
- Notebook / laptop alkatrészek cseréje (processzor, RAM, HDD)
- Kerékpárosok, bringások ide!
- QNAP hálózati adattárolók (NAS)
- Bemutatkozott a Poco X7 és X7 Pro
- Luck Dragon: Asszociációs játék. :)
- Torrent meghívó kunyeráló
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Mozilla Firefox
- Androidos fejegységek
- Tőzsde és gazdaság
- További aktív témák...
- Árváltozás: Deus Ex Human Revolution Collector's Edition
- Árváltozás + játék DVD: Watch Dogs Deadsec Edititon
- Calman Home for LG licenc (PGenerator támogatással) ÚJ ára 66.000 Ft.
- Battlefield 5 PC SteelBook és játék
- AKCIÓ! Jogtiszta Windows - Office & Vírusirtó licencek- Azonnal - Számlával - Garanciával - Nint.hu
- GYÖNYÖRŰ iPhone Xs Max 256GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS3537, 100% Akkumulátor
- GYÖNYÖRŰ iPhone 14 Pro Max 256GB Space Black - 1 ÉV GARANCIA, Kártyafüggetlen,MS3489
- Honor Magic 7 Pro 512 Gb - AI Pro kamera, 6,8 120 Hz LTPO OLED, Snapdragon 8 Elite,3 hó gari!
- BESZÁMÍTÁS! MSI B450 R5 5500 16GB DDR4 512B SSD GTX 1070 8GB Chieftec BD-25B-350GPB Zalman 500W
- GYÖNYÖRŰ iPhone 13 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3580, 95% Akkumulátor
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest