Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Pulsanti per incrementare il valore di una cella.

1,627 views
Skip to first unread message

Alberto Falzoni

unread,
Nov 17, 2016, 12:21:35 PM11/17/16
to
Saluti a tutti.
Io avrei bisogno di un foglio excel per "automatizzare" lo spoglio di un'elezione.
Immaginatevi in a1, a2, a3... a100 una serie di pulsanti di controllo "VOTA" posti accanto all'elenco dei candidati in B1, B2, B3... B100, che premuti dovrebbero incrementare di 1 il risultato delle celle C1, C2, C3... C100 dove ci sono i risultati.

Per non programmare 100 pulsanti avevo pensato a una macro che mi calcolasse in maniera "relativa" il numero della cella da modifcare, in modo che fatto il primo pulsante gli altri li creavo per "trascinamento".

Dunque, creato il pulsante (modulo), gli ho assegnato la seguente macro:

Sub incrementare_di_1()
ActiveCell.Offset(0, 2).Value = ActiveCell.Offset(0, 2).Value + 1
End Sub

Solo che non funziona: anche premendo il pulsante il focus non va sulla cella sottostante al pulsante. E dunque il valore che si incrementa è sempre due celle a destra di qualsiasi ultima cella selezionata sul foglio.

Ho provato anche col diverso pulsante /oggetto-ActiveX sperando di riuscire a gestire l'evento OnClick per dare il focus alla cella sottostante al pulsante, ma comunque non ho idea di come ottenere il risultato.

Qualcuno può aiutarmi? Grazie

casanmaner

unread,
Nov 17, 2016, 12:41:31 PM11/17/16
to

casanmaner

unread,
Nov 17, 2016, 1:07:43 PM11/17/16
to
Scusa ma non ho spiegato cosa fa il file.
Quando selezioni una cella della colonna A compare un pulsante.
Quando clicchi sul pulsante la cella della colonna C viene incrementato di 1
Quando selezioni altre colonne il pulsante viene nascosto.

Alberto Falzoni

unread,
Nov 18, 2016, 9:39:32 AM11/18/16
to
No, è più semplice. i pulsamti sulla colonna A sono li e non devono essere nascosti. e servono solo per dare il voto al nominativo della adiacente casella sulla colonna B aumentando di uno i voti ricevuti nella casella sulla colonna c.
E il problema è che i pulsanti, come li'ho congegnati, vanno ad aumentre il totale non nella relativa casella sulla colonna c, ma nella casella due posti più a destra rispetto alla ultima cella selezionata ovunque sia sul foglio.
Più tardi guardo cosa mi hai mandato. Ti ringrazio.

casanmaner

unread,
Nov 18, 2016, 9:43:41 AM11/18/16
to
E non più "economico" avere un unico pulsante che all'occorrrenza compaia e inserisca il voto in corrispondenza della cella della colonna A selezionata?
:-)
Prova il file e poi decidi se è adeguato ;-)

Alberto Falzoni

unread,
Nov 18, 2016, 10:49:08 AM11/18/16
to
Interessante. Dipende da dove compare il pulsante. Se ad ogni voto devo scorrere verso l'alto e il basso il foglio per selezionare la preferenza e poi andare a beccare il pulsante allora forse conviene stampare una bella griglia e andare di matita e crocette ;-) comunque poi ci guardo, grazie.

Alberto Falzoni

unread,
Nov 18, 2016, 10:56:49 AM11/18/16
to
Potrebbe essere interessante per esempio una serie di istruzioni che mi estraggono dal nome del pulsante (CommandButton1 CommandButton2 ...) il valore numerico dell'ultimo carattere e me lo mettono nella variabile N e poi il pulsante va ad incrementare la casella Range("C" & N)

casanmaner

unread,
Nov 18, 2016, 11:16:18 AM11/18/16
to
Il giorno venerdì 18 novembre 2016 16:56:49 UTC+1, Alberto Falzoni ha scritto:
> Potrebbe essere interessante per esempio una serie di istruzioni che mi estraggono dal nome del pulsante (CommandButton1 CommandButton2 ...) il valore numerico dell'ultimo carattere e me lo mettono nella variabile N e poi il pulsante va ad incrementare la casella Range("C" & N)

Mi sembra una unutile complicazione :-)
Prova sto benedetto file prima :-)

casanmaner

unread,
Nov 18, 2016, 11:32:28 AM11/18/16
to
Volendo una ulteriore alternativa potrebbe anche essere quella, senza utilizzo di pulsanti, di sfruttare l'evento doppio click.
Ad es. in questo file se viene fatto doppio click in una cella della colonna "NOME CANDIDATO" o "VOTI RICEVUTI", se la cella della colonna "NOME CANDIDATO" non risulta vuota il valore della cella affianco viene incrementata di 1 ad ogni doppio click.
https://www.dropbox.com/s/3srbq4ma66wztxj/Voti%20Candidati.xlsm?dl=0

Paolo

unread,
Nov 18, 2016, 3:41:01 PM11/18/16
to


<<Qualcuno può aiutarmi? Grazie

usa questa:


Sub incrementare_di_1()
Dim r As Range
Set r = ActiveSheet.Buttons(Application.Caller).TopLeftCell
Range(Cells(r.Row, r.Column), Cells(r.Row, r.Column)).Select

Alberto Falzoni

unread,
Nov 19, 2016, 7:15:22 AM11/19/16
to
Grazie Paolo, proprio ciò che volevo.

Grazie anche casanmaner, bello soprattutto il tuo secondo foglio che arriva ugualmente allo scopo.

Ci sentiamo.
Alberto F.

Norman Jones

unread,
Nov 20, 2016, 6:26:43 AM11/20/16
to
On 18/11/2016 20.41, Paolo wrote:
> Sub incrementare_di_1()
> Dim r As Range
> Set r = ActiveSheet.Buttons(Application.Caller).TopLeftCell
> Range(Cells(r.Row, r.Column), Cells(r.Row, r.Column)).Select
> ActiveCell.Offset(0, 2).Value = ActiveCell.Offset(0, 2).Value + 1
> End Sub


Forse un po' più semplice e più diretto sarebbe:

'=========>>
Public Sub incrementare_di_1()
Dim r As Range
Set r = ActiveSheet.Buttons(Application.Caller).TopLeftCell
With r.Offset(0, 2)
.Value = .Value + 1
End With
End Sub
'<<=========




===
Regards,
Norman
0 new messages