Copiare righe e incollarle



  • Copiare righe e incollarle
    di Dida (utente non iscritto) data: 03/05/2010

    Ciao a tutti,
    ho un foglio di excel con circa 1000 righe, vorrei copiare ogni riga e inserirla sotto per 5 volte senza sovrascrivere la successiva, questo per tutte le 1000 righe. dovrei alla fine trovarmi con 6000 righe. non capisco come poter fare.
    mi date un aiutino?
     
    Sub CopiaRighe()
    
    On Error GoTo Errorcatch
    For r = 1 To Range("a1000").End(xlUp).Row
    
        If Range("a" & r).Value <> "" Then
    
             
        Rows("r:r").Select
        Selection.Copy
        Selection.Insert Shift:=xlDown
        Selection.Insert Shift:=xlDown
        Selection.Insert Shift:=xlDown
        Selection.Insert Shift:=xlDown
        Selection.Insert Shift:=xlDown
    
        End If
    Next r
    Exit Sub
    
    Errorcatch:
    MsgBox Err.Description
    
    
    End Sub



  • di Locate (utente non iscritto) data: 04/05/2010

    Ciao dida
    ti posto la macro che farebbe al tuo caso da come tu ai esposto il problema, fai prima delle prove su una copia perche io jho provato con pochi valori ma penso che faccia al tuo caso
    se ok fai sapere
    ciao da locate
     
    Sub copia()
    Dim Riga_e, Riga_o
    For i = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
        Cells(i, 1).Select
        For a = 1 To 5
        Selection.EntireRow.Insert
        Next a
    Next i
    For e = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -6
    Riga_e = e & ":" & e
    Rows(Riga_e).Select
    Selection.Copy
      For o = e - 1 To e - 5 Step -1
      Riga_o = o & ":" & o
      Rows(Riga_o).Select
      ActiveSheet.Paste
      Next o
    Next e
    Application.CutCopyMode = False
    Range("A1").Select
    End Sub


  • Incolonnare date
    di Locate (utente non iscritto) data: 05/05/2010

    Ciao dida
    intanto saluto richy che ti a gia dato un appunto in un altro forum su questo lavoro per la macro e visto che ai posto una seconda richiesta per la stessa macro che ti ho postato se in precedenza davi indicazioni giuste ti avrei gia passato la macro che faceva il lavoro che tu dici sul riporto delle date in riga e riportarle tutte in colonna senza fare giri di macro inutilmente ma con questa che ti metto che fa il lavoro che tu desideri vedi esempio
    prima--------
    a1-- b1-- c1-- d1-- e1-- f1
    a2-- b2-- c2-- d2-- e2-- f2
    a3-- b3-- c3-- d3-- e3-- f3
    a4-- b4-- c4-- d4-- e4-- f4
    a5-- b5-- c5-- d5-- e5-- f5
    dopo la macro
    a1
    b1
    c1
    d1
    e1
    f1
    a2
    b2
    c2
    d2
    e2
    f2
    a3
    b3
    c3
    d3
    e3
    f3
    a4
    b4
    c4
    d4
    e4
    f4
    a5
    b5
    c5
    d5
    e5
    f5
    ciao da locate
     
    Sub Incolonna()
    Dim Cel_c
    For i = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
       Cells(i, 1).Select
        For a = 1 To 5
        Selection.EntireRow.Insert
        Next a
    Next i
    For e = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -6
    colon = 1
     For c = e - 5 To e Step 1
        Cel_c = Cells(e, colon)
        Cells(e, colon) = ""
        Cells(c, 1) = Cel_c
        colon = colon + 1
     Next c
    Next e
    Range("A1").Select
    End Sub



  • di Dida (utente non iscritto) data: 06/05/2010

    Grazie mille locate, la soluzione della duplicazione delle righe era la fase iniziale del problema ed è stata risolta benissimo dalla macro segnalata. io ho questo foglio che ha le righe composte da tante colonne: id, denominazione, via, data1, data2, data3, data4, importo1, importo2, importo3, importo4 che sto modificando per normalizzarle in un db. i campi data devono essere riportati come fa il tuo ultimo esempio su nuove righe ma i campi id e gli altri devono essere ripetuti a fianco in modo da non farmi perdere il riferimento univoco.
    ora il tuo esempio mi traspone solo le prime 6 colonne ma è già un ottimo risultato. grazie tantissime