Rechercher dans une chaine de caractère pour classer des factures par type

Bonjour,

Je cherche désespérément un moyen sur Excel pour m'éviter un travail fastidieux sur des centaines de lignes.

Plus précisément, j'ai un fichier de suivi comptable (un extrait joint dans la conversation) dont l'onglet compta regroupe un grand nombre de données sur des factures que je dois retraiter.

Je voudrais trouver un moyen pour qu'Excel trouve dans la chaine de caractère "libellé" un des numéros référencés dans la colonne A de l'onglet correspondance et s'il le trouve qu'il me reporte le texte figurant dans la colonne B correspondante.

Ex. dans le premier libellé, on voit qu'il est fait référence à un contrat numéro "19M153" et grâce à mon tableau de correspondance, je sais que "19M153" équivaut à de la maitrise d'œuvre. Je voudrais trouver une formule me permettant de reporter automatiquement dans la colonne B de l'onglet compta la correspondance à la maitrise d'œuvre.

Attention, le numéro de contrat ne fait malheureusement pas toujours exactement la même taille.

J'ai essayé pas mal de choses, je sens que je suis certainement pas loin mais je ne parviens pas à m'en sortir.

Quelqu'un aurait-il l'extrême gentillesse de ma dépanner ?

Merciiiiiii

Bonjour Mathilde2231 et

Une petite présentation ICI serait la bienvenue

Sinon par rapport à votre fichier,
je ne suis pas certain que votre patron serait content de savoir que vous postez ce genre de données

Je vous invite donc à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum et notamment :

  • Joignez (si possible) un fichier pour augmenter vos chances d'obtenir de l'aide en cliquant sur le bouton Fichier de l'éditeur. Si votre fichier est trop lourd ou contient des données personnelles, créez une version allégée de votre fichier avec juste assez d'informations pour permettre de comprendre votre problème. Dans tous les cas, ne postez JAMAIS de fichiers avec des informations personnelles ou confidentielles (cet utilitaire peut vous aider à les retirer).

Il suffit de 2 feuilles avec 2 lignes anonymisées pour comprendre la problématique

Merci de votre compréhension et de votre participation

Cordialement

Bonjour,

Bonjour Bruneau : Trop tard

C'est quoi un onglet compta ?

Pouvez-vous prendre un exemple en indiquant l'onglet et le résultat attendu sur une cellule B, car je vois que les colonnes B sont toutes remplies ?

Re,

Eric, je compte sur toi pour me signaler si le prochain fichier déposé contient des informations confidentielles ou personnelles

Bruneau,

Si je dois faire une réponse, le fichier sera transmis en message privé.

Bonjour,

J'avais téléchargé le fichier avant l'intervention de Bruno (mais je m'engage à le supprimer et ne pas l'utiliser à d'autres fins que la réponse ici)
Avec Excel 365, tester (en L2, par exemple)

=SIERREUR(INDEX(Correspondance!$B$1:$B$15;EQUIV(VRAI;ESTNUM(CHERCHE(Correspondance!$A$1:$A$15;C2));0));"NON")

Recopier ensuite vers le bas.

Sous Excel 2010, ça pourrait fonctionner (non-testé) à condition de valider (en L2) avec la combinaison Ctrl+Shift+Enter (des accolades devraient "encadrer" la formule ; recopier ensuite)

Bonjour,

A vous lire, je viens de comprendre que j'ai envoyé le mauvais fichier. Je ne sais comment. Mais voilà sans doute ce qui se passe quand on craque au bout de X heures sur une formule ... Bruno j'avais bien lu la charte et je l'avais même anticipé, c'est pour cela que je parlais d'extrait joint et non de fichier.

Mais pas d'inquiétudes car aucune donnée nucléaire ou qui permette de retrouver une entreprise, il faudrait croiser d'autres données qui sont dans un logiciel sécurisé. Et ce n'était déjà que ma base test sans toutes les données, en vrai c'est pire

Bon sinon j'avais bien préparé un fichier beaucoup plus simple et plus transmissible qui contenait un onglet "compta" !

Le voici

8suivi-compta.xlsx (20.29 Ko)

Et cette fois-ci avant d'envoyer j'ai fait un aperçu : la leçon est comprise !

Mathilde,

Tu as soldé ton message. La réponse d'U. Milité suffit-elle ?

Autre erreur de ma part je vais aller me coucher je crois.

Non son retour n'a pas résolu mon problème malheureusement.

Avant d'aller dormir, je tenais à vous dire merci car vous avez de la bonne volonté et vous êtes hyper réactif, c'est super à voir !

Bonsoir,

A tester, à mettre dans un module standard :

Function Typologie(ByVal LibelleATraiter As String) As String

Dim I As Integer
Dim AireTypo As Range

    Application.Volatile
    Typologie = ""
    Set AireTypo = Range("t_CodesTravaux[Codes]")
    For I = 1 To AireTypo.Count
        If InStr(1, LibelleATraiter, AireTypo(I), vbTextCompare) > 0 Then
          Typologie = AireTypo(I).Offset(0, 1)
          Exit For
        End If
    Next I
    Set AireTypo = Nothing

End Function

Bonjour à vous,

À regarder la fonction personnalisée d'Éric, il me semble qu'on a compris la même chose ... je ne sais donc pas pourquoi la proposition ne convenait pas ?

Un essai dans ton dernier fichier

Bonjour U.Milité et Eric Kergresse,

Tout d'abord un GRAND et ENORME merci pour votre réactivité et votre sagacité.

Sur le fond, je ne saurais dire s'il y a une équivalence entre vos deux solutions car j'atteins ici (et probablement même bien avant) mes limites sur l'outil et le raisonnement.

Merci encore pour tout.

Bon week end à vous deux et à tous

Rechercher des sujets similaires à "rechercher chaine caractere classer factures type"