Copiare n volte una riga di excel



  • Copiare "n" volte una riga di excel
    di Lovendiamo data: 17/06/2010

    Salve ragazzi, ho bisogno di un'aiuto (ovviamente sennò non sarei qui a scrivervi :d ). allora, spiegazione problema.

    ho un file excel dove io inserisco diversi tipi di (ad esempio) magliette e pantaloni.

    es.

    codice - nome - modello - taglia

    lvn0001 - maglione mod. engin verde s - maglione mod. engin verde - s

    allora la prima colonna è il codice, la seocnda è un concatena(c1;d1), la terza è il modello del capo e la quarta la taglia. ora quando io vado ad inserire i prodotti scrivo tutti i modelli senza le taglie. poi dovrò ricopiare n volte la riga di quel modello a seconda di quante taglie ci sono.

    esempio. da questa riga che io ho inserito a mano:

    codice - nome - modello - taglia

    lvn0001 - maglione mod. engin verde - maglione mod. engin verde -

    dovrò ottenere alla fine se ho 4 taglie questa:

    codice - nome - modello - taglia

    lvn0001 - maglione mod. engin verde s - maglione mod. engin verde - s
    lvn0002 - maglione mod. engin verde m - maglione mod. engin verde - m
    lvn0003 - maglione mod. engin verde l - maglione mod. engin verde - l
    lvn0004 - maglione mod. engin verde xl - maglione mod. engin verde - xl

    considerate che il codice mi arrangio a farlo progressivo e che scrivo a mano della quarta colonna d1 le taglie presenti e nella colonna b1 il concatena me lo mette in automatico nel titolo.

    avrei quindi bisogno solo di avere la riga copiate n volte per n taglie che io andrò a dirgli per ogni singolo capo quante sono. il tutto per ogni singolo capo. se volete posso mandarvi un file di esempio.

    spero di essermi espresso abbastanza bene.

    un grazie infinito a chi mi aiuterà.

    alessandro



  • di Lovendiamo data: 17/06/2010

    Vi indico un altro esempio ancora più esaustivo:

    es.

    file di partenza:

    modello - descrizione - taglia

    maglione mod. engin verde - bellissimo maglioncino...... - vuota
    pantaloni mod. abba blu - bellissimi pantaloni.... - vuota
    pantaloni mod. exclusive - bellissimi pantaloni.... - vuota


    file di arrivo:

    modello - descrizione - taglia

    maglione mod. engin verde - bellissimo maglioncino...... - s
    maglione mod. engin verde - bellissimo maglioncino...... - m
    maglione mod. engin verde - bellissimo maglioncino...... - l
    maglione mod. engin verde - bellissimo maglioncino...... - xl
    pantaloni mod. abba blu - bellissimi pantaloni.... - s
    pantaloni mod. abba blu - bellissimi pantaloni.... - m
    pantaloni mod. abba blu - bellissimi pantaloni.... - l
    pantaloni mod. abba blu - bellissimi pantaloni.... - xl
    pantaloni mod. exclusive - bellissimi pantaloni.... - s
    pantaloni mod. exclusive - bellissimi pantaloni.... - m
    pantaloni mod. exclusive - bellissimi pantaloni.... - l
    pantaloni mod. exclusive - bellissimi pantaloni.... - xl

    mi sono spiegato?



  • di Albatros54 (utente non iscritto) data: 17/06/2010

    Supponiamo che nel foglio1 alla cella a2 hai il primo modello "maglione mod" alla cella b2 "engin verde" d2 "bellissimo maglioncino".copia ed incolla il codice postato in un modulo.
    nel foglio2 avrai il numero di copie dei vari articoli che tu avrai indicato nella inputbox.
    ciao
    albatros54

     
    Public Sub copia()
        
    
    On Error GoTo RigaErrore
    
        
        Dim sh1 As Worksheet
        Dim sh2 As Worksheet
        Dim lUltRiga1 As Long
        Dim lUltRiga2 As Long
        Dim lng1 As Long
        Dim lng2 As Long
        Dim valore As Long
        
        
        
        With Application
            .ScreenUpdating = False
            .CutCopyMode = False
        End With
        
        
        Set sh1 = Worksheets("Foglio1")
        Set sh2 = Worksheets("Foglio2")
        
        With sh1
            
            lUltRiga1 = .Range("A" & _
                .Rows.Count).End( _
                xlUp).Row
           
            lUltRiga2 = sh2.Range("A" & _
                .Rows.Count).End( _
                xlUp).Row
           
            sh2.Range("A2:D" & lUltRiga2).Value = ""
            lUltRiga2 = 2
            
            For lng1 = 2 To lUltRiga1
            testo = .Range("A" & lng1)
               
                valore = Application.InputBox("quante volte vuoi copiare " & testo)
                For lng2 = 1 To valore
                    
                    .Range("A" & lng1 & ":C" & lng1).Copy _
                        Destination:=sh2.Range( _
                        "A" & lUltRiga2)
                    lUltRiga2 = lUltRiga2 + 1
                Next
            Next
        End With
        
    
    RigaChiusura:
        
        With Application
            .ScreenUpdating = True
            .CutCopyMode = True
        End With
        
        Set sh2 = Nothing
        Set sh1 = Nothing
        Exit Sub
    
    
    RigaErrore:
        MsgBox Err.Number & vbNewLine & Err.Description
        Resume RigaChiusura
        
    End Sub