Spostarsi tra le celle



  • Spostarsi tra le celle
    di Sandro (utente non iscritto) data: 24/10/2015 15:20:03

    Il mio problema è questo. Ho un foglio Excel, devo inserire i dati in alcune celle. Inizio con la cella A3, poi devo passare a F3, poi a C6, poi a F9, e così via. E' possibile che dopo ciascun inserimento il cursore vada a posizionarsi direttamente nella cella successiva (in pratica, dopo che ho inserito il dati in A3 il cursore si sposti automaticamente in F3)?. Attualmente sono costretto a usare il tast TAB, che però si sposta solo di lato e non anche sotto, oppure i tasti freccia oppure a spostarmi direttamente con il mouse...



  • di alfrimpa data: 24/10/2015 15:45:32

    Ciao Sandro

    Potresti provare con la macro qui sotto che va inserita nel modulo del foglio interessato.

    Mi sono limitato all'esempio da te fatto cioè alle sole celle A3, F3, C6 ed F9; ovviamente si possono inserire tutte le celle che vuoi della maschera inserimento dati.

    Fai sapere come va.

    Alfredo
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("a1:f20")) Is Nothing Then
        Select Case Target.Address
            Case Is = "$A$3"
                Range("F3").Select
            Case Is = "$F$3"
                Range("C6").Select
            Case Is = "$C$6"
                Range("F9").Select
        End Select
    End If
    End Sub
    
    






  • di sandro (utente non iscritto) data: 24/10/2015 15:53:50

    Grazie. Provo la tua macro; intanto ho sperimentato un altro metodo, che pure mi sembra funzioni, agendo sul formato cella e sulla protezione foglio. Grazie di tutto



  • di alfrimpa data: 24/10/2015 17:43:17

    Ciao Sandro

    Puoi dirmi come hai fatto agendo sul formato cella e sulla protezione foglio?

    Grazie

    Alfredo





  • di cromagno data: 24/10/2015 18:08:53

    Ciao Alfredo,
    credo che si riferisca alla "peculiarità" della tabulazione...
    Cioè, la tabulazione avviene solo sulle celle non bloccate (senza protezione).
    Quindi, se tu selezioni ad esempio tre celle (A1, B5, C10) e da formato celle,alla scheda protezione, disattivi la voce "Bloccata" e poi proteggi il foglio, vedrai che la tabulazione avviene solo tra le celle senza protezione.



  • di alfrimpa data: 24/10/2015 18:15:40

    Si Tore.

    Poiché Sandro aveva detto: " Attualmente sono costretto a usare il tasto TAB....." ho presupposto che lui non volesse farlo per cui avevo pensato alla macro che ho suggerito.

    Alfredo





  • di Sandro (utente non iscritto) data: 25/10/2015 11:27:45

    Si, in effetti agendo sulla protezione del foglio e sulle celle bloccate, dopo avere inserito il dato in una cella, poniano A3, con il tast TAB il cursore si sposta direttamente sulla cella successiva nella quale deve essere inserito un altro dato, poniamo la F3. La macro suggerita da Alfredo, che ringrazio, non riesco invece a farla funzionare: l'ho inserita nel modulo del foglio, ma non riesco a comprendere come e quando la devo lanciare. Da quello che intuisco, devo prima attivare la macro, poi inserire il testo in A3; fatto questo, dando INVIO, il cursore si dovrebbe spostare in F3. In pratica, anzicchè il tasto TAB mi sposto nella cella successiva con il testo INVIO. Ho provato, ma non riesco...



  • di alfrimpa data: 25/10/2015 16:21:55

    Ciao Sandro

    Ti allego file con la macro inserita.

    Comunque ti do qualche indicazione.

    Le macro si possono lanciare in vari modi; quello che a noi interessa in questo caso è eseguire la macro al verificarsi di un determinato evento su un oggetto di Excel.

    Nello specifico il codice viene eseguito quando si verifica una variazione "fisica" del foglio di lavoro.

    Questi tipi di macro hanno dei nomi predeterminati (e non possono chiamarsi come vogliamo) e tali nomi sono costituiti a sinistra dal nome dell'oggetto ed a destra dal nome dell'evento.

    Quindi se si scrive Worksheet_Change la macro partirà nel momento in cui si verifica una variazione del foglio di lavoro (o in una sua parte).

    Per inserire tali macro devi:

    1) Aprire l'editor di VBA
    2) In alto a sinistra (nella finestra di progetto) fai doppio clic sul nome del foglio che ti interessa
    3) Nella finestra a destra vedrai due tendine; in quella a sinistra scegli Worksheet ed in quella a destra Change. Ti appariranno le seguenti diciture:

    Private Sub Worksheet_Change(ByVal Target As Range)

    End Sub

    4) All'interno di queste due diciture va copiato il codice che va eseguito al verificarsi di una modifica del foglio.

    Spero di essere stato chiaro.

    Alfredo

     
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("a1:f20")) Is Nothing Then
        Select Case Target.Address
            Case Is = "$A$3"
                Range("F3").Select
            Case Is = "$F$3"
                Range("C6").Select
            Case Is = "$C$6"
                Range("F9").Select
            Case Is = "$F$9"
                Range("a3").Select
        End Select
    End If
    End Sub
    






  • di Sandro (utente non iscritto) data: 26/10/2015 21:09:32

    Grazie Alfredo!! Mi sembra che ora vada bene...