VBA Recherche V d'une feuiile à une autre
tristan19
-
tristan19 -
tristan19 -
Bonjour,
Voilà j'ai besoin d'effectuer des recherche V en VBA d'un fichier vers un autre qui n'ont pas toujours le même nom. En effet, cette recherche doit être faite chaque mois sur différentes sociétés. J'ai trouver une macro qui depuis le fichier de base permet d'ouvrir le fichier qui va recevoir la donnée cependant après je ne sais pas trop comment faire pour que ma macro face une rechercheV entre ces deux fichier étant donné qu'ils n'auront pas toujours le même nom ni même emplacement :((((
Dim a As Variant, Nom As String
Application.ScreenUpdating = False
Nom = ActiveWorkbook.Name
ChDrive "C:" ' Choix du lecteur
ChDir "C:\" 'Choix du répertoire
a = Application.GetOpenFilename("fichier excel (*.xls), *.xls", _
, "Sélection de vos fichiers excel", , True)
Select Case TypeName(a)
Case Is = "Boolean"
Exit Sub
Case Else
For b = LBound(a) To UBound(a)
Workbooks.Open a(b)
Next
End Select
Application.ScreenUpdating = True
Workbooks(Nom).Activate
Voilà j'ai besoin d'effectuer des recherche V en VBA d'un fichier vers un autre qui n'ont pas toujours le même nom. En effet, cette recherche doit être faite chaque mois sur différentes sociétés. J'ai trouver une macro qui depuis le fichier de base permet d'ouvrir le fichier qui va recevoir la donnée cependant après je ne sais pas trop comment faire pour que ma macro face une rechercheV entre ces deux fichier étant donné qu'ils n'auront pas toujours le même nom ni même emplacement :((((
Dim a As Variant, Nom As String
Application.ScreenUpdating = False
Nom = ActiveWorkbook.Name
ChDrive "C:" ' Choix du lecteur
ChDir "C:\" 'Choix du répertoire
a = Application.GetOpenFilename("fichier excel (*.xls), *.xls", _
, "Sélection de vos fichiers excel", , True)
Select Case TypeName(a)
Case Is = "Boolean"
Exit Sub
Case Else
For b = LBound(a) To UBound(a)
Workbooks.Open a(b)
Next
End Select
Application.ScreenUpdating = True
Workbooks(Nom).Activate
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
- Hyper-v download - Télécharger - Divers Utilitaires
- Rechercher ou saisir une url - Guide
4 réponses
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 ??
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
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