RechercheV en parcourant un fichier

Bonjour,

j'ai fait une macro avec l'editeur pour la rechercheV ce qui me donne ce code:

Sub importdraft()

'je selectionne ma cellule

Range("F2").Select

'j'injecte ma formule

ActiveCell.FormulaR1C1 = _

"=IFERROR(VLOOKUP(RC[-1],'D:\Users\mimo\Desktop\draft vba\[donnees.xlsx]Sheet1'!C1:C3,3,FALSE),""NA"")"

'je duplique ma formule sur le reste des cellules de F2:F19

Range("F2").Select

Selection.AutoFill Destination:=Range("F2:F19")

Range("F2:F19").Select

End Sub

Question:

je voudrais utiliser la rechercheV dans une table matrice qui se trouve dans un classeur variable, donc j'ai rajouté ce code :

Nom_Fichier = Application.GetOpenFilename(, , "Choose your file") ==> ca me demande de parcourir l'emplacement du classeur. ensuite je selection mon classeur (dont le nom peut changer ==> appelant le ClasseurB).

maintenant je me demande comment faire introduire le nom de ce classeur dans la formule

ActiveCell.FormulaR1C1 = _

"=IFERROR(VLOOKUP(RC[-1],'D:\Users\mimo\Desktop\draft vba\[donnees.xlsx]Sheet1'!C1:C3,3,FALSE),""NA"")"

sachant que le classeur est maintenant ouvert et porte un nom comme on l'a appelé ClasseurB.

Merci pour votre aide.

Bonjour,

set twb=thisworkbook 'on mémorise le classeur en cours dans twb
nom_fichier = Application.GetOpenFilename(, , "Choose your file") ' ==> ca me demande de parcourir l'emplacement du classeur. ensuite je selection mon classeur (dont le nom peut changer ==> appelant le ClasseurB).

Set wbc = Workbooks.Open(nom_fichier) 'ouvrir le classeur

' on sélectionner la cellule qui doit contenir la formule avant l'exécution de cette instruction
'exemple
twb.range("D1").FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-1],'[" & wbc.Name & "]Sheet1'!C1:C3,3,FALSE),""NA"")"

Merci bien,

il ouvre le fichier, mais ca bloque exactement ici

twb.range("D1").FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-1],'[" & wbc.Name & "]Sheet1'!C1:C3,3,FALSE),""NA"")"

avec le message d'erreur:

Run-time error '438'

object doesn't support this property or method

Bonjour,

la variable twb ne pointe pas une feuille de calculs nécessaire à la propriété Range

Bonjour Marc,

j'avoue je ne te suit pas ! peux-tu etre plus claire.

Non je ne peux pas être plus claire mais je vais être plus clair :

pour comprendre, il suffit de consulter l'aide de la propriété Range pour voir à quel objet elle peut se rattacher …

Ou encore, tout aussi clair : voir dans le code à quel objet correspond la variable twb

puis vérifier dans son aide s'il dispose d'une propriété Range

Mais en clair je trouve la réponse plus claire dans mon précédent message, la solution y est clairement exprimée !

Respecter la hiérarchie objet :

Excel / classeur / feuille de calculs / cellule / méthode ou propriété …

Application / Workbook / Worksheet / Range - Cells / Copy - Value …


Hé Claire ! Tu peux me faire un café ? Merci, oui j'en ai besoin, c'est clair !

Quelle clairvoyance !

Au clair de la lune l'éclair éclaire l'éclaireur Claire, sise dans la clairière clairon à la main.

Bonsoir,

désolé municipum

j'ai oublié un nom de feuille dans le code.

set wsa=activesheet 'on mémorise la feuille active en cours dans wsa
nom_fichier = Application.GetOpenFilename(, , "Choose your file") ' ==> ca me demande de parcourir l'emplacement du classeur. ensuite je selection mon classeur (dont le nom peut changer ==> appelant le ClasseurB).

Set wbc = Workbooks.Open(nom_fichier) 'ouvrir le classeur

' on sélectionner la cellule qui doit contenir la formule avant l'exécution de cette instruction
'exemple
wsa.range("D1").FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-1],'[" & wbc.Name & "]Sheet1'!C1:C3,3,FALSE),""NA"")"

bonjour,

j'avoue pour une fois je me sens bloqué complètement. peut être besoin de repos. peut être mon FS est 200% !!!

ci-joint deux fichiers exemple.

comparaison.xlsx ==> la ou je dois mettre ma macro.

donnees.xlsx ==> le fichier que je dois parcourir ( le fameux ClasseurB).

en gros, je dois mettre ma formule dans comparaison, qui va chercher dans "donnees.xlsx" l'equivalent des donnees contenu dans la colonne "E" de "comparaison.xlsx" si oui, copier le contenu de la cellule equivalente de la colonne "C" dans "donnees.xlsx" et la mettre dans la cellule equivalente de la colonne "F" dans "comparaison.xlsx"

8donnees.xlsx (14.99 Ko)
9comparaison.xlsx (13.46 Ko)

Comme on n'a pas eu de nouvelles dans ton précédent sujet portant sur les mêmes fichiers joints, à quoi bon …

Edit : c'est bon, on en a eu depuis …

dsl Marc j'ai pas vu vos retour.

certe j'utilise le meme fichier, mais je voulais traiter aussi d'une autre maniere.

donc je me suis dit ne pas melanger les sujets et les suivre separement.

pour vous, ca va dans le meme sens. mais pour moi ici, ca a une grande difference.

si t'arrive a mettre la main sur celui-ci aussi j'en serai aussi ravi .

Merci pour vos retour.

bon,

je crois qu'on a bloqué ce sujet

Et t'as testé au moins la correction de h2so4, t'en es où ?

oui, ça été teste, mais fonctionne pas.

Poste ta formule qui fonctionne manuellement dans la feuille de calculs

et ton code actuel entre balises (il y a une icône dédiée dans l'éditeur !) …

Rechercher des sujets similaires à "recherchev parcourant fichier"