Extraire les valeurs identiques en fonction de 2 colonnes
Résolu/Fermé
vernioz
-
Modifié par vernioz le 28/10/2014 à 11:06
pijaku
pijaku
- Messages postés
- 12257
- Date d'inscription
- jeudi 15 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 3 septembre 2021
A voir également:
- Excel recherche valeur identique colonne
- Recherchev plusieurs valeurs identiques - Meilleures réponses
- Excel recherche valeur identique dans deux colonnes - Meilleures réponses
- Recherchev avec des valeurs identique - Forum - Bases de données
- Extraire les valeurs identiques en fonction de 2 colonnes ✓ - Forum - Excel
- Formule: cherche valeur dans colonne et retourne valeur associée ✓ - Forum - Excel
- Tri chiffre identiques dans 2 colonnes Excel ✓ - Forum - Excel
- Comparer 2 listes de 2 colonnes sur excel ✓ - Forum - Excel
4 réponses
pijaku
28 oct. 2014 à 11:45
- Messages postés
- 12257
- Date d'inscription
- jeudi 15 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 3 septembre 2021
28 oct. 2014 à 11:45
Bon.
Par une macro, fonction personnalisée :
création :
Depuis le classeur concerné :
1- Alt + F11
2- Insertion/Module
3- Copiez-collez ce code :
4- fermez la fenêtre VBA
Utilisation :
Depuis votre feuille, dans la cellule C1, saisir la formule :
=Fourn_By_Site(A1:A9;"Site A";"Site B";LIGNE())
Formule à étirer vers le bas de la colonne C.
Amélioration possible :
Empêcher l'affichage des #VALEURS le cas échéant...
Par une macro, fonction personnalisée :
création :
Depuis le classeur concerné :
1- Alt + F11
2- Insertion/Module
3- Copiez-collez ce code :
Function Fourn_By_Site(Plage As Range, Site1 As String, Site2 As String, Rang As Integer) As String Dim Cel As Range, Liste() As String, dico As Object, i As Long Set dico = CreateObject("Scripting.Dictionary") For Each Cel In Plage If UCase(Cel.Offset(0, 1)) = UCase(Site1) Or UCase(Cel.Offset(0, 1)) = UCase(Site2) Then If Not dico.Exists(Cel.Value) Then dico(Cel.Value) = UCase(Cel.Offset(0, 1)) ElseIf dico(Cel.Value) <> UCase(Cel.Offset(0, 1)) Then ReDim Preserve Liste(i) Liste(i) = Cel.Value i = i + 1 End If End If Next Fourn_By_Site = Liste(Rang - 1) End Function
4- fermez la fenêtre VBA
Utilisation :
Depuis votre feuille, dans la cellule C1, saisir la formule :
=Fourn_By_Site(A1:A9;"Site A";"Site B";LIGNE())
Formule à étirer vers le bas de la colonne C.
Amélioration possible :
Empêcher l'affichage des #VALEURS le cas échéant...
pijaku
28 oct. 2014 à 11:03
- Messages postés
- 12257
- Date d'inscription
- jeudi 15 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 3 septembre 2021
28 oct. 2014 à 11:03
Bonjour,
Dans ton exemple, le Fournisseur 3 n'est pas présent sur le Site B. Or tu souhaites le retrouver.
Erreur ?
Ou incompréhension de ma part...
Dans ton exemple, le Fournisseur 3 n'est pas présent sur le Site B. Or tu souhaites le retrouver.
Erreur ?
Ou incompréhension de ma part...
Merci du coup de main Pijaku, ça marche parfaitement :)
pijaku
28 oct. 2014 à 12:09
- Messages postés
- 12257
- Date d'inscription
- jeudi 15 mai 2008
- Statut
- Modérateur
- Dernière intervention
- 3 septembre 2021
28 oct. 2014 à 12:09
De rien.
A+
A+