• Initiateur de la discussion Initiateur de la discussion p19
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

p19

Guest
Bonjour,

Je recherche à utiliser la fonction vlookup dans une macro afin de pouvoir rechercher des valeurs qui se situent sur un autre classeur enregistré sur mon micro.

Pour ce faire, j'ai écrit le code suivant :


Dim nom As Variant
Dim ma_feuil As Variant
Dim ma_plage As Variant

nom = "C:\Users\c73332\Documents\@ Cadres synthèse\FC\Organisation\Table des CCS _GA_sté 0810_VERSION à jour début 2013.xls"
ma_feuil = "[Table référence CCS Direction]"
ma_plage = "$A$1:$B$156"

Range(Selection, Selection.End(xlDown)).Select
For Each cellule In Selection
cellule.Offset(0, 2).Formula = "=VLOOKUP(RC[-10],'" & nom & ma_feuil & "'!ma_plage,2,FALSE)"
cellule.Offset(0, 3).Formula = "=YEAR((RC[-18]))"
cellule.Offset(0, 4).Formula = "=Month((RC[-19]))"
Next
End Sub

Mon souci, c'est que lorque la macro arrive sur la ligne :
cellule.Offset(0, 2).Formula = "=VLOOKUP(RC[-10],'" & nom & ma_feuil & "'!ma_plage,2,FALSE)"
elle ouvre une fenêtre qui m'invite à selectionner un fichier et ne me retourne pas la valeur voulue.
Les deux autre fonction year et month affichent quant à elles un résultat correct.

Merci pour votre aide.

Philippe
 
Re : Vlookup

Bonjour p19,

Pas testé, mais je dirais en tout cas que les crochets sont à placer autour du nom du fichier et non pour encadrer le nom de la feuille
D'autre part, la variable ma_plage, dans la formule doit être en dehors des guillemets
(ou tu la remplaces par $A$1:$B$156)

Edit: pas vu tout de suite, mais un autre problème c'est que si tu utilises dans le VLookup, la notation "RC[-10]", tu dois, dès lors, utiliser FormulaR1C1
... auquel cas ma_plage ne peut pas être définie sous la forme "$A$1:$B$156", mais "R1C1:R156C2"
 
Dernière édition:
Re : Vlookup

Re bonjour,

J'ai modifié mon code ainsi :


nom = "C:\Users\c73332\Documents\@ Cadres synthèse\FC\Organisation\[Table des CCS _GA_sté 0810_VERSION à jour début 2013.xls)"
ma_feuil = "Table référence CCS Direction"
ma_plage = "R1C1:R156C2"

puis


For Each cellule In Selection

cellule.Offset(0, 2).Formula = "=VLOOKUP(RC[-10],'" & nom & ma_feuil & "'!ma_plage,2,FALSE)"
cellule.Offset(0, 3).Formula = "=YEAR((RC[-18]))"
cellule.Offset(0, 4).Formula = "=Month((RC[-19]))"
Next

mai j'ai une erreur Capture.JPG erreur d'exécution 1004...

J'avoue débuter le VBA et ne pas comprendre.

D'avance merci.
 

Pièces jointes

  • Capture.JPG
    Capture.JPG
    21.5 KB · Affichages: 68
  • Capture.JPG
    Capture.JPG
    21.5 KB · Affichages: 75
Re : Vlookup

Re bonjour,

Effectivement, mon copié collé etait malheureusement fidélé.

Voila, ça fonctionne beaucoup mieux.

Pour ma propore gouverne, auriez vous un lien qui pointe vers l'ensemble des formule sous la forme ".FORMULA" qui me donnerai les équivalences entre formule excel et formula VBA ?

Encore merci.

Philippe
 
Re : Vlookup

Bonsoir p19,

Une petite recherche sur le net devrait permettre de trouver la liste des fonctions en version "bilingue".

Tu dois aussi avoir, sur ton disque dur, un fichier nommé VBALIST.XLS ... fais une recherche au niveau de C:\Program Files\Microsoft Office
Ce fichier contient trois feuilles. Dans la dernière, tu trouveras une liste de +/- 150 fonctions en français avec la traduction anglaise en regard.

Les .Formula en vba sont les fonctions de feuille de calcul, puisque dans ton code, cette utilisation permettait d'écrire les formules dans les cellules. A ce sujet, j'ai déjà lu à plusieurs reprises qu'utiliser vba, pour inscrire des formules dans une feuille de calcul n'était pas nécessairement la meilleure manière de travailler ... à garder en mémoire! 😛
 
Re : Vlookup

Bonsoir p19,

... A ce sujet, j'ai déjà lu à plusieurs reprises qu'utiliser vba, pour inscrire des formules dans une feuille de calcul n'était pas nécessairement la meilleure manière de travailler ... à garder en mémoire! 😛

Bonjour et merci pour tes conseils.

Je confirme que procéder comme je voulais le faire est d'une exécution très lente (c'est même un euphémisme !).

Pour contourner le problème, as tu une solutions ?

D'avance merci.

Philippe
 
Re : Vlookup

Bonsoir,

Alors, trouver une (parfois plus) erreur(s) dans un bout de code, c'est encore faisable, mais proposer une solution sans voir le fichier et sans connaître les tenants et aboutissants, ça tient de la gageure ... que je suis incapable de relever 🙄 ... La seule chose que je pourrais dire à ce stade, c'est: qu'est-ce qui t'empêche d'inscrire les formules "normalement"?
 
Re : Vlookup

Bonsoir,

Alors, trouver une (parfois plus) erreur(s) dans un bout de code, c'est encore faisable, mais proposer une solution sans voir le fichier et sans connaître les tenants et aboutissants, ça tient de la gageure ... que je suis incapable de relever 🙄 ... La seule chose que je pourrais dire à ce stade, c'est: qu'est-ce qui t'empêche d'inscrire les formules "normalement"?

Bonjour,

Effectivement, je pense que la solution va plutôt résider dans l'utilisation de de formules "normales".

En ce qui concerne ma question, je parlais du sujet en mode "abstraction", c'est à dire : "Quelle est la meilleure solution en programmation, lorsque l'on recherche une valeur dans une feuille B à l'aide d'un pivot se trouvant à la fois sur la feuille B et A sans passer par une Formula.Vlookup ?" J'espère avoir été plus clair...

D'avance merci pour vos proposition et excellent week end.

Philippe

NB : Par exemple, mettre ma table de correspondance en matrice et la travaillée en programmation ? Je sais comprendre le concept mais j'ai du mal à le mettre en musique...
 
Re : Vlookup

Bonjour Philippe,

Je ne suis certainement pas le mieux placé pour donner un avis. Cependant, donner une réponse "in abstracto" me paraît difficile: un certain nombre d'éléments vont intervenir, le plus évident étant sans doute le volume de données à traiter ...

Si tu t'ennuies pendant certaines soirées d'hiver, j'ai retrouvé cette discussion (fin 2009) où quelques membres éminents (parmi lesquels je ne me compte pas) du forum avaient comparé différentes solutions pour faire des recherches et comparer des listes.

A plus tard,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
0
Affichages
623
  • Question Question
Microsoft 365 Programme trop lent
Réponses
12
Affichages
1 K
Réponses
1
Affichages
1 K
J
Réponses
22
Affichages
3 K
jui42
J
S
Réponses
6
Affichages
2 K
soNZOOO
S
Réponses
3
Affichages
1 K
N
Réponses
10
Affichages
5 K
Nicocotte125
N
G
  • Question Question
Réponses
3
Affichages
2 K
V
Réponses
2
Affichages
2 K
vynmarius
V
  • Question Question
Réponses
1
Affichages
1 K
Retour