Export CSV de chacune des lignes en fonction d'une quantité

Bonjour à tous

Je cherche à modifier une macro existante, actuellement elle me permettait d'exporter ma feuille dans un CSV mais il y a du changement, j'ai besoin que la macro exporte chacune des lignes dans un fichier séparé, mais pas seulement, ce qui me bloque également c'est que la ligne doit être recopier le même nombre de fois que la valeur présente dans la colonne E.

Si vous pouviez m'aider,

Je vous remercie

11excel-pratique.xlsm (21.89 Ko)

Bonjour, j'ai donc trouver la macro suivante qui me créai bien mes lignes dans un onglet temporaire, maintenant je cherche plus qu'a exporter dans un fichier different a chaque changement de valeur de la colonne A, merci pour votre aide

Voici la macro pour la duplication d'une ligne selon un quantité définie dans une cellule

'copie
Dim Tablo
Dim x As Long
Tablo = Sheets("EXPORTER5").Range("A2", "H" & Sheets("EXPORTER5").Range("H" & Rows.Count).End(xlUp).Row)
k = 1
For x = LBound(Tablo, 1) To UBound(Tablo, 1)
    If Tablo(x, 2) <> "" Then
    c = Tablo(x, 2)
    For j = 1 To c
    Sheets("EXPORTER6").Range("A" & k) = Tablo(x, 1)
    Sheets("EXPORTER6").Range("B" & k) = Tablo(x, 2)
    Sheets("EXPORTER6").Range("C" & k) = Tablo(x, 3)
    Sheets("EXPORTER6").Range("D" & k) = Tablo(x, 4)
    Sheets("EXPORTER6").Range("E" & k) = Tablo(x, 5)
    Sheets("EXPORTER6").Range("F" & k) = Tablo(x, 6)
    Sheets("EXPORTER6").Range("G" & k) = Tablo(x, 7)
    Sheets("EXPORTER6").Range("H" & k) = Tablo(x, 8)
    k = k + 1
    Next j
    End If
Next x

Alors j'ai du revoir ma stratégie, voici mon nouveau code fonctionnel,

il duplique la ligne en question d'apres la valeur en colonne 2

puis exporte l'ensemble des lignes d'une meme valeur en colonne H dans un fichier CSV, le fichier csv prend la valeur de la cellule A

Parfait pour moi

Private Sub CommandButton7_Click()

MsgBox "Pensez à mettre du papier dans l'imprimante"

'vider la feuille EXPORTER
Worksheets("EXPORTER5").Range("A1:Z1000").Clear
Worksheets("EXPORTER6").Range("A1:Z1000").Clear

'Copie de la feuille tmp dans EXPORTER
ThisWorkbook.Worksheets("TMP5 ESAT").Cells.Copy
ThisWorkbook.Worksheets("EXPORTER5").Cells.PasteSpecial Paste:=xlPasteValues

Dim z As Integer, DerniereLigne As Integer
Application.ScreenUpdating = False
For z = 1000 To 1 Step -1
     If Worksheets("EXPORTER5").Cells(z, 1) = "REF AA  T AA  COL AA" Then Worksheets("EXPORTER5").Cells(z, 1).EntireRow.Delete
     If Worksheets("EXPORTER5").Cells(z, 1) = " " Then Worksheets("EXPORTER5").Cells(z, 1).EntireRow.Delete
     If Worksheets("EXPORTER5").Cells(z, 1) = "" Then Worksheets("EXPORTER5").Cells(z, 1).EntireRow.Delete
     If Worksheets("EXPORTER5").Cells(z, 1) = "REF   T   COL " Then Worksheets("EXPORTER5").Cells(z, 1).EntireRow.Delete

Next z
Application.ScreenUpdating = True

Worksheets("EXPORTER5").Activate

 Dim i%, j%, n% 'déclare mes variables en tant que nombre entier
    With ActiveSheet 'sur la feuille active
        n = .Cells(.Rows.Count, 1).End(xlUp).Row  '[barrer]égal la valeur de la colonne 1[/barrer] n° dernière ligne occupée en col. 9 (I)
        Application.ScreenUpdating = False
        For i = n To 1 Step -1 'boucle sur chaque ligne
            If IsNumeric(.Cells(i, 2)) Then  'test si la valeur est numérique pour la cellule ligne I colonne 2
                j = .Cells(i, 2) - 1 'valeur de la cellule colonne 2 - 1

                If j > 0 Then
                    .Range("A" & i & ":H" & i).Copy 'copie la ligne I de la colonne A à la colonne H
                    .Range("A" & i + 1 & ":H" & i + j).Insert xlShiftDown '[barrer]colle la valeur dans la ligne du dessous autant de fois que la variable J[/barrer] Insère j lignes sous la ligne copiée en la collant sur les lignes insérées

         Dim Plage As Object, oL As Object, oC As Object, Tmp As String, Sep$
Sep = ";"
Set Plage = .Range("H" & i & ":J" & i + j)
Open "C:\Users\k\Desktop\ETQ2\" & .Range("H" & i).Value & ".csv" For Output As #1
For Each oL In Plage.Rows
Tmp = ""
For Each oC In oL.Cells
Tmp = Tmp & CStr(oC.Text) & Sep
Next
Print #1, Tmp
Next
  'End With
Close

                End If
            End If

        Next i
    End With
    Application.CutCopyMode = False 'a quoi cela sert ?? Vide le presse-papier, ce qui élimine l'encadrement scintillant de la ligne copiée (qui ne se produit pas spontanément dans ce cas)

MsgBox "Export des étiquettes terminés, Impression en cours"

End Sub
Rechercher des sujets similaires à "export csv chacune lignes fonction quantite"