Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Premendo INVIO spostarsi sulle sole celle utili

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

Premendo INVIO spostarsi sulle sole celle utili

Postdi marte1503 » 18/12/10 11:41

Ciao a tutti!
Ho creato una griglia con intervallo A1:G21
La mia intenzione sarebbe di compilare le celle che mi interessano evitando di passare manualmente alla successiva
Esempio
Compilare B2 poi premendo invio saltare la C2 e passare alla D2
Compilare la D2 e premendo invio saltare alla B3, compilarla, poi con Invio saltare alla D3
Compilare la D3 e premendo invio saltare alla B4, compilarla, poi con Invio saltare alla D4
Eccetera fino ad arrivare all’ultima cella D21.
Si può fare?
Grazie
marte1503
Utente Senior
 
Post: 174
Iscritto il: 08/01/10 20:43
Località: Como

Sponsor
 

Re: Premendo INVIO spostarsi sulle sole celle utili

Postdi CANAPONE » 18/12/10 16:44

Ciao: uso Excel 2000 Xp.

Nel menù strumenti/opzioni nella TaB modifica cerca "Sposta la selezione dopo Invio" e come Direzione: Destra. Conferma con l'OK
Nascondi temporaneamente la colonna C.
Seleziona l'area d'inserimento dati, inserisci e premi invio.
Non conoscendo il Visual Basic, questo potrebbe essere un sistema.

Saluti
---------------
Excel 2004 su Mac
Excel 2010 su Windows 8
CANAPONE
Utente Senior
 
Post: 425
Iscritto il: 22/11/10 15:43
Località: Firenze

Re: Premendo INVIO spostarsi sulle sole celle utili

Postdi Flash30005 » 18/12/10 18:14

Inserirsci questo codice nel Foglio interessato (non nel modulo)

e prova a scrivere i dati

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
CheckAreaB = "B2:B21"
CheckAreaD = "D2:D21"
If Not Application.Intersect(Target, Range(CheckAreaB)) Is Nothing Then
            ActiveCell.Offset(-1, 2).Select
           
End If
If Not Application.Intersect(Target, Range(CheckAreaD)) Is Nothing Then
            ActiveCell.Offset(0, -2).Select
End If
End Sub


Fai sapere
Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Premendo INVIO spostarsi sulle sole celle utili

Postdi marte1503 » 20/12/10 23:06

Ciao Canapone, ho usato la macro di Flash ma voglio comunque ringraziarti per la risposta.
Spero che la macro in questione, riadattandola possa essere utile anche te.

Ciao Flash,
grazie per l’attenzione e per avermi risolto il problema.
La macro che mi hai preparato velocizza l’inserimento dei dati nel foglio proprio come volevo.
Ho solo dovuto modificare un paio di cose per poterla utilizzare, infatti dopo la compilazione della cella B2 e la pressione di INVIO, la cella attiva diventava D1 e non D2 poi non avanzava più.
Con qualche prova sono arrivato a questo codice:
Private Sub Worksheet_Change(ByVal Target As Range)
CheckAreaB = "B2:B21"
CheckAreaD = "D2:D21"
If Not Application.Intersect(Target, Range(CheckAreaB)) Is Nothing Then
ActiveCell.Offset(0, 2).Select _________ AL POSTO DI (-1, 2)

End If
If Not Application.Intersect(Target, Range(CheckAreaD)) Is Nothing Then
ActiveCell.Offset(1, -2).Select__________AL POSTO DI (0, -2)
End If
End Sub
Grazie 1000 e alla prossima!
Paolo
marte1503
Utente Senior
 
Post: 174
Iscritto il: 08/01/10 20:43
Località: Como

Re: Premendo INVIO spostarsi sulle sole celle utili

Postdi ricky53 » 21/12/10 00:19

Ciao,
attenzione la macro di Flash funziona perfettamente infatti dopo "B2" va in "D2", B2 in D3, ecc.

Le modifiche cha hai fatto portano a questa sequenza
B2 - D3
B5 - D6
B8 - D9

CONTROLLA BENE !!!
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Premendo INVIO spostarsi sulle sole celle utili

Postdi Flash30005 » 21/12/10 13:51

Si infatti funziona se non sono state modificate le opzioni originali in excel che prevedono la selezione della cella successiva (riga inferiore) della cella appena digitata.

Se le opzioni sono state modificate (vedi post precedenti) allora il cursore si posiziona in una cella diversa da quella "prevista" da me.

Se Marte1503 ripristina l'azione originale dell'invio (che consiglio di fare) potrà utilizzare la macro postata

Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Premendo INVIO spostarsi sulle sole celle utili

Postdi marte1503 » 21/12/10 20:29

Ciao Ricky, ciao Flash.

Sì, ho modificato le impostazioni in modo che dopo l'INVIO la cella attiva rimanga la medesima dell'inserimento del dato.

Mi sono abituato così e trovo che sia comodo (preferirei continuare con questa soluzione.) Le conseguenze di questa scelta portano soltanto a problemi in caso di spostamenti di cella come quello che vi ho chiesto, o parlando di macro potrei incappare in disguidi d'altro genere?

Vi ringrazio per l'attenzione.
marte1503
Utente Senior
 
Post: 174
Iscritto il: 08/01/10 20:43
Località: Como

Re: Premendo INVIO spostarsi sulle sole celle utili

Postdi Anthony47 » 21/12/10 23:31

Ma la cosa piu' prudente e' non usare ActiveCell.Offset(etc etc) ma Target.Offset(etc etc); "Target" infatti e' chiaro chi e' (la cella modificata), ActiveCell dipende dalle impostazioni di excel, quindi imprevedibili da pc a pc.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Premendo INVIO spostarsi sulle sole celle utili

Postdi Flash30005 » 22/12/10 02:08

Ottimo il consiglio di Anthony infatti anche cambiando le impostazioni dello spostamento (Giù, Destra, etc)
la macro attiverà la cella voluta
ma bisogna modificare i valori riga dell'offset della macro precedente
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
CheckAreaB = "B2:B21"
CheckAreaD = "D2:D21"
If Not Application.Intersect(Target, Range(CheckAreaB)) Is Nothing Then
            Target.Offset(0, 2).Select
           
End If
If Not Application.Intersect(Target, Range(CheckAreaD)) Is Nothing Then
            Target.Offset(1, -2).Select
End If
End Sub


Ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Premendo INVIO spostarsi sulle sole celle utili

Postdi marte1503 » 22/12/10 22:34

Grazie Antony, grazie Flash! ;)
marte1503
Utente Senior
 
Post: 174
Iscritto il: 08/01/10 20:43
Località: Como


Torna a Applicazioni Office Windows


Topic correlati a "Premendo INVIO spostarsi sulle sole celle utili":


Chi c’è in linea

Visitano il forum: patel e 14 ospiti