Traduction en VBA

Bonjour à tous,

J'ai besoin de modifier une macro pour mon boulot mais je ne maitrise pas du tout le vba..

Voici ce que j'aimerais formuler (entre autres...) :

Insérer la formule =RECHERCHEV(D27;Feuil2!B$17 :G$5770 ;2 ;FAUX) en J27. Etirer cette formule jusqu’en bas du tableau pour chaque ligne non vide.

Voici le code de la macro :

Sub insere()
Set ws1 = Worksheets("Feuil1")
Set ws2 = Worksheets("Feuil2")
Set ws3 = Worksheets("feuil3")
ws1.Cells.Copy ws3.Range("A1")
ws3.Columns(2).Insert shift:=xlRight
pl = ws3.Range("A:A").Find("Lg   cde").Row
dl = ws3.Range("D:D").Find("Tous les montants sont exprimés en").Row
ws3.Rows(dl).Delete
dl = dl - 2
ws2.Range("A1:C1").Copy ws3.Range("A" & pl)
ws2.Range("A3:M5").Copy ws3.Range("G" & pl)
ws3.Range("C" & pl + 1 & ":C" & dl).Copy ws3.Range("A" & pl + 1)
 pl = pl + 1
 ws3.Range("C" & pl + 1).Formula = "=A" & pl + 1 & "*B" & pl + 1
 For i = pl To dl
  If ws3.Range("A" & i) <> "" Then
   ws3.Range("B" & pl + 1).Copy ws3.Range("B" & i)
   ws3.Range("C" & pl + 1).Copy ws3.Range("C" & i)
   ws3.Range("B" & i) = ws1.Range("H" & i) / ws3.Range("A" & i)
   ws3.Range("H" & pl + 1 & ":S" & pl + 1).Copy ws3.Range("H" & i)
  End If
 Next i
 ws3.Range("A" & dl & ":S" & dl).Borders(xlEdgeBottom).Weight = xlMedium
 ws3.Range("S" & pl & ":S" & dl).Borders(xlEdgeRight).Weight = xlMedium
 ws3.Range("K" & pl & ":K" & dl).Borders(xlEdgeRight).LineStyle = xlNone
 ws3.Columns("I:S").EntireColumn.AutoFit
 ws3.Columns("A:B").EntireColumn.AutoFit
 ws2.Range("A8:N12").Copy ws3.Range("F" & dl + 1)

 ws3.Range("J" & dl + 1).Formula = "=sum(L" & pl & ":L" & dl & ")"
 ws3.Range("J" & dl + 2).Formula = "=sum(N" & pl & ":N" & dl & ")"
 ws3.Range("J" & dl + 3).Formula = "=sum(R" & pl & ":R" & dl & ")"
 ws3.Range("J" & dl + 4).Formula = "=sum(C" & pl & ":C" & dl & ")"
 ws3.Range("J" & dl + 5).Formula = "=sum(A" & pl & ":A" & dl & ")"
Set ws1 = Nothing
Set ws2 = Nothing
Set ws3 = Nothing

Sheets("Feuil3").Select
    Range("E2").Select
    ActiveCell.FormulaR1C1 = "Liste de colisage / Packing list"
    Range("E3").Select
    Sheets("Feuil1").Select
End Sub

Merci par avance !

Je vois que ça n'inspire pas grand monde

Quelqu'un pourrait-il me commenter le code de manière à ce que je comprenne le fonctionnement svp ?

Merci

Bonjour,

Merci de joindre un fichier représentatif de tes données (<=300ko).

Cdlt.

Et voilà !

Pour info, le but est de transformer automatiquement une facture collée en feuille 1 en liste de colisage (résultat en feuille 3).

Cela fonctionne déjà dans une certaine mesure mais j'aimerais pousser le truc pour avoir le résultat en 1 clic --> gain de temps assez conséquent pour moi et mes collègues.

Bonsoir,

voir si cela te convient

Encore un grand merci à toi oh grand H2SO4

Je suis toujours preneur d'une bonne bouteille, voire même d'une caisse colisée !

Rechercher des sujets similaires à "traduction vba"