Copier/coller x colonnes du feuille vers une autre

Bonjour, ou plutôt bonne nuit !

Le titre à l'air simple, mais c'est plus compliqué que ça. J'ai besoin de votre aide. J'ai navigué dans plusieurs forums et n'ai pas trouvé ce que je cherche. J'ai un bon niveau en excel, mais VBA c'est surtout en macro enregistré que j'y arrive et je regarde après le code.

Voilà, j'ai un fichier excel avec x colonne (le nombre peut varier). C'est un fichier de répartition d'identifiants/produits/quantités. Ce qu'il me faut, c'est une macro qui m'exporterai mes colonnes de répartition quantité en 1 seule au kilomètre (les unes en-dessous des autres) avec 2 autres colonnes, une qui représente les identifiants et l'autre la cellule qui représente le code numérique de mon produit.

J'ai le même nombre de ligne pour toutes les colonnes. 1 colonne par produit. 1 seule colonne pour mes identifiants.

Ce qu'il me faut, c'est : en colonne A, les identifiants (j'en ai 201), en colonne B ce serait mon code produit répété, bah, 201 fois, et en colonne C mes quantités affectées pour chaque couple produit/identifiants. Après, en-dessous, j'attaque le prochain produit et répete la même action.

Voilà, voilà, j'espère avoir été assez claire, à vous de jouer :)
Merci !

Bonjour et bienvenue,

ton sujet est clair, mais il mérite que tu nous mettes un fichier excel représentatif de ton sujet sur lequel on pourra travailler

merci

Bonjour

Voici le fichier, que j'ai été obligé de modifier pour raison de confidentialité.

Le 1er onglet, est celui où je fais mes répartitions par produits et pour chaque id. Le second, c'est l'export au kilomètre dont j'ai besoin.

Merci pour votre aide

Je regarde (cela aurait été miux d'appeler toujours les choses d la même manière ... code ID je suppose que c'est code magasin ? code produit j suppose que c'est code article ?)

si j'ai bien compris ...

Sub lister()
Dim r As Worksheet, e As Worksheet
Set r = Sheets("Répart")
Set e = Sheets("Export")

k = 1
With e
    .Cells(1, 1).CurrentRegion.Offset(1, 0).ClearContents
    For j = 4 To r.Cells(4, Columns.Count).End(xlToLeft).Column
        For i = 12 To r.Cells(Rows.Count, 1).End(xlUp).Row
           k = k + 1
           .Cells(k, 1) = r.Cells(i, 1)
           .Cells(k, 2) = r.Cells(4, j)
           .Cells(k, 3) = r.Cells(i, j)
        Next
    Next

End With

End Sub

Alors, Steelson, tu es magique. On vois toute de suite la différence entre une débutante comme moi et un expert.

La macro fonctionne et le code est largement plus court que celui que j'avais commencé à écrire.

J'ai apporté les petites modifications une fois transposé dans mon fichier d'origine et c'est au top :)

Il ne me reste plus qu'à appliquer un filtre pour virer les valeurs (quantités) à 0.

Merci encore !

Rechercher des sujets similaires à "copier coller colonnes feuille"