Excel Macro Boucle

Fermé
mdelusse56 Messages postés 31 Date d'inscription mardi 18 mars 2014 Statut Membre Dernière intervention 25 juin 2020 - 7 août 2015 à 09:41
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 - 7 août 2015 à 17:05
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
A voir également:

1 réponse

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
7 août 2015 à 17:05
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