Excel 2007 VBA: RechercheV
Résolu
Eaheru
Messages postés
197
Date d'inscription
Statut
Membre
Dernière intervention
-
Eaheru Messages postés 197 Date d'inscription Statut Membre Dernière intervention -
Eaheru Messages postés 197 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Excel 2007 VBA: RechercheV
- Save as pdf office 2007 - Télécharger - Bureautique
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
6 réponses
Bonjour,
Un petit exemple à adapter:
;o)
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Un petit exemple à adapter:
Private Const fich2 = "D:\CCM\temp\data\test2" Sub searchDonnees() Dim wk2 As Workbook Dim ws1 As Worksheet Dim ws2 As Worksheet Dim derlig1 As Long Dim derlig2 As Long Dim cel1 Dim cel2 Set wk2 = Workbooks.Open(fich2) Set ws2 = wk2.Worksheets(1) derlig2 = ws2.Range("N65536").End(xlUp).Row Set ws1 = ThisWorkbook.Worksheets(1) derlig1 = ws1.Range("BK65536").End(xlUp).Row For Each cel1 In ws1.Range("BK2:BK" & derlig1) For Each cel2 In ws2.Range("N2:N" & derlig2) If cel1.Value = cel2.Value Then ws1.Range("BN" & cel1.Row).Value = ws2.Range("L" & cel2.Row).Value End If Next cel2 Next cel1 Set wk2 = Nothing Set ws2 = Nothing Set ws1 = Nothing End Sub
;o)
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Pour simplifier, je vais copier la feuil1 de chaque fichier dans un troisième fichier.
Ainsi, la rechercheV ne se fera qu'entre la feuil1 et la Feuil2 du meme fichier.
quelqu'un a une idée sur la fonction de recherche ?
Ainsi, la rechercheV ne se fera qu'entre la feuil1 et la Feuil2 du meme fichier.
quelqu'un a une idée sur la fonction de recherche ?
Alors, voila le résultat :
J'ai inséré cette macro dans un module et je l'appelle après la création du nouveau fichier contenant les 2 onglets à traiter.
J'ai modifié le chemin + fichier pour l'expression "Private Const fich2"
Et après l'exécution de la macro de creation du fichier, plus rien ne se passe.
Je dois donc rater quelque chose quelque part, mais je ne vois pas quoi ... :/
J'ai inséré cette macro dans un module et je l'appelle après la création du nouveau fichier contenant les 2 onglets à traiter.
J'ai modifié le chemin + fichier pour l'expression "Private Const fich2"
Et après l'exécution de la macro de creation du fichier, plus rien ne se passe.
Je dois donc rater quelque chose quelque part, mais je ne vois pas quoi ... :/
Dans l'exemple que j'ai donné, la procédure est dans le fichier supposé être "test1".
Si la macro est dans un classeur tiers, il faut ajouter ceci dans la procédure :
et remplacer :
par
Dis moi si c'est ça.
;o)
Si la macro est dans un classeur tiers, il faut ajouter ceci dans la procédure :
Private Const fich1 = "C:\temp\data\test1.xls" ... ... Dim wk1 As Workbook ... Set wk1 = Workbooks.open(fich1) ....
et remplacer :
Set ws1 = ThisWorkbook.Worksheets(1)
par
Set ws1 = wk1.Worksheets(1)
Dis moi si c'est ça.
;o)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Encore merci de ce retour rapide.
Je viens de tester, il se passe 1 ou 2s ou on a l'impression que ça travaille, mais au final rien n'est fait.
Je te donne le contexte :
j'ai un fichier tiers qui se nomme "rechercheV.xlsm" dans lequel je travaille sur cette macro.
le déroulé est comme suit :
- Ouvrir le fichier "test1" et le sauvegarder en fichier "test3"
- Ajouter un onglet (2) au fichier "test3"
- Ouvrir le fichier "test2" et copie les cellules de la "feuil1" dans les cellules de la feuil2 du fichier "test3"
- fermer les fichiers "test1" et "test2"
Dans le fichier "test3" (toujours ouvert normalement).
- sur l'onglet "feuil1", lire la valeur de la colonne "BK" (qui ne peut pas etre triée) pour la ligne 2
- Regarder dans la colonne "N" de l'onglet "feuil2" si cette valeur est présente
- Si la valeur est présente, lire la valeur de la colonne "L" de la ligne concernée (feuil2 toujours) et l'écrire dans la colonne "BN" de la ligne concernée (pas triée non plus), lue en début de boucle (dans l'onglet "feuil1")
- passer à la ligne suivante jusqu'au la dernière ligne.
je regarde de mon coté si je vois ce qui bloque. :)
Je viens de tester, il se passe 1 ou 2s ou on a l'impression que ça travaille, mais au final rien n'est fait.
Je te donne le contexte :
j'ai un fichier tiers qui se nomme "rechercheV.xlsm" dans lequel je travaille sur cette macro.
le déroulé est comme suit :
- Ouvrir le fichier "test1" et le sauvegarder en fichier "test3"
- Ajouter un onglet (2) au fichier "test3"
- Ouvrir le fichier "test2" et copie les cellules de la "feuil1" dans les cellules de la feuil2 du fichier "test3"
- fermer les fichiers "test1" et "test2"
Dans le fichier "test3" (toujours ouvert normalement).
- sur l'onglet "feuil1", lire la valeur de la colonne "BK" (qui ne peut pas etre triée) pour la ligne 2
- Regarder dans la colonne "N" de l'onglet "feuil2" si cette valeur est présente
- Si la valeur est présente, lire la valeur de la colonne "L" de la ligne concernée (feuil2 toujours) et l'écrire dans la colonne "BN" de la ligne concernée (pas triée non plus), lue en début de boucle (dans l'onglet "feuil1")
- passer à la ligne suivante jusqu'au la dernière ligne.
je regarde de mon coté si je vois ce qui bloque. :)
Alors j'ai tenté de repasser sur 2 fichiers et ca tourne pour le moment.
Le premier problème venait donc de mon changement de stratégie (2 onglets d'un nouveau fichier plutôt que 2 fichiers).
J'attends la fin pour voir comment ça se concrétise :)
Est il possible d'adapter cette macro pour un fonctionnement tel que préciser au dessus ?
Le premier problème venait donc de mon changement de stratégie (2 onglets d'un nouveau fichier plutôt que 2 fichiers).
J'attends la fin pour voir comment ça se concrétise :)
Est il possible d'adapter cette macro pour un fonctionnement tel que préciser au dessus ?