Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Faire une recherche d'une partie d'une cellule en fonction d'une table

niiiiiiiiiico

XLDnaute Occasionnel
Bonjour à tous,

Dans une colonne, j'ai plusieurs CP/villes et je souhaite extraire les couples cp/villes dont le CP est présent sur un autre onglet. En PJ, j'ai mis manuellement en rose ce que je souhaiterais obtenir

Merci pour votre aide

edit : ce que je souhaite obtenir de manière automatique, ce sont les cellules en M et N
 

Pièces jointes

  • calcul (2).xlsx
    12 KB · Affichages: 46
Dernière édition:

CISCO

XLDnaute Barbatruc
Bonsoir

Une possibilité en pièce jointe pour la cellule M3. Ce n'est pas idéal car :
* La formule (matricielle, donc à valider avec Ctrl+maj+entrer) est vraiment lourde
* Elle ne peut afficher que 8 CP au max (On peut rallonger la formule pour en obtenir plus, mais ce n'est vraiment pas très fin)
* Elle affiche aussi le nom des villes correspondantes que si ceux-ci sont rajoutés dans la seconde feuille (dans E3:E8).

@ plus

P.S : "j'ai mis manuellement en rose", ou plutôt "j'ai mis manuellement dans une cellule en rose"
 

Pièces jointes

  • calcul (2).xlsx
    17.8 KB · Affichages: 36
Dernière édition:

klin89

XLDnaute Accro
Bonsoir à tous,

Pour t'aider
Résultat feuille "data 1" en M3 et N3
VB:
Option Explicit
Sub test()
Dim dico As Object, r As Range, cp As String, cf As String, e
    Set dico = CreateObject("Scripting.Dictionary")
    dico.CompareMode = 1
    With Sheets("CP zone acp")
        For Each r In .Range("d3", .Range("d" & .Rows.Count).End(xlUp))
            dico(CStr(r.Value)) = Empty
        Next
    End With
    With Sheets("data 1")
        For Each e In Split(.Cells(3, 4).Value, Chr(10))
            cp = Left(e, 5): cf = Right(e, Len(e) - 6)
            If dico.exists(cp) Then
                .Cells(3, 13).Value = .Cells(3, 13).Value & IIf(.Cells(3, 13).Value = Empty, Empty, Chr(10)) & e
            Else
                .Cells(3, 14).Value = .Cells(3, 14).Value & IIf(.Cells(3, 14).Value = Empty, Empty, Chr(10)) & e
            End If
        Next
    End With
End Sub
klin89
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…