Bonjour à tous,
Après plusieurs jours de galère je m'oriente vers vous car je n'ai toujours pas réussit à résoudre mon soucis (qui est enfaite plusieurs soucis mais rien de grave).
Voila, je possède une base de donnée avec des clients (une soixantaine) qui doivent respecter une hiérarchie du "point de livraison", c'est à dire que pour que ce "point de livraison" soit valable (pour mes 60 clients) il doit être composé du nom du point de livraison (dans mon exemple ci dessous auchan) + la commune de livraison, pour au final donné un point de livraison appelé "AUCHAN STRASBOURG" si la livraison est à strasbourg.
j'ai un extrait de données d'une période de 1 mois avec énormément de clients (150/200) qui peuvent ou non être présent dans ma base de donnée.
Le but est de mettre en évidence une donnée si celle ci n'est pas conforme, c'est à dire si elle ne respecte pas la façon dont elle doit être écrite, je m'explique:
Nous pouvons repérer ici qu'il s'agit du même point de livraison (ceci est un exemple), mais qu'il y a une anomalie sur la première ligne car AUCHAN n'est pas suivi de STRASBOURG (contrairement à la ligne 2 qui n'est pas en anomalie).
Le client 1 et 2 ne sont pas dans ma base de donnée et ne sont donc pas en anomalie non plus
Ceci est mon objectif final qui serait éventuellement fait "automatiquement" en cliquant sur un bouton qui me compterais ensuite le nombre d'anomalie(s)
J'ai jusqu'à présent procéder à la main mais c'est une réelle (et non négligeable) perte de temps car je suis persuader qu'on peut faire cela de façon automatique. J'ai déjà quelques débuts mais rien de bien concrets mais j'ai pu décomposer mon "objectif" en 3 partie:
1. il existe une anomalie par rapport à ma BDD
2. il n'y a pas d'anomalie par rapport à ma BDD (idéalement comme la 2nd ligne de mon exemple)
3. le point de livraison n'est pas contenue dans ma BDD, même avec la "soustraction" de la "commune de liv" sur le "point de liv" s'il y en a une (j'ai trouvé une macro pour enlever le texte d'une colonne contenue dans une autre colonne, par exemple
Col A----------------------------------- COL B
JANVIER 1998 en vacance--------- JANVIER
FEVRIER 1999 en Europe---------- FEVRIER
FEVRIER 2001 en Australie-------- MARS
etc...
va être transformé en
Col A---------------------- COL B
1998 en vacance-------- JANVIER
1999 en Europe---------- FEVRIER
2001 en Australie-------- MARS
Cette macro permettra de supprimer le texte "JANVIER", "FEVRIER", "MARS"... etc de la colonne où sont contenue toutes les infos (JANVIER 1998 en vacance, etc)
soit de supprimer le texte de la colonne A qui est contenue dans la colonne B (je pense partir de là car cela me semble une bonne idée, mais juste de changer un peu la macro non plus dans le but qu'elle me supprime un texte d'une colonne mais qu'elle m'affiche simplement dans une colonne 3 si le texte de la colonne 2 est bien contenue à la fin de la colonne 1, je sais c'est simple (ironiquement dit)).
Proposition :
1. dans le cas d'anomalie par rapport à ma base de donnée client
Vérification que la colonne "point de liv" contient le texte de la colonne "commune de liv" concernant les clients de ma liste (de 60) "listeclients"
=> par macro (j'ai trouvé sur internet une macro pour soustraire du texte, ce qui permet d'afficher une erreur lorsque ce texte n'est pas présent, en revanche cela ne fonctionne donc uniquement pour les clients de ma base de donnée, voir ci dessus...)
si le texte "commune de liv" (Strasbourg) n'est pas contenue à la fin de mon "point de liv" (Auchan tout seul par exemple), alors écrire "oui" dans la colonne "anomalie" d'à côté
2. Dans le cas où il n'y a pas d'anomalie:
Si le texte "commune de liv" (Strasbourg par ex) est contenue à la fin de la colonne "point de liv" (donc Auchan Strasbourg par exemple ici)
alors ce n'est pas une anomalie et la conformité est bonne
3. point de livraison (client) non contenue dans la base de donnée
si le "point de liv" n'est pas contenue dans ma base de client alors me le mettre le fond en orange, ou en jaune .. etc pour les mettre en évidences, et faciliter le traitement des données
j'aurais donc chercher divers renseignements à savoir :
- modifier la macro pour qu'elle ne m'efface pas les "communes de livraison "de de ma colonne "point de liv" (car c'est ce que cette macro fait) mais qu'elle m'affiche "oui" ou "non" à la place (dans la colonne anomalie), où le cas "conforme" est le cas 2 et le cas "non conforme" est le cas 1.
- compter le nombre d'anomalies par rapport à ma BDD
- tenir compte des données non présentes dans ma BDD (éventuellement de me les trier et de me les mettre soit au début soit à la fin de ma feuille)
la macro disponible ici avec l'exemple que j'ai repris ci dessus au début de mon post (trouvé grâce à google)
Lien supprimé
Je reste entièrement disponible envers quiconque sera assez charitable pour m'aider...
SOURCE (sans aucune volonté de faire de la publicité, si je n'ai pas le droit merci de retirer la source)
https://www.excel-downloads.com/threads/soustraire-donnees-texte.127894/
Cordialement, et merci d'avance ! (et désolé pour le pavé)
H.
Après plusieurs jours de galère je m'oriente vers vous car je n'ai toujours pas réussit à résoudre mon soucis (qui est enfaite plusieurs soucis mais rien de grave).
Voila, je possède une base de donnée avec des clients (une soixantaine) qui doivent respecter une hiérarchie du "point de livraison", c'est à dire que pour que ce "point de livraison" soit valable (pour mes 60 clients) il doit être composé du nom du point de livraison (dans mon exemple ci dessous auchan) + la commune de livraison, pour au final donné un point de livraison appelé "AUCHAN STRASBOURG" si la livraison est à strasbourg.
j'ai un extrait de données d'une période de 1 mois avec énormément de clients (150/200) qui peuvent ou non être présent dans ma base de donnée.
Le but est de mettre en évidence une donnée si celle ci n'est pas conforme, c'est à dire si elle ne respecte pas la façon dont elle doit être écrite, je m'explique:
Nous pouvons repérer ici qu'il s'agit du même point de livraison (ceci est un exemple), mais qu'il y a une anomalie sur la première ligne car AUCHAN n'est pas suivi de STRASBOURG (contrairement à la ligne 2 qui n'est pas en anomalie).
Le client 1 et 2 ne sont pas dans ma base de donnée et ne sont donc pas en anomalie non plus
Ceci est mon objectif final qui serait éventuellement fait "automatiquement" en cliquant sur un bouton qui me compterais ensuite le nombre d'anomalie(s)
J'ai jusqu'à présent procéder à la main mais c'est une réelle (et non négligeable) perte de temps car je suis persuader qu'on peut faire cela de façon automatique. J'ai déjà quelques débuts mais rien de bien concrets mais j'ai pu décomposer mon "objectif" en 3 partie:
1. il existe une anomalie par rapport à ma BDD
2. il n'y a pas d'anomalie par rapport à ma BDD (idéalement comme la 2nd ligne de mon exemple)
3. le point de livraison n'est pas contenue dans ma BDD, même avec la "soustraction" de la "commune de liv" sur le "point de liv" s'il y en a une (j'ai trouvé une macro pour enlever le texte d'une colonne contenue dans une autre colonne, par exemple
Col A----------------------------------- COL B
JANVIER 1998 en vacance--------- JANVIER
FEVRIER 1999 en Europe---------- FEVRIER
FEVRIER 2001 en Australie-------- MARS
etc...
va être transformé en
Col A---------------------- COL B
1998 en vacance-------- JANVIER
1999 en Europe---------- FEVRIER
2001 en Australie-------- MARS
Cette macro permettra de supprimer le texte "JANVIER", "FEVRIER", "MARS"... etc de la colonne où sont contenue toutes les infos (JANVIER 1998 en vacance, etc)
soit de supprimer le texte de la colonne A qui est contenue dans la colonne B (je pense partir de là car cela me semble une bonne idée, mais juste de changer un peu la macro non plus dans le but qu'elle me supprime un texte d'une colonne mais qu'elle m'affiche simplement dans une colonne 3 si le texte de la colonne 2 est bien contenue à la fin de la colonne 1, je sais c'est simple (ironiquement dit)).
Proposition :
1. dans le cas d'anomalie par rapport à ma base de donnée client
Vérification que la colonne "point de liv" contient le texte de la colonne "commune de liv" concernant les clients de ma liste (de 60) "listeclients"
=> par macro (j'ai trouvé sur internet une macro pour soustraire du texte, ce qui permet d'afficher une erreur lorsque ce texte n'est pas présent, en revanche cela ne fonctionne donc uniquement pour les clients de ma base de donnée, voir ci dessus...)
si le texte "commune de liv" (Strasbourg) n'est pas contenue à la fin de mon "point de liv" (Auchan tout seul par exemple), alors écrire "oui" dans la colonne "anomalie" d'à côté
2. Dans le cas où il n'y a pas d'anomalie:
Si le texte "commune de liv" (Strasbourg par ex) est contenue à la fin de la colonne "point de liv" (donc Auchan Strasbourg par exemple ici)
alors ce n'est pas une anomalie et la conformité est bonne
3. point de livraison (client) non contenue dans la base de donnée
si le "point de liv" n'est pas contenue dans ma base de client alors me le mettre le fond en orange, ou en jaune .. etc pour les mettre en évidences, et faciliter le traitement des données
j'aurais donc chercher divers renseignements à savoir :
- modifier la macro pour qu'elle ne m'efface pas les "communes de livraison "de de ma colonne "point de liv" (car c'est ce que cette macro fait) mais qu'elle m'affiche "oui" ou "non" à la place (dans la colonne anomalie), où le cas "conforme" est le cas 2 et le cas "non conforme" est le cas 1.
- compter le nombre d'anomalies par rapport à ma BDD
- tenir compte des données non présentes dans ma BDD (éventuellement de me les trier et de me les mettre soit au début soit à la fin de ma feuille)
la macro disponible ici avec l'exemple que j'ai repris ci dessus au début de mon post (trouvé grâce à google)
Lien supprimé
Je reste entièrement disponible envers quiconque sera assez charitable pour m'aider...
SOURCE (sans aucune volonté de faire de la publicité, si je n'ai pas le droit merci de retirer la source)
https://www.excel-downloads.com/threads/soustraire-donnees-texte.127894/
Cordialement, et merci d'avance ! (et désolé pour le pavé)
H.
Dernière édition: