Condividi:        

[Excel] Incremento di una cella

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] Incremento di una cella

Postdi Neffa » 03/12/07 15:50

Salve, ringrazio in anticipo per l'aiuto...

Allora ho una pagina excell che funziona per gli scout del volley, in pratica l'utilizzo che ne viene fatto è aggiornare manualmente in tempo reale un numero in una cella (per chi non ha pratica, di pallavolo è tipo: quante ricezioni perfette vengono fatte... quante buone... quante normali ecc...).
Es.
A1=2
B1=0
C1=1
D1=3

La mia domanda è se non volessi che la modifica non sia manuale (cioè cambiare tipo da A1=2 a A1=3) come posso fare?
Ho provato con un sistema di pulsantini nelle celle associati alle macro corrispondenti, cioè l'incremento della cella è sempre unguale a 1 quindi quando premo sul pulsante la cella mi aumenta di 1 e funziona bene, ma avendo circa 2500, celle dovrei creare 2500 pulsantini con 2500 macro associate, e verrebbe una cosa lunghina, inoltre mi piacerebbe sapere se l'associazione di pulsanti alle macro possa essere più complessa (es. ctrl+a1 invece del classica lettera solitaria).
Ci sono metodi più semplici per incementare una cella di un'unità?
Alle macro si possono associare pulsanti complessi?
Oppure si può moltiplicare una macro così semplice 2500 con le modifiche a riferimento delle celle automatiche?

Grazie.
Neffa
Newbie
 
Post: 4
Iscritto il: 03/12/07 15:24

Sponsor
 

Postdi Anthony47 » 03/12/07 22:19

Ciao Neffa e benvenuto nel forum.
Ti do alcune soluzioni tecniche, anche se non so quanto sono applicabili a una situazione rapida quale quella del gioco.

1° ipotesi:
a)imposti excel per calcolo “manuale”: Menu /Strumenti /Opzioni; tab Calcolo, e spunti Manuale.
b)in una cella qualsiasi scrivi la formula
Codice: Seleziona tutto
=ADESSO()

c)fai tasto dx sul tab del nome foglio e scegli Visualizza codice; ti si apre il vba editor
d)copi il seguente codice nel frame bianco di dx:
Codice: Seleziona tutto
Private Sub Worksheet_Calculate()
On Error Resume Next
ActiveCell.Value = ActiveCell.Value + 1
End Sub


Torni sul foglio excel, selezioni una cella e premi F9; ad ogni F9 il valore della cella selezionata, qualsiasi essa sia, via incrementata di 1; per un minimo di sicurezza, se la cella contiene una stringa essa rimane invariata.

2° ipotesi:
Senza a e b dell’ ipotesi precedente, esegui gli step c e d e metti la seguente macro:
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
ActiveCell.Value = ActiveCell.Value + 1
End Sub


L’ incremento avviene solo selezionando la cella.
Puo’ essere utile, per la gestione manuale di eventuali errori di selezione:
-Menu /Strumenti /Opzioni; tab Modifica, togli la spunta alla casella “Sposta la selezione dopo Invio”; chiudi con Ok. In questo modo, in caso di errore di selezione cella (e quindi di incremento) puoi ripristinare manualmente un valore corrispondente all’ attuale -2, che ripristina il valore prima dell’ incremento.
Questo rimedia anche a una debolezza della soluzione, cioe’ un eventuale doppio incremento della stessa cella (non so se e’ richiesta nell’ applicazione), che puo’ essere fatto il primo con la selezione cella e il secondo col semplice Invio.

3° ipotesi
Come 2° ma con questa macro:
Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
ActiveCell.Value = ActiveCell.Value + 1
Cancel = True
End Sub


Oppure questa:
Codice: Seleziona tutto
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
On Error Resume Next
ActiveCell.Value = ActiveCell.Value + 1
Cancel = True
End Sub


Esse incrementano la cella su cui fai doppioclick oppure rightclick.
Anche qui puoi toglere la spunta alla casella “Sposta la selezione dopo Invio”, per poter recuperare a mano un errore di battitura.

Ricorda che quando provi le varie soluzioni e’ opportuno cancellare la macro degli esempi precedenti, altrimenti gli effetti si sommano, con risultati psichedelici.

Facci sapere, ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Neffa » 11/12/07 16:02

Innanzitutto grazie Anthony47 per le soluzioni sono tutte piuttosto buone per il mio problema... sopratutto la 2° e la 3°. Mi rimane però un problema... A fine colonna i valori devono essere sommati e togliendo il calcolo automatico non esegue più la somma. Come posso fare?

Grazie moltissime.
Neffa
Newbie
 
Post: 4
Iscritto il: 03/12/07 15:24

Postdi Anthony47 » 11/12/07 19:35

Veramente le ipotesi 2 e 3 non richiedono il calcolo manuale...
Ho cercato di spiegarlo quando, a proposito dell’ ipotesi 2 dicevo “Senza a e b dell’ ipotesi precedente, esegui gli step c e d e metti la seguente macro: etc etc”

Quindi rimetti tranquillamente Calcolo su Automatico.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Neffa » 17/12/07 15:56

Ti ringrazio tantissimo era proprio quello che mi serviva...
In aggiuta se volessi che il sistema fosse automatizzato tramite combinazione di tasti (sulla tastiera ovviamente). Ti spiego funziona così sulla riga ho il nome del giocatore, in colonna ho 5 fondamentali (muro, battuta, ricezione, attacco e contrattacco), ognuno dei 5 fondamentali ha 5 celle in cui viene incrementato il voto(++,+,/,-,--). es. pratico:

Muro ricezione ecc...
++ + / - -- ++ + / - --
Luigi 5 1 2 0 2 2 1 0 0 3
Mario 2 0 3 0 2 4 3 0 0 1

Vorrei sapere se ad esempio si potesse fare una cosa del tipo: F1(giocatore Mario)+1(fondamentale muro)+A(voto ++) così da poter incrementare automaticamente tramite combinazione di tasti la cella portando il valore da 5 a 6, cioè incrementandolo di uno.
Ti ringrazio per la tua enorme disponibilità.

Ciao.
Neffa
Newbie
 
Post: 4
Iscritto il: 03/12/07 15:24

Postdi Neffa » 19/12/07 14:42

Neffa ha scritto:Ti ringrazio tantissimo era proprio quello che mi serviva...
In aggiuta se volessi che il sistema fosse automatizzato tramite combinazione di tasti (sulla tastiera ovviamente). Ti spiego funziona così sulla riga ho il nome del giocatore, in colonna ho 5 fondamentali (muro, battuta, ricezione, attacco e contrattacco), ognuno dei 5 fondamentali ha 5 celle in cui viene incrementato il voto(++,+,/,-,--). es. pratico:

Muro ricezione ecc...
++ + / - -- ++ + / - --
Luigi 5 1 2 0 2 2 1 0 0 3
Mario 2 0 3 0 2 4 3 0 0 1

Vorrei sapere se ad esempio si potesse fare una cosa del tipo: F1(giocatore Mario)+1(fondamentale muro)+A(voto ++) così da poter incrementare automaticamente tramite combinazione di tasti la cella portando il valore da 5 a 6, cioè incrementandolo di uno.
Ti ringrazio per la tua enorme disponibilità.

Ciao.




-----------Muro---------------ricezione----------ecc...
_____++__+_ /_-_--____++_+__/_-__--

Luigi__5___1_2_0_2_____2__1__0_0__3

Luigi__4___3_0_1_2_____4__2__1_0__1

Forse così è più chiaro.
Neffa
Newbie
 
Post: 4
Iscritto il: 03/12/07 15:24

Postdi Anthony47 » 20/12/07 14:32

Immaginavo che ci fosse bisogno di una qualche forma di automazione, che le soluzioni date non contengono...
Quello che devi fare e’ abbastanza complesso; io lo imposterei con una cella in cui si digita una sequenza particolare di tasti: un tasto della prima fila, diverso per ogni giocatore; un tasto della seconda fila, diverso per ogni fondamentale; un tasto della terza fila diverso per il voto. Poi una macro di tipo Worksheet_Calculate trasforma questa stringa in azioni da fare sulla struttura dati.
La struttura dati e la struttura della macro si condizionano e si aiutano a vicenda, quindi andrebbero impostate in modo coordinato.

Prova a impostare con queste indicazioni e poi fatti sentire.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19438
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Incremento di una cella":


Chi c’è in linea

Visitano il forum: Nessuno e 71 ospiti