Bonjour,
Je débute en VBA Excel et suis autodidacte (pour le moment).
J'ai beau lire des dizaines de sujets, je n'arrive pas créer une macro parfaitement fonctionnelle... Ce qui je pense sera simple compte-tenu de votre expertise.
Je m'y perds avec les i, les For, les Next, les While, etc.
Je dois créer un fichier exploitant une liste de communes.
Sur une feuille "ETAPE 2," en colonne B (à partir de B3), j'ai une liste des communes.
La colonne C contient d'autres données, donc la suite se passe en D3.
Au départ, je veux obtenir en colonne D, la formule suivante, qui fait appel à des données d'autres feuilles :
(c'est la formule en D3.)
Code : Sélectionner tout - Visualiser dans une fenêtre à part =RECHERCHEV(RECHERCHEV('ETAPE 2'!$B3;'ETAPE 1'!$A$3:$D$1000;4;FAUX);'COMMUNES DE FRANCE'!$E$2:$F$40000;2;FAUX))
Je ne veux pas laisser la formule comme ça, ce qui alourdi fortement le fichier Excel.
En plus, pour travailler avec, je ne veux pas la formule, mais directement son résultat.
J'applique donc ce bout de VBA, dans une macro, que j'applique en D3 et en E3, tout simplement car je n'ai pas réussi à convertir cette formule avec deux RECHERCHEV en une seule, en VBA (je ne sais si c'est possible. Si ça l'est, n'hésitez pas à me donner la solution ^^)
Ce que je veux :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 With Sheets("ETAPE 2") .Range("D3").Value = WorksheetFunction.VLookup(.Range("B3").Value, Sheets("ETAPE 1").Range("A3:D1000"), 4, False) .Range("E3").Value = WorksheetFunction.VLookup(.Range("D3").Value, Sheets("COMMUNES DE FRANCE").Range("E2:F40000"), 2, False) End With
Par le biais de la macro, descendre automatiquement la/les formules VLookup (en boucle donc), tant qu'il y a des communes d'indiquées en colonne B, à partir de B3, et en rendant la formule dynamique, c'est à dire en adaptant le début des deux formules (ou de la formule qui vous savez comment la réduire à une seule opération), du style :
J'espère que vous aurez compris ma demande, et que vous pourrez rapidement m'aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 .Range("Dx").Value = WorksheetFunction.VLookup(.Range("Bx") .Range("Ex").Value = WorksheetFunction.VLookup(.Range("Dx")
Merci par avance !
Philippe
Partager