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

XL 2019 Catégorie par mots clef

seb308

XLDnaute Nouveau
Bonjour,

j'ai un tableau Excel, qui me permet de faire mes compte bancaire, avec des catégorie en fonction des dépense effectuer.

Exemple: quand je vais faire mes course a Leclerc, je choisi, manuellement, d'attribuer la catégorie "course" a ma dépasse.

Je voudrais automatisé cela, sans macro (que je ne métrise pas)

En pièce jointe, un extrais de mon document, car un onglet "liste déroulante", dans cette anglet, en jaune, une ébauche de catégorie a automatisé.
Le bute, est d'automatisé l'attribution de catégorie, dans la colonne C de l'onglet "compte"

Merci à vous
 

Pièces jointes

  • Compte banquaire.xlsx
    16 KB · Affichages: 11

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Seb, et bienvenu sur XLD,
En formules, ça va pas être coton,... si c'est faisable.
Alors en attendant un bon samaritain, un essai en PJ avec ... du code VBA.
Ca pourra toujours servir à de futurs lecteurs.
La catégorie s'inscrit dès qu'on écrit quelque chose en colonne D, c'est automatique.
Avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub                                   ' Si plusieurs cellules sélectionnées, on sort
    If Not Intersect(Target, [D:D]) Is Nothing Then                     ' Si cellule cliquée est en colonne D
        Dim DL%, i%, Cat
        DL = Sheets("liste déroulante").Range("E65500").End(xlUp).Row   ' Calcule dernière cellule de la liste déroulante
        Cat = Sheets("liste déroulante").Range("E2:F" & DL)             ' On met la liste dans un tableau pour aller plus vite
        For i = 1 To UBound(Cat)                                        ' Pour toutes les catégories
            If Cat(i, 2) <> "" Then                                     ' Si pas de mot clé, on ignore
                If LCase(Target) Like "*" & LCase(Cat(i, 2)) & "*" Then ' Si mot clé présent dans la cellule cliquée
                    Cells(Target.Row, "C") = Cat(i, 1)                  ' On met la catégorie en colonne C
                    Exit Sub                                            ' Et on sort
                End If
            End If
        Next i
    End If
End Sub
 

Pièces jointes

  • Compte banquaire.xlsm
    22.7 KB · Affichages: 11

Discussions similaires

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