Rechercher valeur dans une feuille excel non triée dans un autre
Zoub
-
Morgothal Messages postés 1236 Date d'inscription Statut Membre Dernière intervention -
Morgothal Messages postés 1236 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Avant tout je suis novice :-(.
Mon pbm est que j'ai une feuille excel avec des valeurs (uniques) en colonne A. J'ai un autre classeur avec potentiellement les mêmes valeurs uniques en colonne J. (les fichiers ne sont pas triés). Ce que je voudrais c'est une fonction ou macro qui permettrai de rechercher si la valeur du premier se trouve dans le second fichier et qu'excel me renvoi la valeur qui se trouve en colonne T de la ligne correspondante. (en sachant que la colonne T contient une formule mais j'ai besoin que de la valeur)
Avant tout je suis novice :-(.
Mon pbm est que j'ai une feuille excel avec des valeurs (uniques) en colonne A. J'ai un autre classeur avec potentiellement les mêmes valeurs uniques en colonne J. (les fichiers ne sont pas triés). Ce que je voudrais c'est une fonction ou macro qui permettrai de rechercher si la valeur du premier se trouve dans le second fichier et qu'excel me renvoi la valeur qui se trouve en colonne T de la ligne correspondante. (en sachant que la colonne T contient une formule mais j'ai besoin que de la valeur)
A voir également:
- Rechercher valeur dans une feuille excel non triée dans un autre
- Liste déroulante excel - Guide
- Feuille de pointage excel - Télécharger - Tableur
- Déplacer une colonne excel - Guide
- Rechercher ou saisir une url - Guide
- Word et excel gratuit - Guide
6 réponses
Bonjour,
excusez l'incruste
Macro à installer dans le classeur B
la maquette de W
https://www.cjoint.com/?3Admv54ReqF
Michel
excusez l'incruste
Macro à installer dans le classeur B
Option Explicit Sub chercher_T_si() Dim Derlig As Integer, Lig As integet Dim Dico As Object Dim T_colA(), T_colE() Application.ScreenUpdating = False With Sheets(1) Derlig = .Columns("J").Find("*", , , , , xlPrevious).Row Set Dico = CreateObject("scripting.dictionary") For Lig = 1 To Derlig Dico.Add .Cells(Lig, "J").Value, .Cells(Lig, "T") Next End With Workbooks.Open Filename:="D:\documents\classeurA.xls" 'A ADAPTER With Sheets(1) .Columns("E").Clear Derlig = .Columns("A").Find("*", , , , , xlPrevious).Row T_colA = Application.Transpose(.Range("A1:A" & Derlig).Value) T_colE = Application.Transpose(.Range("E1:E" & Derlig).Value) For Lig = 1 To Derlig If Dico.exists(T_colA(Lig)) Then T_colE(Lig) = Dico.Item(T_colA(Lig)) Next With .Range("E1:E" & Derlig) .Value = Application.Transpose(T_colE) .Borders.Weight = xlThin End With End With End Sub
la maquette de W
https://www.cjoint.com/?3Admv54ReqF
Michel
Bonjour,
Que signifie "avec potentiellement les mêmes valeurs uniques en colonne J" ?
Si j'ai bien compris, on a des valeurs uniques dans la colonne A d'une feuille d'un classeur A,
on a peut-être les mêmes valeurs potentiellement uniques dans la colonne J d'une feuille d'un classeur B,
et il faudrait renvoyer la valeur de la colonne T du classeur B si et seulement si la valeur de la colonne J est aussi dans la colonne A de la feuille du classeur B ?
Que signifie "avec potentiellement les mêmes valeurs uniques en colonne J" ?
Si j'ai bien compris, on a des valeurs uniques dans la colonne A d'une feuille d'un classeur A,
on a peut-être les mêmes valeurs potentiellement uniques dans la colonne J d'une feuille d'un classeur B,
et il faudrait renvoyer la valeur de la colonne T du classeur B si et seulement si la valeur de la colonne J est aussi dans la colonne A de la feuille du classeur B ?
merci pour ta réponse express.
les valeurs en colonne J sont uniques également mais il se peut qu'on ne trouve pas une ou plusieurs valeurs du premier fichier dans le deuxieme. mais tu as bien cerné le probleme c'est bien ça. je ne peut pas le faire avec la fonction recherche car mes tableaux ne sont pas triés.
pS. "et il faudrait renvoyer la valeur de la colonne T du classeur B si et seulement si la valeur de la colonne J est aussi dans la colonne A de la feuille du classeur A ".
Merci bcp
Z
les valeurs en colonne J sont uniques également mais il se peut qu'on ne trouve pas une ou plusieurs valeurs du premier fichier dans le deuxieme. mais tu as bien cerné le probleme c'est bien ça. je ne peut pas le faire avec la fonction recherche car mes tableaux ne sont pas triés.
pS. "et il faudrait renvoyer la valeur de la colonne T du classeur B si et seulement si la valeur de la colonne J est aussi dans la colonne A de la feuille du classeur A ".
Merci bcp
Z
La valeur trouvée doit être renvoyée dans le Classeur A colonne E. mais pas sous forme de formule comme il est dans le classeur B mais en valeur.
Z
Z
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut les amis, dsl pour ce feedback tardif mais grosse aprem d'activité,
J'ai testé la macro de michel (merci d'ailleurs).
Erreur de compilation : type défini par l'utilisateur non défini. Euh c'est du chinois ou du czech ? :-D
Z
J'ai testé la macro de michel (merci d'ailleurs).
Erreur de compilation : type défini par l'utilisateur non défini. Euh c'est du chinois ou du czech ? :-D
Z
Ok pour interget
mais je viens de réessayer et ca marche
le classeur macro est le B et doit être le classeur actif et non le A :cela déclenche l'erreur 91
autrement dit: le classeur à l'écran avant de déclencher la macro est le classeur B
Ne pas oublier non plus d'adapter le chemin du classeur A
Workbooks.Open Filename:="D:\documents\classeurA.xls" 'A ADAPTER
mais je viens de réessayer et ca marche
le classeur macro est le B et doit être le classeur actif et non le A :cela déclenche l'erreur 91
autrement dit: le classeur à l'écran avant de déclencher la macro est le classeur B
Ne pas oublier non plus d'adapter le chemin du classeur A
Workbooks.Open Filename:="D:\documents\classeurA.xls" 'A ADAPTER
Salut les amis,
Alors, j'ai fait selon les recommandations de michel, ce que j'avais oublié de dire c'est que le fichier B contenait plusieurs onglets et l'onglet ou était les infos était en 5e position. Je l'ai déplacé en 1 et Msg erreur : erreur execution '457' : Cette clé est déjà associé a un élément de cette collection. une idée d'où ça peut venir ?
Z
Alors, j'ai fait selon les recommandations de michel, ce que j'avais oublié de dire c'est que le fichier B contenait plusieurs onglets et l'onglet ou était les infos était en 5e position. Je l'ai déplacé en 1 et Msg erreur : erreur execution '457' : Cette clé est déjà associé a un élément de cette collection. une idée d'où ça peut venir ?
Z
Bravo michel