A voir également:
- VBA Recherche V d'une feuiile à une autre
- Comment faire une recherche à partir d'une photo - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Je recherche une chanson - Guide
- Rechercher ou saisir une url - Guide
- Hyper v download - Télécharger - Divers Utilitaires
4 réponses
Krysstof
Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
294
9 août 2010 à 14:53
9 août 2010 à 14:53
voila un bout de code qui va ouvrir 2 fichier par la fenetre d'ouverture manuelle et stocker les 2 classeurs dans 2 variable
ensuite tu faut utiliser ces 2 variables pour alimenter les cellules
si tu dois alimenter dans le 1er classeur avec des références au 2eme
lig = n° de la ligne en cours
colresultat = N° colone ou tu veux avoir le résultat de la recherche
colrecherche = N° de colonne de la valeur à chercher
indexcol = n° de la colonne du classeur 2 a rappatrier
cette fonction est a mettre dans une boucle qui va tourner sur toutes les ligne du classeur1 et va stocker directement le résultat de la rechercheV sans faire apparaitre la formule RechercheV
si tu veux faire appairaitre la formule c'est un peut différent.
dim classeur1, classeur2 as workbook 'ouverture du 1er fichier Application.GetOpenFilename("fichier excel (*.xls), *.xls", _ , "Sélection de vos fichiers excel", , True) set classeur1=ActiveWorkbook 'ouverture du 2eme fichier Application.GetOpenFilename("fichier excel (*.xls), *.xls", _ , "Sélection de vos fichiers excel", , True) set classeur2=ActiveWorkbook
ensuite tu faut utiliser ces 2 variables pour alimenter les cellules
si tu dois alimenter dans le 1er classeur avec des références au 2eme
classeur1.sheets("nom de la feuille").cells(lig,colresultat).value = vlookup(classeur2.range(taplage), _ classeur1.sheets("nom de la feuille").cells(lig,colrecherche), _ indexcol, false)
lig = n° de la ligne en cours
colresultat = N° colone ou tu veux avoir le résultat de la recherche
colrecherche = N° de colonne de la valeur à chercher
indexcol = n° de la colonne du classeur 2 a rappatrier
cette fonction est a mettre dans une boucle qui va tourner sur toutes les ligne du classeur1 et va stocker directement le résultat de la rechercheV sans faire apparaitre la formule RechercheV
si tu veux faire appairaitre la formule c'est un peut différent.
Merci pour cette réponse cependant j'ai un message me disant pour Lookup Sub ou fonction non définie ??
Krysstof
Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
294
9 août 2010 à 15:18
9 août 2010 à 15:18
vlookup pas lookup (ca veut dire rechercheV en anglais)
Krysstof
Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
294
9 août 2010 à 15:21
9 août 2010 à 15:21
ah j'ai rien dit...
Application.WorksheetFunction.Vlookup(....)
c'est pas une fonction vba directe, faut préciser Application.WorksheetFunction avant
Application.WorksheetFunction.Vlookup(....)
c'est pas une fonction vba directe, faut préciser Application.WorksheetFunction avant
AIE bon cela ne marche pas je vais regarder why il me mets variable objet ou variable bloc with non definie donc j'ai changer classeur 1 et 2 et mit à la place VARIANT now j'arrive à passer les étapes mais il bugges sur
classeur1.Sheets("bilan").Cells(9, E).Value = Application.WorksheetFunction.VLookup(classeur2.Range("D:E"), _
classeur1.Sheets("bilan").Cells(9, E), _
E, False)
Et il ne m'ouvre pas les feuilles
cdt
classeur1.Sheets("bilan").Cells(9, E).Value = Application.WorksheetFunction.VLookup(classeur2.Range("D:E"), _
classeur1.Sheets("bilan").Cells(9, E), _
E, False)
Et il ne m'ouvre pas les feuilles
cdt
Krysstof
Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
294
9 août 2010 à 15:43
9 août 2010 à 15:43
ah oui, j'avais pas testé un truc...
déja n'utilise pas variant pour classeur1 et classeur2
ensuite, la fonction
Application.GetOpenFilename("fichier excel (*.xls), *.xls", _
, "Sélection de vos fichiers excel", , True)
renvoie un tableau de chaine, pas un classeur, j'avais mal lu
pour renvoyer une chaine simple il faut mettre
Application.GetOpenFilename("fichier excel (*.xls), *.xls", _
, "Sélection de vos fichiers excel", , false)
ensuite encore, cette fonctionne n'ouvre pas le fichier... donc le code ressemble a ca
déja n'utilise pas variant pour classeur1 et classeur2
ensuite, la fonction
Application.GetOpenFilename("fichier excel (*.xls), *.xls", _
, "Sélection de vos fichiers excel", , True)
renvoie un tableau de chaine, pas un classeur, j'avais mal lu
pour renvoyer une chaine simple il faut mettre
Application.GetOpenFilename("fichier excel (*.xls), *.xls", _
, "Sélection de vos fichiers excel", , false)
ensuite encore, cette fonctionne n'ouvre pas le fichier... donc le code ressemble a ca
dim classeur1, classeur2 as workbook dim filename as variant filename = Application.GetOpenFilename("fichier excel (*.xls), *.xls", _ , "Sélection de vos fichiers excel", , false) set classeur1 = workbooks.open(filename) filename = Application.GetOpenFilename("fichier excel (*.xls), *.xls", _ , "Sélection de vos fichiers excel", , false) set classeur2 = workbooks.open(filename)
Cool merci cela focntionne bon dans la suite je suis un boulet le vllookup ne fonctionne pas je mets
je pense mettre mal les données mais je ne sais pas ou
Tu m'avias mis
'ensuite tu faut utiliser ces 2 variables pour alimenter les cellules _
si tu dois alimenter dans le 1er classeur avec des références au 2eme'
Donc premiere ligne je me positionne sur la cellule mais après ?? comprend pas la formule parrapport a la classiqu excel
classeur1.Sheets("bilan").Cells(9, 5).Value = Application.WorksheetFunction.VLookup(classeur2.Range("D9"), _
classeur1.Sheets("bilan").Cells(D9 :E726), _
2, False)
Merci par avance de ton aide
je pense mettre mal les données mais je ne sais pas ou
Tu m'avias mis
'ensuite tu faut utiliser ces 2 variables pour alimenter les cellules _
si tu dois alimenter dans le 1er classeur avec des références au 2eme'
Donc premiere ligne je me positionne sur la cellule mais après ?? comprend pas la formule parrapport a la classiqu excel
classeur1.Sheets("bilan").Cells(9, 5).Value = Application.WorksheetFunction.VLookup(classeur2.Range("D9"), _
classeur1.Sheets("bilan").Cells(D9 :E726), _
2, False)
Merci par avance de ton aide