Scendi una riga



  • Scendi una riga
    di Mikarwen (utente non iscritto) data: 30/11/2012 22:31:54

    Sono totalmente inesperta e sto muovendo i miei primi passi su VBA.
    ho creato una form che mi consente di inserire dei dati su un foglio excel (per ora è il solo foglio che ho) a partire dalla cella A2 in discesa.
    ora però non riesco a far scendere di una riga una volta inserito il primo blocco di dati.
    Io ho provato a scrivere questo
     
    Range("a2").Select
    Range("a2").End(x1Down).Select



  • di HarryBosch data: 30/11/2012 23:40:32

    Ciao Mikarwen
    c'è un errore nel tuo codice, ovvero nel x1Down: che non è un 1 ma una "elle"; pertanto sarebbe:

    Range("a2").End(xlDown).Select

    e con questa istruzione selezioni l'ultima cella della colonna A occupata da un valore (attenzione che appena trova uno spazio vuoto l'istruzione si ferma). Tra l'altro almeno la cella A3 deve essere occupata altrimenti non ottieni il risultato voluto.

    Se invece vuoi spostarti sulla prima cella vuota dopo l'elenco, allora l'istruzione sarà:

    Range("a2").End(xlDown).Offset(1, 0).Select

    Dove con Offset indichi lo spostamento: la prima cifra indica le righe, la seconda le colonne. Pertanto con Offset(1, 0) ti sposti di una riga sotto e di nessuna colonna (puoi usare numeri negativi per retrocedere sia con le righe, sia con le colonne).



  • di Mikarwen (utente non iscritto) data: 01/12/2012 15:29:13

    Innanzi tutto grazie infinite per la risposta, io ci ho provato ed ho scritto il codice
    eppure mi da' ancora errore di runtime 1004
     
     'DEVE SELEZIONARE LA PRIMA RIGA VUOTA
            Range("a2").Select
            Range("a2").End(xlDown).Offset(1, 0).Select



  • di HarryBosch data: 01/12/2012 17:48:51

    Dove hai scritto il codice? in un modulo standard o nel modulo di un foglio specifico?
    Se l'errore ti esce su queste istruzioni significa o che lanci la macro su un foglio diverso da quello dove hai scritto il codice oppure che la cella A3 e seguenti sono tutte vuote (come ti avevo accennato).
    La prima istruzione, "Range("a2").Select" si può anche omettere.

    Vuoi partire dalla cella A2 perché nella prima c'è l'intestazione? Hai detto che
    "non riesco a far scendere di una riga una volta inserito il primo blocco di dati."
    quindi avrai scritto anche qualcos'altro immagino; potresti postare l'intera routine.

    In ogni caso, restando su questa istruzione, supponiamo che vuoi riportare i dati a partire dalla cella A2; se è vuota parto da questa, altrimenti parto dalla prima riga che trovo libera (vedi il codice sotto).

    [a2] equivale a Range("a2")




     
    if [a2]="" then
       [a2].select
    else
        [a1].End(xlDown).Offset(1, 0).Select
    end if
    



  • di mikarwen (utente non iscritto) data: 02/12/2012 18:24:13

    Prima di tutto devo assolutamente ringraziarti per l'aiuto che mi stai dando!!!
    Allora provo a spiegarmi
    sto piano piano costruendo un userform in cui inserendo i dati dei clienti venga creato un foglio excel in cui vengono automaticamente registrando i dati, per poi arrivare a stampare la conferma al cliente e alla struttura
    ho inserito il comando nel codice dello userform (spero si dica così)
    la prima riga (per circa 29 colonne) contiene l'intestazione
    dalla cella A2 (per circa 29 colonne) devono essere riportati i dati del 1° cliente

    io vorrei che i dati del secondo cliente venissero scritti in discesa. per questo ovviamente dalla A3 in poi le righe sono tutte vuote.

    Spero di essermi spiegata, grazie ancora!



  • di Vecchio Frac data: 02/12/2012 20:40:19

    Suggerimento: parti dal basso e sali verso l'alto.
    Se la colonna che contiene i dati è la prima ("A") allora con questa istruzione:
    cells(rows.Count,1).end(xlup).offset(1).select
    tu parti dal fondo del foglio, risali di un colpo verso l'ultima cella compilata della colonna A, quindi con Offset ti sposti di una riga verso il basso.





  • di mikarwen (utente non iscritto) data: 05/12/2012 12:29:35

    niente non riesco proprio a far funzionare questo comando!!!



  • di Vecchio Frac data: 05/12/2012 20:52:12

    Eppure dovrebbe funzionare.
    Hai un file da allegare (con dati fittizi)?