PASSA A RIGA SUCCESSIVA



  • PASSA A RIGA SUCCESSIVA
    di GIGI (utente non iscritto) data: 08/11/2014 14:19:31

    Salve a tutti,
    sto inserendo dei dati in un foglio Excel. Ho 14 colonne e 2000 righe (devo inserire i dati di 2000 questionari, ogni riga è un questionario e ogni colonna è una risposta). Scrivo la risposta (1;2;3;4;5) nella cella e per proseguire mi sposto con la freccia destra. Vorrei sapere se esiste una funzione che, quando compilo l'ultima cella della riga (e dunque arrivo alla 14esima colonna), mi faccia passare automaticamente il cursore alla prima cella della riga successiva. In pratica vorrei sapere se esiste tipo una cosa del genere: SE N2 [14esima colonna del primo rigo]=(1) o (2) o (3) o (4) o (5) [che sono le sole cinque risposte possibili] ALLORA VAI A A3 [prima cella del rigo successivo] e così per tutte le righe.

    Ho una conoscenza molto basilare di Excel, diciamo pure che sono una schiappa! Spero di essermi spiegato bene, ho fatto del mio meglio per essere sintetico e comprensibile, spero che qualcuno possa aiutarmi perché i dati da inserire sono moltissimi e questo accorgimento potrebbe rendermi la cosa molto più semplice!




  • di Lucas87 data: 08/11/2014 15:31:34

    Ciao
    Prova il codice
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 14 Then
        For Each ce In Range("a" & Target.Row & ":n" & Target.Row & "")
            If IsNumeric(ce) And ce < 1 Or ce > 5 Then
                MsgBox "Riga non conforme."
                ce.Select
                Exit Sub
            End If
        Next
        Cells(Target.Row + 1, 1).Select
    End If
    End Sub
    



  • di GIGI (utente non iscritto) data: 08/11/2014 17:17:27

    innanzitutto volevo ringraziarti per la risposta Lucas87, ma vorrei sapere dove devo incollare il codice? considera che al momento sto utilizzando una versione excel starter 2010



  • di Lucas87 data: 08/11/2014 18:00:41

    Dal tuo foglio clicchi con il dx sulla linguetta con il nome in basso a sx e selezioni "Visualizza codice"
    Si apre una finestra (l'editor VBA). Li incolli il codice.
    Nel momento in cui viene scritta la cella sulla colonna N (14) viene verificato che le celle sulla stessa riga siano state compilate correttamente con valori tra 1 e 5. In caso positivo viene selezionata la cella in colonna A sulla riga successiva, altrimenti viene selezionata la cella con il valore sbagliato



  • di scossa data: 08/11/2014 19:09:41

    Una soluzione senza codice:

    Via nelle Opzioni di Excel -> "Impostazioni avanzate" -> "Opzioni di modifica" -> "dopo la pressione di Invio, sposta la selezione": metti "A destra"

    Poi seleziona le celle che devi compilare (B1:N2000 ??) e inserisci i valori confermandoli con Invio: inserito il valore in B1 la selezione passerà a C1 ...., arrivato alla cella N1 andrà automaticamente a B2 ...... e così via.


    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno.
    Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)



  • di GIGI (utente non iscritto) data: 10/11/2014 12:43:23

    vi ringrazio entrambi, siete molto gentili ad aiutarmi! @lucas87: ho dimenticato di dire che alla prima colonna rispondo digitando "m" o "f" (SESSO) ...il codice che mi hai dato funziona lo stesso? GRAZIE!



  • di Lucas87 data: 10/11/2014 15:07:08

    Ovvio che non funziona.
    Considera poi che le lettere sono maggiori dei numeri, cioè 5Il codice corretto è
     
    If IsNumeric(ce) And ce >= 1 And ce <= 5 Then
        MsgBox ""
    ElseIf LCase(ce) = "m" Or LCase(ce) = "f" Then
        MsgBox ""
    End If



  • di GIGI (utente non iscritto) data: 12/11/2014 11:19:24

    OK, RISOLTO ALLA GRANDE... THANK'S!