Copie/colle magique ou macro ?

matoupitou

XLDnaute Occasionnel
BONJOUR ET DEJA MERCI
s'il était possible d'automatiser ce travail si fastidieux...
je reçois un fichier avec 1 feuille (sur l'ex joint c'est nommé BASE)
colonne A : les réfs produits (le nombre de lignes peut varier)
colonnes suivantes : tous les n° de comptes des magasins (217)
au croisement les quantités commandées

je dois fournir un fichier transformé comme suit :1seul onglet
colonne A doit contenir le n° de compte *
colonne B doit rester vide
colonne C doit contenir les références
colonne D doit rester vide
colonne E doit contenir les qté

* doit se répéter autant de fois qu'il y a de références produits

voici un doc pour que ce soit plus clair
ai-je moyen d'automatiser ce travail?
ou quel sont les astuces pour aller très vite?
 

Pièces jointes

  • op332.xlsm
    96.5 KB · Affichages: 55

Paf

XLDnaute Barbatruc
Re : Copie/colle magique ou macro ?

Bonjour à tous

un essai par macro

le résultat est copié en feuille Feuil1 qui doit exister. Resterait la mise en page à peaufiner.

Code:
Sub matoupitou()
Dim WS1 As Worksheet, WS2 As Worksheet, i As Long, DerCol As Integer, NbLig As Long
Dim LigDeb&, LigFin&, DerLigBase&
Set WS1 = Worksheets("base")
Set WS2 = Worksheets("Feuil1")

DerLigBase = WS1.Range("A" & Rows.Count).End(xlUp).Row 
DerCol = WS1.Cells(2, Columns.Count).End(xlToLeft).Column

LigFin = 1
NbLig = DerLigBase  - 2

For i = 2 To DerCol
    LigDeb = LigFin + 1
    LigFin = LigDeb + NbLig
    WS1.Cells(1, i).Copy WS2.Range(WS2.Cells(LigDeb, 1), WS2.Cells(LigFin, 1))
    WS1.Range(WS1.Cells(2, 1), WS1.Cells(DerLigBase, 1)).Copy WS2.Cells(LigDeb, 3)
    WS1.Range(WS1.Cells(2, i), WS1.Cells(DerLigBase, i)).Copy WS2.Cells(LigDeb, 5)

Next

End Sub


A+
 
Dernière édition:

matoupitou

XLDnaute Occasionnel
Re : Copie/colle magique ou macro ?

MERCI MERCI TOUT PLEIN
ça fonctionne trop bien j'ai du mal à y croire ! TROP FORTICHE "paf" :)


Bonjour à tous

un essai par macro

le résultat est copié en feuille Feuil1 qui doit exister. Resterait la mise en page à peaufiner.

Code:
Sub matoupitou()
Dim WS1 As Worksheet, WS2 As Worksheet, i As Long, DerCol As Integer, NbLig As Long
Dim LigDeb&, LigFin&, DerLigBase&
Set WS1 = Worksheets("base")
Set WS2 = Worksheets("Feuil1")

DerLigBase = WS1.Range("A" & Rows.Count).End(xlUp).Row 
DerCol = WS1.Cells(2, Columns.Count).End(xlToLeft).Column

LigFin = 1
NbLig = DerLigBase  - 2

For i = 2 To DerCol
    LigDeb = LigFin + 1
    LigFin = LigDeb + NbLig
    WS1.Cells(1, i).Copy WS2.Range(WS2.Cells(LigDeb, 1), WS2.Cells(LigFin, 1))
    WS1.Range(WS1.Cells(2, 1), WS1.Cells(DerLigBase, 1)).Copy WS2.Cells(LigDeb, 3)
    WS1.Range(WS1.Cells(2, i), WS1.Cells(DerLigBase, i)).Copy WS2.Cells(LigDeb, 5)

Next

End Sub


A+
 

matoupitou

XLDnaute Occasionnel
Re : Copie/colle magique ou macro ?

MERCI BCP Chris
j'ai peiné un peu pour tout bien reproduire mais oui ça fonctionne bien
bcp + de manip qu'avec la Macro magique de Paf mais au cas où c bien aussi et c grâce à ta réponse rapide que j'ai oeuvré vendredi (ct ma deadline)
@une prochaine!