PDA

View Full Version : Macro in excel: è possibile creare un bottone con doppia funzione (on-off)?


berva
06-10-2007, 13:34
Ciao,
premetto che non so niente di programmazione e sono riuscito a creare una macro con una guida on line

Lavoro in banca, ho un file clienti (in riga) e mi servono dei bottoni per far "apparire e sparire" varie informazioni (in colonna)

Posso registrare le varie macro e assegnarle ai bottoni per es
bottone 1: mostra colonna con l'indirizzo
bottone 2: nascondi colonnna con l'indirizzo
bottone 3: mostra colonna con il telefono
bottone 4: nascondi colonnna con il telefono ecc

MA, vorre sapere se è possibile fare questo:
bottone 1 premuto (cioè schiacciato una volta): mostra colonna con l'indirizzo
bottone 1 rialsciato (cioè schiacciato la seconda volta): nascondi colonnna con l'indirizzo

ecc.

qualcuno mi sa aiutare??:confused:

Grazie:)

zuper
06-10-2007, 14:55
credo si potrebbe fare inserendo una cella nascosa con un valore che ne so ON

alla macro fai fare il check se è ON vuol dire che la colonna è visibile e quindi fai lanciare il comando nascondi e fai modificare il valore in OFF

al contrario se vedi OFF la macro visualizza la colonna e modifica il valore in ON

ora nn ho tempo di provare...cmq visto che ci stai studiano...mi pare un buon esercizio :)

berva
06-10-2007, 15:23
non ci ho capito nulla ma per ora grazie lo stesso ... :D :D

berva
07-10-2007, 14:57
ehm.. non è che mi potresti dire come fare la cella nascosta e come programmare la macro :) ?

nel caso considera che non ho mai aperto il visual basic, ma ho solo registrato un paio di macro con azioni tipo nascondi o mostra colonne...

e poi..altri con altre idee??

guldo76
07-10-2007, 17:00
Se ho capito bene cosa ti serve, non c'è bisogno delle macro.
Puoi utilizzare i comandi di raggruppamento. Menù dati → raggruppa (vado a memoria).
In questo modo potrai nascondere/scoprire le colonne una alla volta, oppure tutte insieme.

MarcoGG
08-10-2007, 12:12
Ciao,
premetto che non so niente di programmazione e sono riuscito a creare una macro con una guida on line

Lavoro in banca, ho un file clienti (in riga) e mi servono dei bottoni per far "apparire e sparire" varie informazioni (in colonna)

Posso registrare le varie macro e assegnarle ai bottoni per es
bottone 1: mostra colonna con l'indirizzo
bottone 2: nascondi colonnna con l'indirizzo
bottone 3: mostra colonna con il telefono
bottone 4: nascondi colonnna con il telefono ecc

MA, vorre sapere se è possibile fare questo:
bottone 1 premuto (cioè schiacciato una volta): mostra colonna con l'indirizzo
bottone 1 rialsciato (cioè schiacciato la seconda volta): nascondi colonnna con l'indirizzo

ecc.

qualcuno mi sa aiutare??:confused:

Grazie:)


Semplice.
Non usare il Command Button.
C'è un controllo VBA apposito per fare quello che vuoi tu, e precisamente il "Toggle Button".
Cercalo nella barra strumenti VBA...

Quando l'hai posizionato sul foglio, per testarne il funzionamento, associa al Click il seguente codice :

Private Sub ToggleButton1_Click()
If ToggleButton1.Value = True Then
MsgBox "PREMUTO"
Else
MsgBox "RILASCIATO"
End If
End Sub

Infine sostituisci ai due "msgbox" le routine desiderate... ;)

berva
08-10-2007, 23:39
ho trovato il "pulsante di comando", l'ho diseganto e poi con il pulsnte destro ho fatto: visualizza codice e ci ho incollato quel testo

... poi?
"Infine sostituisci ai due "msgbox" le routine desiderate"

cosa sono i msg box? nel visual basic c'è un monte ri roba per me arabo

epoi: per routine cosa intendi? le macro? c'è il verso di registrare le azioni o vanno programmate con le linea di comando? (perchè se è così non ci provo nemmeno) :eek:

Grazie cmq!

MarcoGG
09-10-2007, 00:12
1. Excel / Visualizza / Barre Degli Strumenti / Strumenti Di Controllo.

2. Quando la barra "Strumenti Di Controllo" è visibile, scegli il controllo "Interruttore", che non è altro che un pulsante di comando "speciale" ( Interruttore = "ToggleButton" - nome VBA... )
Ne crei uno sul foglio che ti interessa. Ad es.: Foglio1.

3. Se entri in modalità progettazione e fai Doppio-Click sul ToggleButton ti si apre l'editor VBA, no ?
La routine, ossia il codice da far eseguire al Click del ToggleButton sarà diversa a seconda che in quel momento sia premuto o rilasciato :
- ToggleButton1.Value = True significa che lo stato è PREMUTO.
- ToggleButton1.Value = False significa che lo stato è RILASCIATO.

4. Le msgbox sono finestre di messaggio che ho usato per esemplificare... In pratica devi usare questo codice e sostituire solo dove è grassetto, mettendoci le tue macro...
Private Sub ToggleButton1_Click()
If ToggleButton1.Value = True Then
MsgBox "PREMUTO"
Else
MsgBox "RILASCIATO"
End If
End Sub