› Sviluppare funzionalita su Microsoft Office con VBA › Copiare nome pulsante in una variabile
-
AutoreArticoli
-
Salve,
Creo due pulsanti, uno modulo e uno activeX e di entrambi vorrei cambiare il nome e inserirlo in una variabile.Per il pulsante Activex con l'uso di proprietà riesco a fare le modifiche di nome e testo ma non a prelevarne il nome. Per l'altro da controlli modulo riesco a copiarne il nome ma non a modificarlo. Le domande quindi sono: come prelevare il nome modificato del pulsante ActiveX per inserirlo in una variabile e come modificare il nome del pulsante moduli? Grazie. Esempi:
' Per il pulsante ActiveX chiamato Pluto attraverso Proprietà ma che però ' non funziona Private Sub Pluto_Click() Call visu End Sub Sub visu() nome = Application.Caller MsgBox nome End Subcome prelevare il nome modificato del pulsante ActiveX per inserirlo in una variabile
Il pulsante ActiveX espone la proprietà .Name:
msgbox pluto.NameDel pulsante controllo modulo puoi modificare il nome selezionando il controllo e scrivendo il suo nome come se fosse un range nella casella di testo delle coordinate in alto a sinistra (quella dove se sposti il cursore compare l'indirizzo di cella o, se sei su una cella con nome, compare il nome del range). Poi Application.Caller funziona come previsto. Allego file di prova.
Allegati:
You must be logged in to view attached files.Ciao vecchio frac, oltre a ringraziarti ancora per le risposta approfitto per chiedere se il nome del bottone activex e quello di controllo modulo possono essere inseriti ciascuno in una rispettiva variabile stringa e se sì come, grazie ancora.
Bè, sì: le due proprietà sono di tipo stringa quindi ti basta creare (DIMensionare) una variabile di tipo String a inizio codice e quindi assegnarvi il valore che ti serve. Poi puoi chiamare questo valore riferendoti alla variabile creata.
Per restare nel banale file di test visto sopra la modifica al codice è questa
Private Sub btnActiveX_Click() Dim s As String s = btnActiveX.Name MsgBox "Ciao sono il pulsante ActiveX di nome " & s End Sub Sub myname() Dim s As String s = Application.Caller MsgBox "Ciao sono il controllo modulo di nome " & s End SubLa prima sub funzionerà per il controllo ActiveX, la seconda per il controllo modulo.
-
AutoreArticoli
