Recherche de plusieurs valeurs en faction de plusieurs critères
Résolu/Fermé
Ielosub
Messages postés
4
Date d'inscription
jeudi 13 octobre 2016
Statut
Membre
Dernière intervention
7 novembre 2016
-
4 nov. 2016 à 16:32
Ielosub Messages postés 4 Date d'inscription jeudi 13 octobre 2016 Statut Membre Dernière intervention 7 novembre 2016 - 7 nov. 2016 à 16:59
Ielosub Messages postés 4 Date d'inscription jeudi 13 octobre 2016 Statut Membre Dernière intervention 7 novembre 2016 - 7 nov. 2016 à 16:59
A voir également:
- Recherche de plusieurs valeurs en faction de plusieurs critères
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Recherche de musique - Guide
- Recherche adresse - Guide
- Formule excel si compris entre plusieurs valeurs ✓ - Forum Excel
- Moteur de recherche 1fichier ✓ - Forum Réseaux sociaux
1 réponse
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
4 nov. 2016 à 19:16
4 nov. 2016 à 19:16
Bonsoir Ielosub (Marine ?) , bonsoir le forum,
Le code ci-dessous considère que les connées se trouvent dans le premier onglet de chaque classeur et qu'elles commencent dans la cellule A1. Sinon il faudra adapter...
Tu dois le placer dans le classeur A qui, par conséquent, prendra l'extension xlsm si tu as une version d'Excel après 2003.
il faut que les deux classeurs soient au préalablement ouverts avant de lancer la macro.
Vérifie et/ou adapte les noms des classeurs...
Le code:
Le code ci-dessous considère que les connées se trouvent dans le premier onglet de chaque classeur et qu'elles commencent dans la cellule A1. Sinon il faudra adapter...
Tu dois le placer dans le classeur A qui, par conséquent, prendra l'extension xlsm si tu as une version d'Excel après 2003.
il faut que les deux classeurs soient au préalablement ouverts avant de lancer la macro.
Vérifie et/ou adapte les noms des classeurs...
Le code:
Sub Macro1() Dim CS As Workbook 'déclare la variable CS (Classeur Source) Dim OS As Worksheet 'déclare la variable OS (Onglet Source) Dim CD As Workbook 'déclare la variable CD (Classeur Destination) Dim OD As Worksheet 'déclare la variable OD (Onglet Destination) Dim TS As Variant 'déclare la variable TS (Tableau Source) Dim TD As Variant 'déclare la variable TD (Tableau Detination) Dim I As Long 'déclare la variable I (Incrément) Dim J As Long 'déclare la variable J (incrément) Dim DEST As Range 'déclare la variable DEST (crellule de DESTination) Set CS = Workbooks("Classeur B.xlsx") 'définit le classeur source CS (à adapter) Set OS = CS.Worksheets(1) 'définit l'onglet source OS (à adapter) Set CD = Workbooks("Classeur A.xlsm") 'définit le classeur destination CD (à adapter) Set OD = CD.Worksheets(1) 'définit l'onglet destination OD (à adapter) TS = OS.Range("A1").CurrentRegion 'définit le tableau source TS TD = OD.Range("A1").CurrentRegion 'définit le tableau destination TD For I = 1 To UBound(TD, 1) 'boucle 1 : sur toutes les lignes I du tableau destination TD For J = 1 To UBound(TS, 1) 'boucle 2 : sur toutes les lignes J du tableau source TS If TD(I, 1) & TD(I, 2) = TS(J, 1) & TS(J, 2) Then 'condition : si la donnée ligne I colonne 1 concatenée avec la donnée lige I colonne 2 de TD est égale 'à la donnée ligne J colonne 1 concaténée à la donnée ligne J colonne 2 de TS Set DEST = OD.Cells(I, Application.Columns.Count).End(xlToLeft).Offset(0, 1) 'définit la cellule de destination DEST DEST.Value = TS(J, 3) 'renvoie dans DEST la valeur de la donnée ligne J colonne 3 de TS End If 'fin de la condition Next J 'prochaine ligne de la boucle 2 Next I 'prochaine ligne de la boucle 1 End Sub
7 nov. 2016 à 16:59