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

Microsoft 365 recherche d'un élément dans une plage

  • Initiateur de la discussion Initiateur de la discussion Maxou60
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Maxou60

XLDnaute Nouveau
J'ai une base de données....Je souhaite faire correspondre la colonne cat au reste du document. En Sachant que chaque catégorie dans la colonne xxx correspond à un élément de la colonne xxx.

En bref je souhaite compléter la colonne cat avec l’élément correspondant dans tout le document

Je vous remercie

Amicalement
 

Pièces jointes

Bonjour @Maxou60 , @Staple1600 , @alain.pierrephie

@Maxou60 : Bien que nouveau, tu as 22 messages à ton actif. Tu devrais donc connaitre un minimum de bonne pratique de ce forum, à savoir un petit "Bonjour/Bonsoir" en liminaire de tes messages. Je partage l'avis de nos 2 amis.

Je ne sais pas si j'ai bien compris ton problème. Je te propose le code ci-dessous à copier/coller dans un module standard et enregistrer le fichier au format xlsm, puis exécuter le code.
VB:
Option Explicit

Sub completer_Cat()
    Dim dl As Long, d As Object, i As Long, cle, Rng As Range, c As Range
    Set d = CreateObject("scripting.dictionary")
    With Feuil1    'à adapter
        If Feuil1.AutoFilterMode = True Then Feuil1.AutoFilter.ShowAllData
        dl = .Range("A" & Rows.Count).End(xlUp).Row
        Set Rng = .Range("A2:D" & dl)

        For i = 2 To dl
            If .Range("B" & i).Offset(0, 2) <> "" Then
                d(.Range("B" & i)) = .Range("B" & i).Offset(0, 2)
            End If
        Next i

        If d.Count > 0 Then
            For Each cle In d.keys
                Rng.AutoFilter Field:=2, Criteria1:=cle
                For Each c In Rng.SpecialCells(xlCellTypeVisible)
                    If Cells(c.Row, 4) = "" Then Cells(c.Row, 4).Value = d.Item(cle)
                Next c
            Next cle
        End If
        Rng.AutoFilter Field:=2
    End With

    MsgBox "Traitement terminé!", vbInformation + vbOKOnly, "FIN TRAITEMENT"
    Set Rng = Nothing: Set d = Nothing
End Sub

Bon week-end.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
161
Réponses
40
Affichages
1 K
Réponses
15
Affichages
658
Réponses
6
Affichages
206
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…