Extraire les valeurs identiques en fonction de 2 colonnes
Résolu/Fermé
vernioz
-
Modifié par vernioz le 28/10/2014 à 11:06
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 28 oct. 2014 à 12:09
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 28 oct. 2014 à 12:09
A voir également:
- Excel recherche valeur identique dans deux colonnes
- Comment faire deux colonnes indépendantes dans word - Guide
- Déplacer une colonne excel - Guide
- Classer par ordre alphabétique excel plusieurs colonnes - Guide
- Liste déroulante excel - Guide
- Formule moyenne excel plusieurs colonnes - Guide
4 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 751
28 oct. 2014 à 11:45
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...