Excel Macro Boucle

mdelusse56 Messages postés 43 Statut Membre -  
Gyrus Messages postés 3360 Statut Membre -
Bonjour tout le monde,

Je viens vers vous car j'ai besoin d'une solution à un p'tit problème. :-)

Voila, j'ai fait une macro sous Excel qui permet de lancer plusieurs recherches v (sur un fichier exporter de l'ERP de mon entreprise).

Mon problème est que ce fichier varie tous les jours (c'est à dire que des lignes se rajoutent chaque jours..) et je ne sais donc pas comment faire pour avoir une espèce de "boucle" qui permet à la macro de faire les recherches V en fonction du nombre de ligne.

Voila par exemple un bout de code pour une recherche v :
Sheets("Feuil1").Select
Columns("F:F").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.NumberFormat = "General"
Range("F1").Select
ActiveCell.FormulaR1C1 = "Material description"
Range("F2").Select
ActiveCell.FormulaR1C1 = _
"=VLOOKUP(RC[-1],'N:\ASSISTANCE TECHNIQUE\EN COURS CLIENTS\[Matrice.xlsx]Table DM'!C1:C2,2,0)"
Range("F2").Select
Selection.AutoFill Destination:=Range("F2:F20838")
Range("F2:F20838").Select
Columns("F:F").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("E:E").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft

Le nombre de lignes est directement inscrit...

Merci à tous, Cordialement.

MDL

1 réponse

  1. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour,

    Si j'ai bien compris ton code, la RECHERCHEV se fait suivant les valeurs de la colonne E.
    Tu peux donc limiter la recherche au nombre de valeurs contenues dans cette colonne.

    Sub Test()
    Dim DerLig As Long
    With Sheets("Feuil1")
    With .Columns("F:F")
    .Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    .NumberFormat = "General"
    End With
    DerLig = .Range("E" & Rows.Count).End(xlUp).Row
    .Range("F1") = "Material description"
    .Range("F2").FormulaR1C1 = "=VLOOKUP(RC[-1],'N:\ASSISTANCE TECHNIQUE\EN COURS CLIENTS\[Matrice.xlsx]Table DM'!C1:C2,2,0)"
    .Range("F2").AutoFill Destination:=.Range("F2:F" & DerLig)
    .Range("F2:F" & DerLig).Copy
    .Range("F2:F" & DerLig).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Columns("E:E").Delete Shift:=xlToLeft
    Application.CutCopyMode = False
    End With
    End Sub


    A+
    0