inserire nuove righe



  • inserire nuove righe
    di sos (utente non iscritto) data: 06/03/2014 03:14:35

    Ciao, ho diversi fogli excel dove devo inserire tante righe vuote sulla base di un valore. mi spiego meglio. ho una serie di righe che sono record di soggetti diversi e per ogni record devono aggiungere tante righe vuote quanto è il valore di una cella

    A B C
    nome cognome numero righe da aggiungere
    mario rossi 5
    carlo bianchi 8

    vorrei che la macro verificasse il numero di righe da aggiungere nella colonna C per ogni record e scorresse tutto il database aggiungendo le righe sulla base del valore nella colonna C. con un unico comando.
    grazie molte



  • di Lucas87 data: 06/03/2014 08:23:41

    Ciao.
    ecco qua
     
    Sub aggiungi_righe()
    k = Range("a" & Rows.Count).End(xlUp).Row
    i = 1
    Do While i <= k
        n = Cells(i, 3)
        Rows("" & i + 1 & ":" & i + n & "").Insert
        i = i + n + 1
        k = k + n
    Loop
    End Sub
    


  • spiegazione
    di sos (utente non iscritto) data: 06/03/2014 09:45:10

    Ciao Luca, mi sembra molto carina. non sono un esperto di macro. l'ho provata ma non funziona. inoltre, come faccio ad abbinargli un comando, tipo ctrl+lettera? infine, potresti spiegarla. scusa e grazie.




  • di patel data: 06/03/2014 10:03:08

    per ottenere un buon risultato occorre allegare un file di esempio corredato di spiegazioni, altrimenti chi ti risponde può soltanto fornirti una macro generica da adattare al tuo caso, inoltre non si risponde "non funziona", ma si spiega cosa non funziona:
    da errore ? quale ? in quale linea ?




  • inserimento righe
    di sos (utente non iscritto) data: 06/03/2014 10:35:39

    Ciao Luca, ho caricato il file denominato inserimento righe. dove appunto ci sono tre colonne nome, cognome e righe. sulla base del valore nella colonna righe, la macro dovrebbe inserire sotto la stessa riga tante righe quanto è il valore e tale operazione dovrebbe farla fino a quando ci sono valori nella colonna delle righe (3). per quanto riguarda la prima macro che mi hai suggerito, non ho avuto alcun risultato. per questo ho scritto non funziona. Scusa e grazie ancora.



  • di patel data: 06/03/2014 11:55:43

    basta che tu cambi
    i = 1
    in
    i = 2

    visto che i dati partono dalla riga 2




  • grande
    di sos (utente non iscritto) data: 06/03/2014 12:02:56

    grande, bellissimo, mi ha risparmiato tantissimo tempo. mi potresti fare la descrizione dei comandi così inizio piano piano a capire la filosofia. Io tanto tempo fa ho lavorato con le macro di excel ma ora sembra che tutto sia cambiato con l'utilizzo di VBA ma mi piacerebbe tornare a farlo, per quello che posso.
    grazie ancora.
    p



  • di patel data: 06/03/2014 12:29:18

    guarda i commenti
     
    Sub aggiungi_righe()
    k = Range("a" & Rows.Count).End(xlUp).Row 'ultima riga piena della colonna A
    i = 2
    Do While i <= k ' cicla mentre i è <= k (lulma riga)
        n = Cells(i, 3) ' valore della cella iesima della colonna C 
        Rows("" & i + 1 & ":" & i + n & "").Insert ' per i = 2 e n = 3 vale rows("3:5").insert
        i = i + n + 1 ' incrementa i
        k = k + n ' incrementa k ' l'ultima riga è cambiata
    Loop
    End Sub






  • di Lucas87 data: 06/03/2014 12:49:41

    Ciao
    Sono tornato ora.
    Grazie patel.
    Immaginavo che il problema fosse una diversa impostazione della tabella.