Discussione:
incremento e decremento valore di una cella
(troppo vecchio per rispondere)
Final Job
2016-11-08 15:37:39 UTC
Permalink
Buongiorno a tutti.

Colonna BK
Dati dalla riga 6

SE la cella BK2 è smarcata, vorrei far in modo di incrementare i valori
presenti nelle celle (sempre della colonna BK) cliccando il pulsante
destro del mouse o decrementarli cliccando il pulsante sinistro.

Avete un'idea?
Grazie
Ale
casanmaner
2016-11-08 16:49:22 UTC
Permalink
Post by Final Job
Buongiorno a tutti.
Colonna BK
Dati dalla riga 6
SE la cella BK2 è smarcata, vorrei far in modo di incrementare i valori
presenti nelle celle (sempre della colonna BK) cliccando il pulsante
destro del mouse o decrementarli cliccando il pulsante sinistro.
Avete un'idea?
Grazie
Ale
Mi sa che per il sinistro non rimaga che il doppio click
Final Job
2016-11-08 18:21:22 UTC
Permalink
Post by casanmaner
Post by Final Job
Buongiorno a tutti.
Colonna BK
Dati dalla riga 6
SE la cella BK2 è smarcata, vorrei far in modo di incrementare i valori
presenti nelle celle (sempre della colonna BK) cliccando il pulsante
destro del mouse o decrementarli cliccando il pulsante sinistro.
Avete un'idea?
Grazie
Ale
Mi sa che per il sinistro non rimaga che il doppio click
mi sa che è meglio di nulla
grazie Casanmaner
Buona serata
Ale
casanmaner
2016-11-08 19:18:29 UTC
Permalink
Post by Final Job
Post by casanmaner
Post by Final Job
Buongiorno a tutti.
Colonna BK
Dati dalla riga 6
SE la cella BK2 è smarcata, vorrei far in modo di incrementare i valori
presenti nelle celle (sempre della colonna BK) cliccando il pulsante
destro del mouse o decrementarli cliccando il pulsante sinistro.
Avete un'idea?
Grazie
Ale
Mi sa che per il sinistro non rimaga che il doppio click
mi sa che è meglio di nulla
grazie Casanmaner
Buona serata
Ale
Nel foglio di interesse prova ad inserire questo codice:
'---
Option Explicit

Const iRigaControllo As Long = 2
Const iPrimaRigaDati As Long = 6
Const sColDati As String = "BK"
Dim IndexColDati As String


Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Me.Range(sColDati & iRigaControllo) = "" Then
IndexColDati = Me.Columns(sColDati).Column
If ActiveCell.Column = IndexColDati Then
If ActiveCell.Row >= iPrimaRigaDati Then
ActiveCell.Value = ActiveCell.Value - 1
Cancel = True
End If
End If
End If
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Me.Range(sColDati & iRigaControllo) = "" Then
IndexColDati = Me.Columns(sColDati).Column
If ActiveCell.Column = IndexColDati Then
If ActiveCell.Row >= iPrimaRigaDati Then
ActiveCell.Value = ActiveCell.Value + 1
Cancel = True
End If
End If
End If
End Sub
'---
casanmaner
2016-11-08 19:55:50 UTC
Permalink
Post by Final Job
Buongiorno a tutti.
Colonna BK
Dati dalla riga 6
SE la cella BK2 è smarcata, vorrei far in modo di incrementare i valori
presenti nelle celle (sempre della colonna BK) cliccando il pulsante
destro del mouse o decrementarli cliccando il pulsante sinistro.
Avete un'idea?
Grazie
Ale
Ed eventualmente uno SpinButton che compare solo quando selelzioni una cella di quella colonna e sempre che la cella BK2 sia "smarcata" (che immagino tu intenda vuota)?
Final Job
2016-11-09 16:19:00 UTC
Permalink
Grazie Casanmaner
Funziona e può bastare anche così.

Per quanto riguarda la soluzione spin button ho visto qualcosa online ma
prevede la costruzione di due pulsanti fissi mentre tu intendi la
possibilità di fare uscire i comandi a fianco della cella di competenza
quando la BK2 è smarcata vero ? Confermo che la BK2 è solitamente vuota
(in questo modo non si attiva il codice a protezione del contenuto delle
celle interessate).

Buona serata
Ale
Post by casanmaner
Post by Final Job
Buongiorno a tutti.
Colonna BK
Dati dalla riga 6
SE la cella BK2 è smarcata, vorrei far in modo di incrementare i valori
presenti nelle celle (sempre della colonna BK) cliccando il pulsante
destro del mouse o decrementarli cliccando il pulsante sinistro.
Avete un'idea?
Grazie
Ale
Ed eventualmente uno SpinButton che compare solo quando selelzioni una cella di quella colonna
e sempre che la cella BK2 sia "smarcata" (che immagino tu intenda vuota)?
casanmaner
2016-11-09 16:49:27 UTC
Permalink
Post by Final Job
Grazie Casanmaner
Funziona e può bastare anche così.
Per quanto riguarda la soluzione spin button ho visto qualcosa online ma
prevede la costruzione di due pulsanti fissi mentre tu intendi la
possibilità di fare uscire i comandi a fianco della cella di competenza
quando la BK2 è smarcata vero ? Confermo che la BK2 è solitamente vuota
(in questo modo non si attiva il codice a protezione del contenuto delle
celle interessate).
Buona serata
Ale
Sì, intendo qualcosa del genere dove ho inserito un comando activex spinbutton che compare e scompare a seconda se la BK2 è vuota o meno quando selezioni una cella della colonna BK dalla riga 6 (o altra impostata in VBA).
Prova a vedere questo file di esempio:
https://www.dropbox.com/s/r8klrdblxkwnjih/EsempioSpinButton.xlsm?dl=0
Final Job
2016-11-09 20:50:16 UTC
Permalink
Questi i risultati:

Il codice "spin button" lavora bene con Excel 2010 ma non con la
versione 2003. Non ho capito se sbaglio io qualcosa.

Peraltro, il Codice "spin button" risolve una situazione anomala del
precedente (pur valido) codice il quale, nel decrementare un valore
passando per lo zero (verso un numero negativo, quindi), si blocca.

Grazie per gli insegnamenti caro Casanmaner
Ale
Post by casanmaner
Post by Final Job
Grazie Casanmaner
Funziona e può bastare anche così.
Per quanto riguarda la soluzione spin button ho visto qualcosa online ma
prevede la costruzione di due pulsanti fissi mentre tu intendi la
possibilità di fare uscire i comandi a fianco della cella di competenza
quando la BK2 è smarcata vero ? Confermo che la BK2 è solitamente vuota
(in questo modo non si attiva il codice a protezione del contenuto delle
celle interessate).
Buona serata
Ale
Sì, intendo qualcosa del genere dove ho inserito un comando activex spinbutton che compare
e scompare a seconda se la BK2 è vuota o meno quando selezioni una
cella della colonna BK dalla riga 6 (o altra impostata in VBA).
https://www.dropbox.com/s/r8klrdblxkwnjih/EsempioSpinButton.xlsm?dl=0
casanmaner
2016-11-10 06:20:30 UTC
Permalink
.... del
precedente (pur valido) codice il quale, nel decrementare un valore
passando per lo zero (verso un numero negativo, quindi), si blocca.
Provandolo mi passa da 0 a -1 e viceversa senza alcun blocco.
Final Job
2016-11-10 13:58:53 UTC
Permalink
La prima soluzione, come già detto, è pienamente soddisfacente, risolve
l'esigenza e, ai fini della domanda, può bastare così. Solo
accademicamente, quindi, ti riporto che:

- l'anomalia della sub che si blocca avviene solo quando il doppio click
(per decrementare) viene applicato in una cella che non presenta valori
(vuota). Ma siccome di celle vuote sulle quali operare non ce ne sono
poi così tante, questa cosa non rappresenta un grosso problema ai miei fini.

- potrebbe essere comodo, invece, fare in modo che si possa agire con un
doppio click sia in un verso che nell'altro perchè vedo che la
differenza di intervento (1 click a dx e 2 a sx) genera confusione.
Qundi la domanda è:
l'istruzione BeforeRightClick può essere condizionata a 2 click?

- La sub
ImpostaSpinButton()
lavora benissimo sulla versione 2010 ma se implementata nella versione
2003 mi si blocca a questa istruzione:
With SpinButton1
con "variabile non definita"

Cosa può generare questa differenza di risposta nelle due versioni (a
parte i miei errori)?

Grazie
Ale
Post by casanmaner
.... del
precedente (pur valido) codice il quale, nel decrementare un valore
passando per lo zero (verso un numero negativo, quindi), si blocca.
Provandolo mi passa da 0 a -1 e viceversa senza alcun blocco.
casanmaner
2016-11-10 19:12:20 UTC
Permalink
Post by Final Job
La prima soluzione, come già detto, è pienamente soddisfacente, risolve
l'esigenza e, ai fini della domanda, può bastare così. Solo
- l'anomalia della sub che si blocca avviene solo quando il doppio click
(per decrementare) viene applicato in una cella che non presenta valori
(vuota). Ma siccome di celle vuote sulle quali operare non ce ne sono
poi così tante, questa cosa non rappresenta un grosso problema ai miei fini.
Mah? ... io non riesco a replicare questo problema.
Se seleziono una cella vuota e faccio doppio click inserisce -1
Post by Final Job
- potrebbe essere comodo, invece, fare in modo che si possa agire con un
doppio click sia in un verso che nell'altro perchè vedo che la
differenza di intervento (1 click a dx e 2 a sx) genera confusione.
l'istruzione BeforeRightClick può essere condizionata a 2 click?
Purtroppo credo di no.
Ho provato ad impostare un comando che condizioni la modifica ad una variabile booleana ma l'effetto è proprio sgradevole.
Il fatto è che un "doppio click" veloce non viene letto. Occorre sempre un certo ritardo tra un click destro e un altro perché venga eseguito il codice.
Post by Final Job
- La sub
ImpostaSpinButton()
lavora benissimo sulla versione 2010 ma se implementata nella versione
With SpinButton1
con "variabile non definita"
Cosa può generare questa differenza di risposta nelle due versioni (a
parte i miei errori)?
Il fatto che l'activex è stato creato con una versione precedente e non nativa 2003. Prova a vedere questo file creato con Excel2003 a cui ho aggiunto il comando SplitButton e copiato il codice precedente (per comodità ho impostato la colonna B per i test).

https://www.dropbox.com/s/j56wxbqnzraehzb/EsempioSpinButtonNativoExcel2003.xls?dl=0
casanmaner
2016-11-10 19:19:00 UTC
Permalink
Per curiosità prova anche questo file creato tramite Excel 2007 ma salvato direttamente in formato Excel97-2003 a cui ho poi aggiunto il controllo spinbutton (e copiato il codice in foglio1)
https://www.dropbox.com/s/o7kd9jwx1t74hd6/TestSpinButtonConSalvataggio2003da2007.xls?dl=0
Final Job
2016-11-10 23:05:14 UTC
Permalink
No, su 2003 non va. Quando seleziono una cella della colonna BK mi da
errore:

Impossibile creare il controllo 'SpinButton1'. Non è pertanto possibile
uscire dalla modalità progettazione.

ActiveX ... potrebbe essere. Da qualche parte è uscito fuori

Ciao e sempre grazie
Ale
Post by casanmaner
Per curiosità prova anche questo file creato tramite Excel 2007 ma salvato direttamente
in formato Excel97-2003 a cui ho poi aggiunto il controllo spinbutton (e copiato il codice in foglio1)
https://www.dropbox.com/s/o7kd9jwx1t74hd6/TestSpinButtonConSalvataggio2003da2007.xls?dl=0
casanmaner
2016-11-11 09:12:34 UTC
Permalink
Post by Final Job
No, su 2003 non va. Quando seleziono una cella della colonna BK mi da
Impossibile creare il controllo 'SpinButton1'. Non è pertanto possibile
uscire dalla modalità progettazione.
ActiveX ... potrebbe essere. Da qualche parte è uscito fuori
Ciao e sempre grazie
Ale
Post by casanmaner
Per curiosità prova anche questo file creato tramite Excel 2007 ma salvato direttamente
in formato Excel97-2003 a cui ho poi aggiunto il controllo spinbutton (e copiato il codice in foglio1)
https://www.dropbox.com/s/o7kd9jwx1t74hd6/TestSpinButtonConSalvataggio2003da2007.xls?dl=0
Invece il primo, quello creato direttamente da Excel2003, funziona senza errori?
Final Job
2016-11-11 12:16:12 UTC
Permalink
Si, Casanmaner, ma non è un problema. Può bastare così. Grazie
Ale
Post by casanmaner
Post by Final Job
No, su 2003 non va. Quando seleziono una cella della colonna BK mi da
Impossibile creare il controllo 'SpinButton1'. Non è pertanto possibile
uscire dalla modalità progettazione.
ActiveX ... potrebbe essere. Da qualche parte è uscito fuori
Ciao e sempre grazie
Ale
Post by casanmaner
Per curiosità prova anche questo file creato tramite Excel 2007 ma salvato direttamente
in formato Excel97-2003 a cui ho poi aggiunto il controllo spinbutton (e copiato il codice in foglio1)
https://www.dropbox.com/s/o7kd9jwx1t74hd6/TestSpinButtonConSalvataggio2003da2007.xls?dl=0
Invece il primo, quello creato direttamente da Excel2003, funziona senza errori?
Continua a leggere su narkive:
Risultati di ricerca per 'incremento e decremento valore di una cella' (Domande e Risposte)
3
risposte
Vorrei sapere una cosa sullo stack e stack pointer... Chi mi aiuta?
iniziato 2013-02-11 09:17:57 UTC
programmazione e design
Loading...