Domanda.

nome=david
cognome=Antonietti
versione=2000
conosco2=medio
vba=SI
macro=SI
email=david.antonietti@tin.it
chra=601
problema=Complimenti per il sito, veramente ben fatto!
Come posso attivare una cella, ad ogni pressione del tasto INVIO,  che non sia quella sotto?
Es.:
1) cella attiva A1
2) premo il tasto INVIO
3) cella attiva C5
4) inserisco dati
5) premo il tasto INVIO
6) cella attiva B6...
e così di seguito finchè non ho riempito tutta la mia "maschera".

Grazie ancora per lo stupendo lavoro fatto su VBA.

 

Risposta.

senti David, la soluzione che ti invio può risentire di troppe condizioni, se la tua maschera dati è ampia, comunque vedrai tu. Si basa sull'evento Change e non può essere usata con il SelectionChange, provala e capirai perchè. Quindi la routine funziona solo se in una qualsiasi delle celle maschera inserirai o cambierai valori. Sfrutta il metodo Intersect per identificare le celle che subiscono il cambio, e come restituzione dell'azione gli fai selezionare una determinata cella, oppure uscire con End Sub. Questa la routine:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then
GoTo 10
Else
[C5].Select
End If
10
If Intersect(Target, Range("C5")) Is Nothing Then
GoTo 20
Else
[B6].Select
End If
20:
End Sub


saluti, ennius