Unica macro per commandbutton
Hai un problema con Excel? 
Unica macro per commandbutton
di Costadilevante (utente non iscritto) data: 02/11/2010
Ho creato una maschera con 2500 bottoni di comando. ho creato un'unica macro bottoneclick che gestisce il click di ogni bottone.
voglio che quando viene cliccato un generico bottone x venga eseguita la macro bottoneclick e non commandbuttonx_click. qualcosa di simile al command handler di .net
di Enzo (utente non iscritto) data: 02/11/2010
Per richiamare una macro
di Costadilevante (utente non iscritto) data: 02/11/2010
Questo mi risolve il problema in parte, poichè dovrei scrivere il comando su 2500 commandbuttonx_click :(
di Albatros54 (utente non iscritto) data: 02/11/2010
Mmmm....zzica che e' un alveare!!!!
ti passo il codice del grande mauro che fa al tuo caso.
nell'editor di vba crei una classe e la rinomini clscommandbutton ed incolli il codice postato sotto.
nella tua userform con i tuoi 2500..pulsanti nell'evento inizialize incolla il codice sotto.
ciao
albatros54
>> Modulo di Classe<<<<
Option Explicit
Public WithEvents cmd As MSForms.CommandButton
Public frm As UserForm
Private Sub cmd_Click()
Call mEsegui(cmd.Name)
End Sub
Private Sub mEsegui(ByVal s As String)
MsgBox "Hai premuto: " & s
End Sub
>> Fine Modulo di Classe<<<<
>>> Codice da incollare su Userform<<<
Option Explicit
Dim colCommandButton As Collection
Dim myCmd As clsCommandButton
Private Sub UserForm_Initialize()
Dim ctl As MSForms.Control
If Not colCommandButton Is Nothing Then
Set colCommandButton = Nothing
End If
Set colCommandButton = New Collection
For Each ctl In Me.Controls
If TypeOf ctl Is MSForms.CommandButton Then
Set myCmd = New clsCommandButton
Set myCmd.cmd = ctl
Set myCmd.frm = Me
colCommandButton.Add myCmd
End If
Next
Set ctl = Nothing
End Sub
Private Sub UserForm_Terminate()
Set myCmd = Nothing
Set colCommandButton = Nothing
End Sub
|
di Costadilevante (utente non iscritto) data: 02/11/2010
Stupendo!!!
e' proprio quello che cercavo. appena torno a casa lo provo.
ps:
l'alveare non è altro che una simulazione del gioco "life", che sto creando a puro scopo didattico ;)
Vuoi Approfondire?