Optimiser ma macro

claire6

XLDnaute Nouveau
Bonjour à tous:)

Je suis débutante et j'ai réussi à faire tourner une macro qui marchent bien. Maintenant j'aimerais pouvoir la faire tourner avec des boucles ou quelque chose de plus joli (moins débutant :p) si quelqu'un peut m'aider à le faire.
En gros la macro fait des recherchev dans plusieurs colonnes et fait entrer la formule jusqu'à la dernière ligne de chaque colonne:


Range("O2:O" & Range("A65536").End(xlUp).Row).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC12,'[art actif base itc.xlsx]art sans doublon'!C12:C21,COLUMN(R1C)-11,FALSE)"
Selection.FillDown

Range("P2:p" & Range("A65536").End(xlUp).Row).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC12,'[art actif base itc.xlsx]art sans doublon'!C12:C21,COLUMN(R1C)-11,FALSE)"
Selection.FillDown

Range("Q2:Q" & Range("A65536").End(xlUp).Row).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC12,'[art actif base itc.xlsx]art sans doublon'!C12:C21,COLUMN(R1C)-11,FALSE)"
Selection.FillDown

Range("R2:R" & Range("A65536").End(xlUp).Row).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC12,'[art actif base itc.xlsx]art sans doublon'!C12:C21,COLUMN(R1C)-11,FALSE)"
Selection.FillDown

Range("S2:S" & Range("A65536").End(xlUp).Row).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC12,'[art actif base itc.xlsx]art sans doublon'!C12:C21,COLUMN(R1C)-11,FALSE)"
Selection.FillDown

Range("T2:T" & Range("A65536").End(xlUp).Row).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC12,'[art actif base itc.xlsx]art sans doublon'!C12:C21,COLUMN(R1C)-11,FALSE)"
Selection.FillDown

Range("U2:U" & Range("A65536").End(xlUp).Row).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC12,'[art actif base itc.xlsx]art sans doublon'!C12:C21,COLUMN(R1C)-11,FALSE)"
Selection.FillDown

Range("CE2:CE" & Range("A65536").End(xlUp).Row).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-71],'[art actif base itc.xlsx]art sans doublon'!C12:C83,71,FALSE)"
Selection.FillDown

Range("CH2:CH" & Range("A65536").End(xlUp).Row).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-74],'[art actif base itc.xlsx]art sans doublon'!C12:C86,75,FALSE)"
Selection.FillDown

Range("CF2:CF" & Range("A65536").End(xlUp).Row).Select
ActiveCell.FormulaR1C1 = "=IF(OR(RC[-17]=""X"",RC[-45]=""A""),""Oui"",""Non"")"
Selection.FillDown

Range("CG2:CG" & Range("A65536").End(xlUp).Row).Select
ActiveCell.FormulaR1C1 = "=IF(AND(RC[-81]=1,RC[-80]=1),""CIT et DUP"",IF(RC[-81]=1,""CIT"",IF(RC[-80]=1,""DUP"",0)))"
Selection.FillDown
 

Yaloo

XLDnaute Barbatruc
Re : Optimiser ma macro

Bonjour claire6,

Pour la première partie, jusqu'à la colonne U, tu peux utiliser ça :

VB:
Dim c&, DerL&
DerL = Range("A65536").End(xlUp).Row
  For c = 15 To 21
    Range(Cells(2, c), Cells(DerL, c)).FormulaR1C1 = _
        "=VLOOKUP(RC12,'[art actif base itc.xlsx]art sans doublon'!C12:C21,COLUMN(R1C)-11,FALSE)"
  Next c

Pour la seconde partie :

VB:
Dim DerL&
DerL = Range("A65536").End(xlUp).Row
  Range(Cells(2, 83), Cells(i, 83)).FormulaR1C1 = _
        "=VLOOKUP(RC[-71],'[art actif base itc.xlsx]art sans doublon'!C12:C83,71,FALSE)"

idem pour les autres, dans l'exemple ci-dessus 83 est le numéro de colonne correspondant à CE

A+

Martial
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 196
Messages
2 086 100
Membres
103 116
dernier inscrit
kutobi87