XL 2019 Générer mails sous conditions

66alex66

XLDnaute Nouveau
Bonjour,

J'essaie de créer un code sous VBA me permettant de générer automatiquement la création d'un mail, sous certaines conditions.

A noter que le code VBA déjà présent dans mon fichier fonctionne +/-, mais il y aurait quelques ajustement à réaliser car le résultat obtenu n'est pas celui escompté.

Je possède un tableau de 4 colonnes :

Titre de la colonne F situé en cellule F36 a pour titre "EAN"

Titre de la colonne F situé en cellule F36 a pour titre "FOURNISSEUR"

Titre de la colonne H situé en cellule H36 a pour titre "VRAI CLIENT"

Titre de la colonne I situé en cellule I 36 a pour titre "FAUX CLIENT"
----------------------------------------------------------------------------------

J'ai déjà réalisé une ébauche de code VBA associé au bouton "MAIL".
L'idée est qu'un corps mail se génère en fonction du fournisseur d'énergie impacté par la problématique reprise ci-dessus :

Le corps du mail a la possibilité de générer 2 listes à puces :

1. Soit en cas de ILC

2. Soit en cas de SA


Pour créer une liste à puce ILC
, voici la condition : Commencez par identifier le VRAI CLIENT pour chaque fournisseur listé en colonne G, notant que ce VRAI CLIENT se trouve dans la cellule directement à droite, en colonne H, sur la même ligne que son fournisseur.
Par exemple, si LUMINUS est mentionné en G37, le VRAI CLIENT correspondant doit être en H37.
Lorsque le code recherche les noms des clients en colonnes I et H, il doit ignorer les inversions entre noms et prénoms. Ainsi, si "Haubruge Delia" apparaît en colonne H et "Delia Haubruge" en colonne I, ces noms doivent être considérés comme similaires. Après avoir identifié le VRAI CLIENT, le code VBA doit vérifier si le nom du VRAI CLIENT en colonne H est également présent dans la colonne des FAUX CLIENTS (colonne I). Si le nom du VRAI CLIENT n'est pas trouvé dans cette dernière, le code doit générer une liste à puce de la manière suivante :

  • Initier un ILC au nom de (copiez et collez en gras le nom du FAUX CLIENT trouvé en cellule I, adjacente à la cellule H où le VRAI CLIENT n'a pas été identifié, en tenant compte des inversions nom/prénom) sur le point de consommation (copiez et collez en gras le texte de la colonne EAN, situé en F, sur la même ligne que le VRAI CLIENT qui n'a pas été retrouvé en I).
Pour créer une liste à puce SA, le code doit suivre cette instruction : Vérifier, pour chaque entrée de fournisseur en colonne G, si un nom listé comme FAUX CLIENT (colonne I) correspond également à un nom dans la liste des VRAI CLIENTS (colonne H). Cela indiquerait une souscription du client au mauvais fournisseur, nécessitant la création d'une liste à puce. Pour déterminer à quel fournisseur envoyer la liste à puce SA, le code doit identifier où le nom du FAUX CLIENT en colonne I apparaît parmi les VRAI CLIENTS en colonne H, et retenir le fournisseur associé en colonne G sur la même ligne que le VRAI CLIENT. Lorsque cette condition est remplie, la liste à puce à générer est comme suit :

  • Initier un SA au nom de (copiez et collez le nom du FAUX CLIENT trouvé en colonne I qui apparaît aussi en colonne H) sur le point de consommation (le code doit localiser où le nom du FAUX CLIENT est mentionné en colonne H et copier/coller l'EAN de la colonne F situé sur la même ligne).

Sur base de mon tableau annexé, voici les 3 mails que je devrais obtenir :

Mail à envoyer à Luminus :

1709468749944.png


Mail à envoyer à Engie :

1709468927617.png



Mail à envoyer à ORES FS :

1709468973140.png


D'avance, un tout grand merci pour votre aide.
 

Pièces jointes

  • GenererMails.xlsm
    48.3 KB · Affichages: 7

66alex66

XLDnaute Nouveau
Bonjour,

Du texte ald image pour les exemples de message serait mieux
sur le point de consommation quoi t'est ce?

Pourquoi vrai/faux client?
Bonjour,

Merci pour votre aide.

Les points de consommation sont en réalité identifiés par les code EAN en colonne F.
Les points de consommation sont une suite de chiffres qui représentent l'adresse du client.
Exemple : Le point de consommation 541449060019959556 lié au client HAUBRUGE Delia qui est repris chez le fournisseur Luminus.

Pourquoi VRAI/ FAUX client :
Le vrai client représente celui qui devrait normalement être abonné sur le point de consommation repris en colonne F.
Le faux client représente celui qui est erronément abonné sur ledit point de consommation.

Voici les exemples de mails au format texte :

Mail à envoyer à Luminus :

Bonjour,

Dans le cadre d'une récente MAC, nous avons identifié des inversions de contrats nécessitant votre intervention. Pour remédier à cette situation, veuillez procéder comme suit :

- Initier un ILC au nom de Isabelle François au point de consommation 541449060019959556
- Effectuer un SA au nom de Aurore VERCALSTEREN pour le point de consommation 541449060019959563
- Effectuer un SA au nom de François Isabelle pour le point de consommation 541449060019959549

Merci pour votre diligence.

Bien cordialement,

Mail à envoyer à Engie :

Bonjour,

Dans le cadre d'une récente MAC, nous avons identifié des inversions de contrats nécessitant votre intervention. Pour remédier à cette situation, veuillez procéder comme suit :

- Effectuer un SA au nom de Plas Véronique pour le point de consommation 541449060019959501

Merci pour votre diligence.

Bien cordialement,

Mail à envoyer à ORES FS :

Bonjour,

Dans le cadre d'une récente MAC, nous avons identifié des inversions de contrats nécessitant votre intervention. Pour remédier à cette situation, veuillez procéder comme suit :

- Effectuer un SA au nom de Martin Pauline pour le point de consommation 541449060019959334
- Effectuer un SA au nom de Huppe Isabelle pour le point de consommation 541449060019959341

Merci pour votre diligence.

Bien cordialement,
 

66alex66

XLDnaute Nouveau
Re,
Ok
Comment savoir!
Initier un ILC
Effectuer un SA
Re, merci.
Je vais essayer d'expliquer au mieux :

Créer une Liste à Puce ILC​

  1. Identifier le Vrai Client :
    • Recherchez dans la colonne G pour trouver le fournisseur (à qui le mail sera envoyé) associé au Vrai client.
    • Le Vrai Client est situé dans la colonne H, juste à côté, sur la même ligne.
  2. Comparer les Noms :
    • Les inversions de noms et prénoms entre les colonnes H et I sont ignorées. Par exemple, "Haubruge Delia" et "Delia Haubruge" sont considérés comme identiques.
  3. Vérifier et Créer la Liste :
    • Si le Vrai Client en colonne H n'est pas listé comme Faux Client dans la colonne I, créez une liste à puce.
    • Si la condition n'est pas remplie, aucune liste à puce ILC ne doit être créée.
    • Si c'est le cas, formulez : "Initier un ILC au nom de [Nom du Faux Client trouvé en I] sur le point de consommation [Texte de la colonne EAN en F]."

Créer une Liste à Puce SA​

  1. Vérification des Noms :
    • Pour chaque fournisseur en colonne G, vérifiez si un Faux Client en I est aussi identifié dans la colonne Vrai Client en H. Cela indique une erreur de souscription.
  2. Identifier le Fournisseur Correct et Envoyer l'Email :
    • Localisez où le Faux Client en I apparaît comme Vrai Client en H et notez le fournisseur lui étant associé en G sur la même ligne.
    • L'email demandant d'initier un SA doit être envoyé au fournisseur identifié en G qui correspond au Vrai Client trouvé en H.
  3. Générer la Liste à Puce :
    • Pour chaque correspondance trouvée, notez : "Initier un SA au nom de [Nom du Vrai Client en H] sur le point de consommation [EAN de F sur la même ligne que le Vrai Client]."
 

Oneida

XLDnaute Impliqué
Bonjour,

Ok, je regarde la chose

Suite:
D'apres vos explications etlex infos de votre tableau1, il ne dervrait y avoir que des ILC pas de SA.
Avec votre code il ya une seule ILC et des SA aleatoires!

Un @MAIL par ligne du meme fournisseur ou grouper pour un seul @MAIL?
 
Dernière édition:

66alex66

XLDnaute Nouveau
Bonjour,

Ok, je regarde la chose

Suite:
D'apres vos explications etlex infos de votre tableau1, il ne dervrait y avoir que des ILC pas de SA.
Avec votre code il ya une seule ILC et des SA aleatoires!

Un @MAIL par ligne du meme fournisseur ou grouper pour un seul @MAIL?

Bonjour,

Merci pour votre aide.

Oui un @MAIL par ligne du même fournisseur.

En réalité, une seule liste à puce devrait être créée, elle concerne le fournisseur Luminus.
Elle devrait être créée pour la toute première ligne du tableau, en effet, le client HAUBRUGE Delia (colonne VRAI CLIENT) n'est retrouvé nulle part dans la colonne FAUX CLIENT.

C'est le seul client qui remplit cette condition ILC expliqué plus haut :

Identification du Vrai Client :

Dans cette exemple, HAUBRUGE Delia est identifié comme le VRAI CLIENT dans la colonne correspondante (colonne H). Ce client est associé au fournisseur Luminus mentionné dans la colonne des fournisseurs (colonne G).

Vérification de la Condition pour ILC :

Les instructions stipulent qu'une liste à puce ILC doit être créée si le nom du Vrai Client en colonne H n'apparaît pas dans la colonne des Faux Clients (colonne I). Dans notre cas, HAUBRUGE Delia, qui est en H, ne figure pas dans la colonne I, ce qui remplit la condition pour créer une liste à puce ILC.

Création de la Liste à Puce ILC :

Comme HAUBRUGE Delia répond à la condition spécifique (son nom n'apparaît pas dans la colonne des Faux Clients), une liste à puce ILC doit être créée pour le fournisseur Luminus. La formulation serait : "Initier un ILC au nom de [HAUBRUGE Delia] sur le point de consommation [Texte de la colonne EAN en F : 541449060019959556]."

Situation des Autres Clients (Faux Clients) :

Pour les autres entrées où les noms des Faux Clients peuvent être identifiés comme Vrai Client dans une autre ligne, cela indique qu'un SA doit être initié plutôt qu'un ILC. Cela signifie que pour ces cas, nous contacterons le fournisseur réellement associé à ces clients (comme indiqué en colonne G sur la même ligne que le Vrai Client en H) pour s'assurer qu'ils abonnent correctement leur client.
 

Oneida

XLDnaute Impliqué
Re,

Ok
D'apres vos explications, pour moi ca donne ceci. 6 Envois @MAIL
EANFOURNISSEURVRAI CLIENTFAUX CLIENT
541449060019959556LUMINUSHAUBRUGE DeliaIsabelle FrançoisILC
541449060019959549LUMINUSFrançois IsabelleBenjamin NeirynckSA
541449060019959501ENGIEPlas VéroniqueAurore VERCALSTERENSA
541449060019959563LUMINUSAurore VERCALSTERENPlas VéroniqueSA
541449060019959334ORES FSMARTIN PaulineIsabelle HUPPESA
541449060019959341ORES FSHuppe IsabellePauline MartinSA
 
Dernière édition:

66alex66

XLDnaute Nouveau
Re,

Ok
D'apres vos explications, pour moi ca donne ceci
EANFOURNISSEURVRAI CLIENTFAUX CLIENT
541449060019959556LUMINUSHAUBRUGE DeliaIsabelle FrançoisILC
541449060019959549LUMINUSFrançois IsabelleBenjamin NeirynckSA
541449060019959501ENGIEPlas VéroniqueAurore VERCALSTERENSA
541449060019959563LUMINUSAurore VERCALSTERENPlas VéroniqueSA
541449060019959334ORES FSMARTIN PaulineIsabelle HUPPESA
541449060019959341ORES FSHuppe IsabellePauline MartinSA

Re,

Oui c’est bien.
Et donc, les mails donnés en exemple plus haut devraient se générer.
 

66alex66

XLDnaute Nouveau
Re,
C'est ca, chez moi ca marche.
Perso, j'aurai groupe les Infos par Fournisseur pour un seul envoi et pas un envoi par Vrai client.
Mais c'est vous qui voyez
Re,

Merci, oui c'est très proche du rendu final voulu.
Je m'aperçois qu'aucun mail ne se génère pour le fournisseur ORES.

Il est vrai qu'il serait plus intéressant de regroupe les infos par fournisseur. Serait-ce possible ?

Aussi, il y aurait une petite nuance à apporter.
Un ILC se génère pour le client Benjamin Neirynck, repris dans la colonne FAUX CLIENT, mais qui ne se retrouve pas dans la colonne VRAI CLIENT. Dans ce cas, il ne faut générer aucune liste à puce pour ce client (ni ILC, ni SA).

Un ILC est généré uniquement si le nom du Vrai Client (colonne H) n'apparaît pas dans la colonne des Faux Clients (colonne I).
L'initiative d'un ILC est basée sur l'absence du Vrai Client dans la liste des Faux Clients, et non l'inverse.

Si un nom apparaît dans la colonne des Faux Clients (I) mais pas dans celle des Vrai Clients (H), il ne faut pas créer de liste (ni ILC, ni SA) pour ce cas.

Concernant l'ILC, navré pour la confusion... la formulation devrait être celle-ci :
C'est le nom du FAUX CLIENT qui doit apparaître.


"Initier un ILC au nom de [Nom du Faux Client trouvé en I : Isabelle François] sur le point de consommation [Texte de la colonne EAN en F : 541449060019959556]."

-------------------------------------------------------------------------------------
En résumé, 3 mails devraient se générer de cette manière pour que le code fonctionne parfaitement (en regroupant les infos par fournisseur) :

Mail à envoyer à Luminus :

Bonjour,

Dans le cadre d'une récente MAC, nous avons identifié des inversions de contrats nécessitant votre intervention. Pour remédier à cette situation, veuillez procéder comme suit :

- Initier un ILC au nom de Isabelle François au point de consommation 541449060019959556
- Effectuer un SA au nom de Aurore VERCALSTEREN pour le point de consommation 541449060019959563
- Effectuer un SA au nom de François Isabelle pour le point de consommation 541449060019959549

Merci pour votre diligence.

Bien cordialement,

Mail à envoyer à Engie :

Bonjour,

Dans le cadre d'une récente MAC, nous avons identifié des inversions de contrats nécessitant votre intervention. Pour remédier à cette situation, veuillez procéder comme suit :

- Effectuer un SA au nom de Plas Véronique pour le point de consommation 541449060019959501

Merci pour votre diligence.

Bien cordialement,

Mail à envoyer à ORES FS :

Bonjour,

Dans le cadre d'une récente MAC, nous avons identifié des inversions de contrats nécessitant votre intervention. Pour remédier à cette situation, veuillez procéder comme suit :

- Effectuer un SA au nom de Martin Pauline pour le point de consommation 541449060019959334
- Effectuer un SA au nom de Huppe Isabelle pour le point de consommation 541449060019959341

Merci pour votre diligence.

Bien cordialement,
 
Dernière édition:

Oneida

XLDnaute Impliqué
Re,
Pour le moment c'est votre code qui genere les @Mails.
Probleme, le nombre d'@MAIL est aleatoire va de 4 a 6
Je regarde la chose

Suite:
Pige plus votre raisonnement.
Par contrat dans votre exemple, le faux client n'est pas le vrai client donc pourquoi faire une recherche du vrai client dans toute la colonne faux client?
D'autant que le non dans faux client n'est pas forcement dans le meme fournisseur
 
Dernière édition:

66alex66

XLDnaute Nouveau
Re,
Pour le moment c'est votre code qui genere les @Mails.
Probleme, le nombre d'@MAIL est aleatoire va de 4 a 6
Je regarde la chose

Suite:
Pige plus votre raisonnement.
Par contrat dans votre exemple, le faux client n'est pas le vrai client donc pourquoi faire une recherche du vrai client dans toute la colonne faux client?
D'autant que le non dans faux client n'est pas forcement dans le meme fournisseur
Re,

Merci encore pour votre aide.

Par contrat dans votre exemple, le faux client n'est pas le vrai client donc pourquoi faire une recherche du vrai client dans toute la colonne faux client?

Pour les clients mentionnés dans la colonne « FAUX CLIENTS », nous savons précisément quel est le fournisseur qu'ils souhaitent, car cette information est indiquée sur la même ligne du tableau (colonne G).

En ce qui concerne les « VRAI CLIENTS », nous connaissons juste l'adresse associée à leur abonnement (identifiée par le code EAN), mais leur fournisseur choisi n'est pas directement connu.
La méthode pour découvrir ce fournisseur consiste à vérifier si leur nom figure dans la colonne « FAUX CLIENT ». Si c'est le cas, le fournisseur désiré est indiqué à côté, sur la même ligne du tableau (colonne G).

Quand un VRAI CLIENT n'est pas identifié dans la colonne FAUX CLIENT (et pas dans le sens inverse), c'est le seul cas où une liste à puce ILC doit être générée.

Prenons le cas de la première ligne de mon tableau qui correspond au seul ILC :

EANFOURNISSEURVRAI CLIENTFAUX CLIENT
541449060019959556LUMINUSHAUBRUGE DeliaIsabelle FrançoisILC

Générer un ILC permet d'informer le fournisseur en ces termes : « Hey, regardez, Isabelle François est chez vous par erreur. En fait, c'est Delia HAUBRUGE qui devrait être abonnée ici, à la place d'Isabelle François (et on parle de l'adresse avec l'EAN : 541449060019959556). Le hic, c'est qu'on ne sait pas chez quel fournisseur Mme HAUBRUGE est censée être. Alors, on va envoyer une lettre à Mme HAUBRUGE via un ILC pour qu'elle nous éclaire sur le fournisseur qu'elle préfère. »

Dans les autres situations, un SA est uniquement généré car le fournisseur auprès duquel les clients doivent être officiellement abonnés est clairement identifié (ces clients sont listés dans la colonne « FAUX CLIENT », et le fournisseur souhaité se trouve sur la même ligne). Leur contrat est "juste" associé au mauvais point de consommation (identifié par l'EAN).

Troisième possibilité : Si un client figure dans la colonne « FAUX CLIENT » et pas dans la colonne « VRAI CLIENT » (comme c'est le cas pour Benjamin Neirynck), aucune action n'est entreprise pour ce client, et aucune liste à puce ne doit être générée.
 

Discussions similaires

Réponses
2
Affichages
657
Réponses
3
Affichages
468

Statistiques des forums

Discussions
315 088
Messages
2 116 089
Membres
112 658
dernier inscrit
doro 76