Exporter une table dans une autre la source est une feuille Excel [Résolu/Fermé]

Signaler
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020
-
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020
-
Bonjour,

je refais un sujet a la demande justifiée de YG_BE qui a suivi cette conversation

je repose donc le problème :

le contexte:

j'ai des adresses mail et un certains nombres de renseignement qui me provienne via cette feuille Excel j'ai réinjecté cette feuille dans une table ( importation classique par données externes et j 'ai enregistrée cette importation)

ce qui nous donne je parle pour yg_be le fameux formulaire avec les macros F_lead video conférence


mon souhait est que cette feuille ou la table je ne sais, pas soit réinfecter pour éviter une double saisie dans la table T-client sous les champs commun uniquement pour le choix de statut "Assiste" de la table leads vidéo conférence

c'est a dire le champ prénom dans le champ prénom de la T_client etc idem pour prénom et adresse mail

il reste le problème des champs " Prospect" et "client cases à cocher de T_Client a emplir en fonction de : si signature dans "suivi lead" = client ou si la case a coché "conclu " est cochée = client sinon = prospect

mais je n'avais pas pensé à la numérotation ( en fait à la base on ne devait pas réinjecte dans t_Client ) pour plus de facilité on peut ne pas mettre id sur la feuille excel et qu'a l'importation on accepte le message Excel va mettre l'id lui même ( j'interprète mais ça veut dire ça )

car T_client en Id Client est en numAuto

je peux retoucher sans problème l'importation et la feuille Excel et la feuille ele même ( je suis en essai) mais pas T_client la numAuto

les renseignement de la feuille Excel proviennent fe Facebook suite a des demande d'invtitaiton pour ces fameuses webconf

Si ce n'est pas clair tu me dis je suis sur plusieurs problématiques donc c'est possible que parfois cela soit moins clair que ce que je voudrais








Configuration: Windows / Firefox 75.0

17 réponses

Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867
bonjour,
essaie de suivre mes explications et de répondre à mes questions, en ajoutant le minimum d'explications.
je comprends que tu as un bouton qui importe des données d'un fichier Excel vers la table leads conference. (Q1) ai-je bien compris?
Je réalise tout à coup que cette table est vidée chaque fois, et ne contient donc que ce qui vient d'être importé. (Q2) est-ce exact?
si c'est exact, cela simplifie ce que je pense que tu demandes ensuite:
pour tous les enregistrements de la table leads conference ayant "Assiste" dans le champ "choix de statut", créer un enregistrement dans la table T_client.
(Q3) est-ce ce que tu demandes?

nous discuterons ensuite comment remplir quel champ de la table T_client.
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

1) Oui ce n'est pas un bouton mais c'est kif :
Menu données externes.....exportations enregistré onglet importation

Oui c'est ça la feuille Excel est transformé en une table : leads vidéo conférence

2) oui ça ėcrase a chaque fois d'où ma question avec la numérotation ( surtout celle T _ client ensuite ?)

3) non je souhaite que l'on exporté seulement ds T_ client les "Assisté

Bon ok pour voir ce que tu ex portés ensuite ds T_ client
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867
la numérotation de T_client étant automatique, je ne vois pas pourquoi on devrait s'en occuper.
plusieurs champs de T_client sont obligatoires.
merci de donner la liste des champs de T_client, et, pour chaque champ, comment il faut le remplir quand on crée à partir des champs de la table leads conference
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020
>
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021

ok je pensais que les id de la feuille excel allait foutre le bazar si c'est ok c'est bien

il y a un champ obligatoirement non null "CategorieClient T_Client
comme j'ai fait ça après sur lead videoconference le prenom et nom est ensemble
<gras
lead conference </gras>............................................................... T_Client

candidats ( nom + prenom) ---------------------------------------------------> nom
prénom en 2 champs
Mail-------------------------------------------------------------------------------------------->Email

c'est tout

sauf si on peut venant du "suivi lead"

"conclu" = vrai -------------------------------------------------------------------------> mettre la case a cocher sur client= vrai
"Conclu" = faux------------------------------------------------------------------------> mettre la case a cocher sur prospect = vrai

C'est ce que tu veux ?
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867
c'est le début de ce que je veux.
1) comment déterminer le prénom et le nom à partir du champ "candidat"?
2) le code sera déclenché via un bouton encore à créer? il sera exécuté après que la table suivilead ait été manuellement mise à jour, et avant l'importation suivante?
3) que faut-il mettre pour nomcoach et categorieclient?

4) il 'y a pas de champ nomclient dans la table T_client

5) dans la table T_client, il ne peux pas y avoir deux enregistrements ayant la même valeur pour NomCoache. est-ce bien ce que tu souhaites?
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

Ecoutes j'ai réfléchi la feuille Excel peut , doit être refaire on enlève candidats et on met PrenomWC et nomWC

cette feuille a éte faite apres coup et il n'était ^pas question de la rapatrier das nT_Client c'est grace a ta bonne volontè que ça se fait

donc je pense( sous ton contrôle) que c'est la solution la plus simple il me suffira d'adapter les champs dans F_Leads videoconference et le tour sera joué

je referais l'importation enregistrée en 2 mm c'est fait et pas d'emmerdement pour ton code ( c'est un défaut de conception de ma part)

ça ne touchera même pas les 2 requêtes que tu m'as faites puisque tu travailles avec les ID tout va bien

qu'en penses tu ?

pour categorie client c'est "Particulier"

le "nomcoaché" si il peut être plusieurs imaginons un couple , 2 frères etc, le nom de famiile est le même pas le prénom

donc je te redonne les équivalences corrigées avec la modif de la feuille Excel si tu l'acceptes

<gras
lead conference </gras>............................................................... T_Client

PrenomWc---modification------------------------------------------------------------------>PrenomClient
----NomWc------------------------------------------------------------------------------------------> NomCoache

Mail-------------------------------------------------------------------------------------------->Email

c'est tout

sauf si on peut venant du "suivi lead"

"conclu" = vrai -------------------------------------------------------------------------> mettre la case a cocher sur client= vrai
"Conclu" = faux------------------------------------------------------------------------> mettre la case a cocher sur prospect = vrai


je te prie de m'excuser je n'ai pas été attentif mais mon beau père depuis un mois à l(hosto (87 ans) col du fémur fracturé et a chopé le covid 19 la bas très fragile des poumons déjà on est inquiet

cette fois je pense que c'est complet mais n'hésites pas a revenir vers moi jeferais le maxi pour te faciliter la vie tu penses bien !
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867
bon courage à ta famille et à toi.
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867
Vu la façon dont la table T_client est conçue, il est interdit d'avoir deux enregistrements ayant la même valeur pour NomCoache.
le code d'importation sera donc interrompu et affichera un message d'erreur peu compréhensible si cela se produit.
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867
je propose ce code-ci:
Option Compare Database
Option Explicit

Private Sub ajoutclients()
Dim rslead As DAO.Recordset, rssuivi As DAO.Recordset, rscli As DAO.Recordset
Set rslead = CurrentDb.OpenRecordset("Leads Videoconference")
Set rssuivi = CurrentDb.OpenRecordset("Suivi Lead", dbOpenDynaset)
Set rscli = CurrentDb.OpenRecordset("T_client")
Do While Not rslead.EOF
    If rslead![Choix statut] = "Assiste" Then
        rscli.AddNew
        rscli!PrenomClient = rslead!PrenomWc
        rscli!NomCoache = rslead!NomWc
        rscli!EMail = rslead!Mail
        rscli!CategorieClient = 2
        rssuivi.FindFirst ("IdParticipant = " + CStr(rslead!ID) + " and Conclu ")
        If rssuivi.NoMatch Then
            rscli!Prospect = True
            rscli!Client = False
        Else
            rscli!Prospect = False
            rscli!Client = True
        End If
        rscli.Update
    End If
    rslead.MoveNext
Loop 'While Not rslead.EOF
End Sub
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

je le mets ou ce code ? exactement

As tu pris l'option finalement de changer "candidats " de la feuille Excel ou table lead videoconference c'est pareil , en 2 champs :

PrenomWc et NomWc ?

j'avais pensé que c'était plus facile pour toi et pour moi avec notamment l' importation de liste de Facebook qui détaille prénom et nom

alors je l'ai préparé, si on laisse comme ça pas grave je refais de n'est pas la mère a boire

Pour les nomcoache pas de double, on trichera on mettra par exemple
durand et durand1 ?? ça peut coller comme ça c'est du pis aller mais bon ça fonctionnera tu n'es pas responsable d'une mauvaise conception

et question surement idiote si on change la propriété dans la table sur nomcoache en doublon autorisé ?? incidence ?
moi dans ma petite tête je pense que le numauto fait son office et qu'il attribuera au deuxieme nom similaire un autre numéro ? et seulement le nomcoaché sera en doublon ( car si on a une famille comment on fait ?)
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867
le code est destiné à être mis dans un module. le plus simple, c'est de créer un nouveau module, et d'y mettre le code.

comme tu peux voir en lignes 12 et 13, le code utilise PrenomWc et NomWc.

sauf si la base est très mal conçue, cela ne devrait pas avoir d'impact d'autoriser des doublons sur nomcoache.

quand tu testes le code, je suggère que tu testes en essayant d'importer deux fois le même nom, pour observer comment le code réagit.
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

service ultra rapide la classe lol

ok pour le module je le nomme je suppose

et pour faire fonctionner ce module ( il est en mode automatique ) pas de bouton commande rien ça se fait tout seul ?

ok je vais tester avec 2 fois le même nom d'ailleurs je vais faire comme en situation normal, 2 fois le même nom de famille avec un prénom différent comme dans le réel

avant je vais une sauvegarde on ne sait jamais

alors le résultat est bon dans la table lead videoconference j'ai essayé avec un nom de famille 3 fois et prenom different et un autre 2 fois

je l'ai fait par l'intermédiaire du bouton cde "mise a jour leads" jour dans F_leads videoconference

message erreur " impossible de définir un champ plus d'une fois "

Par contre bien marqué dansla table lead video conference malgré le message

mais peut être est ce a cause dela dite macro sur cette commande ?
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867
tu peux nommer le module comme tu veux.
je ne sais pas ce qu'est le mode automatique d'un module.
pour tester, tu peux cliquer dans le code, et utiliser le bouton "exécuter" ou la touche F5.

pour de vrai, comment souhaites-tu déclencher l'exécution du code?
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

je ne sais pas le plus rationnellement possible en se mettant a la place d'un utilisateur lambda

pour le message d'erreur cité plus haut ?

j'ai fait un autre test j'ai rentre un client avec un nom de famille identique par l’intermédiaire du formulaire F_Client nickel pas un murmure c'est passe après le oui avec doublon de la table

Essai sur le module message erreur

erreur 3265
Element non trouvé dans cette collection

debogage en surligner jaune

rssuivi.FindFirst ("IdParticipant = " + CStr(rslead!ID) + " and Conclu ")

ce qui me fait supposer que ma macro qui fonctionnait bien avant a besoin d'une précision avec le doublon ?
merci a toi en tous cas sinon sans ton aide mission impossible viens boire un coup lol
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867
je suis complètement incapable, dans ce contexte, de me mettre à la place d'un utilisateur lambda.

quand tu écris "ma macro", de quoi s'agit-il? essaie de nommer chaque élément, d'utiliser un vocabulaire factuel et précis.
le message d'erreur que tu montres est dans le code que je viens de te passer.

essaie de faire des phrases completes, cela aide à te faire comprendre.
que fais-tu, qu'observes-tu.

une phrase comme "Essai sur le module message erreur", ce n'est pas totalement clair.

quand tu écris "ce qui me fait supposer que ma macro qui fonctionnait bien", tu donnes ton opinion, que je respecte. cependant, tu ne me donnes pas d'information. et je ne peux obtenir d'information que par toi.

sinon, partage le fichier avec lequel tu obtiens le message d'erreur.
aurais-tu supprimé la colonne ID du fichier Excel, et donc de la table leads videoconference?
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

1°) ta remarque est juste id du Fichier Excel a été renommé idParticipant

je suis fatigué avec tous ces évènements moi pas attentif , brouillon tu as bien fait de secouer un peu je te prie de m'excuser

j'ai rectifié sur le code du nouveau module

le id de la feuille Excel a été rebaptisé lors des requêtes que tu as faites et complètement oublié quand j'ai refait la feuille Excel pour séparer le champ candidat initial en PrenomWc et NomWc

effectivement ça exporte très bien sur T_client quand il n 'y a pas de doublon qui est mon essai 1

j'ai enfin compris le problème ; du message " impossible de définir un champ plus d'une fois "

maintenant avec doublon, sur le nom coché, doublon qui a été autorisé dans la table

sur la macro pour importer les donnéess de la feuille Excel sur la table leads videoconference

macro que tu trouves sur le F_Leads visdeo conference appelée "maj leads" ou encapsulée dan le formulaire ; Ouverture MaJ Leads pour être directement dessus

(je suis bien obligé de trouver des contournements au code et aux macros trop compliquées)

effectivement cett macro pose un léger problème

le message est clair :

" impossible de définir un champ plus d'une fois "

car effectivement d'après ce que j'ai compris la macro (j'explique comme je peux) elle, ne prend pas ce qui a déjà été importée et les doublons lui posent problème d’où le message !

mais le doublon est bien renseigné dans la table lead videoconference le boulot a été fait quand même

maintenant passons au remplissage de T_client avec doublon, avec le code du nouveau module qui est mon essai 2

sans problème dans ce sens, là pas un murmure le doublon est bien présent dans la T_client sans message

En fait tout est nickel sauf ce petit accroc sur la macro sens feuilles excel vers la table leads videoconference


lien des documents:
avec la feuille Excel à jour pour l'essai, la base à jour et la copie d'écran de la macro

https://onedrive.live.com/redir?resid=962B5E3D3756BDFC!246145&authkey=!ALvS1jf45D1HUa4&e=bAtdki

Pour le bouton de commande pour activer le nouveau module de la mise à jour de la table client il me semble que sa place toute désignée est en bas sur F_client

merci à toi
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867
je regarderai tes fichiers plus tard. je suspecte que, dans le fichier Excel, il y a deux titres de colonnes identiques.
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867 >
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021

je pense que l'ancienne importation est perturbée par le changement des noms des colonnes du fichier excel. le plus simple me semble de recréer l'importation, et de modifier la macro pour l'associer à la nouvelle importation.

pour associer le nouveau code ajoutclients (dont tu peux modifier le nom) à un nouveau bouton, il faut d'abord remplacer
private sub
par
function
. ensuite tu peux, dans une macro associée au nouveau bouton, ajouter une action ExécuterCode et préciser le nom de la fonction (ajoutclients ou le nom que tu lui as donné).
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

je viens de m'apercevoir que ce n'est pas aussi simple que ça cette histoire :

1°)si on appuie par inadvertance sur bouton du code du module l’exportation vers T_client va se faire plusieurs fois normal on a autorisé les doublons

la T_client est l'organe centralisateur des clients donc c'est légitime de les rapatrier de la table leads videoconference sur T_client comme tu l'as fait pas de problème

2°) mais prenons le cas qu'un propesct Assite a une webconference condition pour qu'il soit rapatrier sur la T_ client

or prenons un exemple concret

MR durand michel assiste a la webconference du 20 avril sur le stress il passe automatiquement sur T_Client son suivi n'a rien donné pas d "conclu"

super sauf que si il assiste à une autre webconference la même ou un autre sujet peut importe il va se trouver de nouveau exporter

durand michel assite a la webconfernce (stress ou une autre ) le 28 avril il va être de nouveau rapatrier sur T_client aucun intérêt

Donc à moins que tu aies une autre solution facile pour toi et pas trop prise de tête, je ne peux pas te monopoliser au détriment d'un autre ,qui a aussi besoin de tes précieuses lumières

Peut être, que la solution serait de changer un peu le code du module pour cette fois exporter uniquement le "conclu" et mettre la case à cocher sur vrai dans t_client comme tu as déjà fait et de repasser le nomcoache de T_client en non sans doublon

les cas exceptionnels de mari et femme donc avec le même nom de famille seront traités comme suit durant martine et durand1 michel ce n'est hyper conforme mais cette histoire (après consultation de forum , cours etc. sur le web) est insoluble )

quel est l'avis du pro les "ajoutures" comme on dit ça fait le bazar surtout quand tu ne maitrises pas


Amitiés

Patrick
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867
bienvenue dans la réalité.
beaucoup de solutions sont possibles.
le code du module peut aussi vérifier le contenu de la table T_client, pour éviter de créer un enregistrement si les mêmes infos (nom, prenom, email) sont déjà présentes, ou bien même si email est déjà présent.
tu peux d'ailleurs modifier la table t_client pour empêcher des doublons sur email, ou sur des combinaisons de champs.
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

Peux tu valider la solution que j'ai imagine puisque je n'écris pas de code, c'est toi qui sais faire

pff ça m'obsède cette base j'y pense la nuit lol se ne sont pas des 0 et ds 1 qui vont avoir raison je ne suis pas encore battu

oui car en plus j'ai soulevé un autre lièvre c'est que il faut garder la feuille Excel dans sa totalité puisque elle écrase a chaque fois la table ce qui fait qu'elle va grossir de façon exponentielle

Pour se résumé la feuille excel capte les adresses mail , prénom et nom des réseau sociaux a chaque inscription sur une webconf ( notre matière pour notre prospection) donc en fait a chaque nouvelle webconf ( sujet different ou le même)

On agrège donc plusieurs sources (Sendiblue type sarbacane, Facebook etc) ça peut faire dans une année plusieurs centaines de lignes au moins

J'aimerais pourvoir effacer la liste Excel pour éviter ce désagrément, il faut juste se souvenir de la dernière Id pour éviter le bug sur Idparticipant, régler le problème des doublons

on efface systematiquement les donnees Excel pour ajouter les nouvelles sans incidence sur la table Leads videoconference etc

Voila après avoir lu , cherché sur le net et réfléchi mon esquisse de solution qui demandera ta validation et peut être des rectifications mineures sur le module ?

1°)je veux garder le travail que tu as effectué, (ne plus te monopoliser comme ça, d'autres ont besoin aussi de ton aide ) a savoir les 2 requêtes et le module

2°)car les requêtes ne vont très bien et j'ai moi même fait des stats sur la base de Leads video conference que je tiens à garder


3°) j'ai pensé faire une table de transition avec un nom X ou Y peu importe

c'est dans cette table que l'on met, par importation la feuille Excel ( donc en fait une copie conforme de la structure de la table actuelle Leads videoconference) l'assistant d'importation pour l'enregistrer aucun effot on clic

4°)On met en place une requête Ajout qui alimente la table actuelle Leads videoconference
qui se déclenchera par un bouton ? a voir comment et où pour l(instant c'est le raisonnement que je veux valider ou ... pas lol

5°)ce qui fait que l'on pourra conserver le champ "nomcoach"e de la table T_client avec doublon
il n'y aura plus l'écrasement systématique de la table ( puisque c'est la table transitoire qui prendra les données directement de la feuille Excel)

6°) on enléve dans la macro présente sur le formulaire Leads videoconference accessible directement par l'icone leads du formualire d'ouverture de la base , puis le bouton maj leads

et le tour est joué, pas comme un pro mais bon ...

et normalement comme il n ' y plus de doublon, le module sens leads videoconference ( la table alimentée par notre requête ajout) à T_client ne devrait plus poser de problème non en fait on garde la possibilité du doublon car un prospect peut trés bien assister a plusieurs webconf je réfléchis en m^me temps .....complexe cette histoire

Par contre effectivement lors du transfert par le module sur T_Client il faut empêcher je suppose avec code vba d'avoir plusieurs fois le même prospect ?

parce que le problème est qu'a chaque fois que l'on ajoute (actuellement ) des prospects a la feuille Excel avec doublon autorisé c'est ok sur leads videoconference mais ça dupliquer plusieurs fois sur T_client

si on enlève le doublon autorise l'ajout ne se fait pas dans t.client car message: risque de doublon ( on s'en sort pas )

donc l'ajout fait dans la feuille excel n'apparait pas c'est pourquoi j'ai imagine ça pour n'avoir dans feuille Excel que les nouvelles saisie

mais il est vrai que ça ne gère pas les quelques cas ou un prospect assiste a plusieurs vidéo conférences !?

j'essaie de trouver de la doc sur comment empêcher par une combinaison de champ les doublons

j'ai tout bon ou c'est trop tordu, minimum de changement pas une ligne de code a part bien entendu les tiennes du module.....;

Il en pense quoi le maitre es code ? est ce que ca résout le problème du rajout de saisie dans la feuille Excel ?

amitiés
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867
ne suffit-il pas, comme suggéré précédemment, de modifier le code qui crée les nouveaux clients dans la table T_client à partir de la table Leads videoconference, en s'abstenant de créer un nouveau client si un client est déjà dans la table T_client avec les mêmes (nom, prenom, email)?
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020
>
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021

justement la quadrature du cercle est là

j'ai fait l'index sans doublon sur champ nom prenom email comme l'importation écrase systématiquelment la table complétement

si on met pas de doublon sur l'un ou les 3 champs c'est pareil comme l'import ne peut pas écrase la table car risque de doublon, il s'arrête là, pas de copie des nouveaux éléments de la feuille Excel dans la T_client

si au contraire on lui dit ok avec doublon il fait le boulot non seulement il ajoute les nouvelles saisies d'Excel mais aussi les autres saisies déjà importées dans T_client

c'est ça le problème !

d'ou l'idée d'une table transitoire sur Excel on met les nouvelles saisies ( on efface les anciennes ) on se souvient juste de la derniere Id mais donnée normalement sur la table, forcement

on fait la requête ajout qui prends en compte les nouvelles saisies d'excel et qui les ajoute à la table leads videoconference

c'est là que je me suis pris un peu les pieds dans le tapis en fait pour 'l'import on prend la table transitoire qui devrait compléter la table avec les nouvelles saisies idem pour T_client

il reste juste le cas des prospects qui assistent a plusieurs videoconfernces,

qu'ils soient présent dans le formulaire leads video conference c'est normal les action de suivi sont par prospect mais aussi par video conference

par contre il ne faut pas qu'ils soient de nouveau dans la T_client une seule fois dans T_client

a force je m'y perd lol
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867 >
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

ne suffit-il pas, comme suggéré précédemment, de modifier le code du module qui crée les nouveaux clients dans la table T_client à partir de la table Leads videoconference?
ce code peut facilement s'abstenir de créer un nouveau client si un client est déjà dans la table T_client avec les mêmes valeurs pour (nom, prenom, email).
ce code n'a pas besoin que les doublons soient interdits, il va, de lui-même, éviter de créer un nouveau client.
il peut même changer le client de "prospect" en "client", si "conclus" est présent.
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020
>
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021

a condition de savoir coder ce n'est pas mon cas
ton module transforme déjà le prospect" conclu" en client ça c'est déjà fait
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

bon finalement j'ai avancé un peu est ce valable a toi de me le dire ?

1°) j'ai fait une table transitoire j'ai importe la feuille Excel ( la même ) sauf que j'efface systématiquement les données et je saisie mes nouvelles données

2°) une requête ajout sur la table leads videoconference ça fonctionne

3°)j'ai change dans ton module le leads videoconference par le nom de ma table transitoire

c'est ok j'ai effectivement l'ajout d'Exel

forcement puisqu'il n ' y a plus écrasement sytématique de leads videoconference je n'ai donc plus les exports plusieurs fois sur T_client

par contre je n'ai pas résolu le cas ou le même prospect va assister a plusieurs conférences comme c'est réglé sur sans doublon ne fonctionne pas j'avais mis un doublon et un non doublon je pensais que le doublon ne serait pas pris mais le non doublon oui en fait ne prend ni l'un ni l'autre s'il détecte un doublon n’exécute pas le code du tout

ça peut s'arrange ça ? qu'il ne prenne pas le doublon mais qu'il prenne le non doublon ?

donc j'ai avancé un peu plus la peine d'avoir une feuille Excel avec a terme plusieurs centaines de noms plus de doublons dans la T_client reste plus que ce petit problème


il reste peut être à automatiser un peu la feuille Excel par exemple la vider après chaque import ?

mettre en mémoire la dernière Id utilisée ?

et automatiser (changer la maj lead)
par contre je viens de voir que l'on ne pas peut pas mettre dans une macro une requete ajout c'est moche lol

j'aurais pu en une fois tout faire il suffisait d'ajouter cette requête à la macro existante

mais peut on rentrer le code sql dans la macro je viens juste d'y penser si oui comment ?

bonne soirée
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867
je pense que tu as négligé ma suggestion décrite en #20, #23 et #25.
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

ami du plat pays je ne néglige jamais ce que tu me dis, faut il encore que je le comprenne, j'ai déjà essayé le multi index je vais m'y replonger mais ça donnait le même résultat peut être l'ai je mal assimilé j'y retourne

j'ai essayé de résoudre un peu par moi même, j'ai évité certains écueils notamment de faire grossir de façon démesurée la feuille Excel

ensuite d'avoir dans la T_Client uniquement les données ajoutées dans Excel sans avoir obligatoirement la multiplication automatique des saisies déjà faites (gros problème)

si j'ai dans Excel:

durant
dupond
martin

une fois rapatriés dans T_client avec doublon autorisé

durant
dupond
martin

si j'ajoute à la feuille Excel

duguesclin

je me retrouve dans T_client systématiquement avec :
durant
dupond
martin

durant
dupond
martin

duguesclin

la duplication augmente a chaque fois

et si je n'autorise pas les doublons

message sytéme : risque de doublon donc me code s'arrête sans avoir cipier le doublon ça ok mais sans avoir non plus copier l saisie sans doublon !

et a ce momentt j'ai :

durant
dupond
martin

Mais pas Duguesclin

je vais jeter un oeil sur ton lien

mais quand je l'ai fait cela n'a rien changé si doublon existant le code s'arrête et les doublons ne sont pas copies dans T_client mais les saisies sans doublons non plus

si j'autorise les doublons cas si dessus


Si je résume tout fonctionne comme je le souhaitais

sauf que doublon ou pas doublon, index pas index ça ne change rien

si c'est un doublon le code s'arrête s'il est seul sur la feuille Excel le code fait son boulot

mais si j'ai un seul nom en doublon avec 110 noms sans doublons le code stoppe aussi mais sans rapatrier les noms sans doublons

je ne sais pas comment dire plus

mais grâce à toi j'ai pu améliorer mon travail

voici la nouvelle macro qui faut tout en un clic sauf cette histoire de fou de doublon lol

https://onedrive.live.com/redir?resid=962B5E3D3756BDFC!246168&authkey=!ADT-dzicgVsBt8Y&e=LBKjzw




merci a toi
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020
>
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021

je pense que l'on a une incompréhension surtout moi lo,l mais des grands garçons comme nous.... ça va surement s'arranger lol

en fait je pense que l'on parle de la même chose mais mal interprétée on y retourne c'est pratiquement fini se serait dommage

1°)"Je ne suis pas convaincu qu'il est nécessaire d'avoir une table temporaire. "

euh je ne suis pas sûr non plus j'ai fait comme j'ai pu raisonner d'ailleurs c'est plutôt une table transitoire


mes raisons :

la feuille excel c'est en fait la TABLE leads videoconference

- à l'import cette feuille écrase systématiquement et entièrement la table leads

- c'est a dire que si pour une raison x ou y une erreur de manip est faite, je me retrouve avec une table complétement fausse, les requêtes que tu m'as fait et mes stats----> poubelle

- de plus la feuille excel n'est qu'une transition , elle me sert uniquement à remplir la base

ensuite ces données ne me servent plus à rien, si je ne peux pas y toucher comme c'était le cas je vais avoir plusieurs centaines de noms sans intérêt pour moi

donc j'efface et je n'ai à saisir que la nouvelle flopée de noms qui m’intéresse, si une erreur survient ça ne porte que sur qq noms et sur la table transitoire

la requête ajout me mets les nouveaux noms dans la table leads videoconference pas de souci

2°)
"Je suis surpris que, dans la macro, tu appelles ajoutclients() immédiatement après l'importation. Je pensais que tu voulais prendre le temps de d'abord modifier la table Suivi Lead, afin de distinguer les prospects des clients. "


c'est surement une erreur ou dois-je le mettre ?

Mais en fait non je ne distingue pas dans le suivi Leads les prospects des clients ce sont par définition des prospects sauf quand dans suivi leads, la case à cocher "Conclu" est sur vrai, là il devient client

Mais ça se passe dans le module que tu m'as écrit en effet si "conclu " est coché quand ça exporte dans T_Client la case prospect ou client est coche selon le cas

ça fonctionne très bien

mon incompréhension n'est pas là c'est juste en dessous

3°)
"Même si la table T_clients autorise les doublon, le code ajoutclients peut facilement vérifier, afin d'ajouter un client, si un enregistrement ayant les mêmes (prénom, nom, email) est déjà présent, et, dans ce cas, ne pas créer un nouvel enregistrement.
Je pense que cela prend en compte tes différents soucis, entr'autres:
- multiplication automatique des saisies déjà faites
- qu'il ne prenne pas le doublon mais qu'il prenne le non doublon
- le cas des prospects qui assistent a plusieurs videoconfernces "

mais oui je suis 100 % d'accord c'est ce que je souhaite et c'est là que ça coince sur ma mise en œuvre et ma compréhension car je n'obtiens pas ce résultat après tous mes essais !

il faut peut être ajouter dans ton module du code type :

si dans la feuille excel je trouve NomWc+ PrenonWc identique à Nomcoaché + Prenonclient je n'exporte pas ce nom

mais si la ligne au dessus ou 3 en dessous etc, (c'est une image ) je rencontre le même binôme mais non identique à ce moment j'exporte dans les bonnes cases comme codé dans le module ?

sauf que moi je n'ai pas ce résultat ??? si le module rencontre un nom en doublon il stoppe son exportation
( actuellement) mais n'ajoute pas les noms qui ne sont pas des doublons

il ne gère pas les 2 statuts dans la feuille excel doublon et pas doublon

si doublon je ne regarde rien d'autre et je boucle le code sans rien faire

voici le module que tu as écrit j'ai juste changé leads videoconference au début pour la table transitoire mais ça ne change rien ? enfin j'espère

Function ajoutclients()
Dim rslead As DAO.Recordset, rssuivi As DAO.Recordset, rscli As DAO.Recordset
Set rslead = CurrentDb.OpenRecordset("Import Feuille Excel Leads Videoconference")
Set rssuivi = CurrentDb.OpenRecordset("Suivi Lead", dbOpenDynaset)
Set rscli = CurrentDb.OpenRecordset("T_client")
Do While Not rslead.EOF
If rslead![Choix statut] = "Assiste" Then
rscli.AddNew
rscli!PrenomClient = rslead!PrenomWc
rscli!NomCoache = rslead!NomWc
rscli!EMail = rslead!Mail
rscli!CategorieClient = 2
rssuivi.FindFirst ("IdParticipant = " + CStr(rslead!IdParticipant) + " and Conclu ")
If rssuivi.NoMatch Then
rscli!Prospect = True
rscli!Client = False
Else
rscli!Prospect = False
rscli!Client = True
End If
rscli.Update
End If
rslead.MoveNext
Loop 'While Not rslead.EOF
End Function


Va ton finir pas se comprendre? parce que je ne veux pas une autre solution les 3/4 du boulot me vont très bien
tu penses bien, c'est juste cette histoire de doublon que je ne comprends pas pour le 1/4 restant

Mais ça va s'arranger je te remercie de ta patience et de ton implication
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867 >
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

je vais modifier le code pour vérifier, avant d'ajouter un client, si un enregistrement ayant les mêmes (prénom, nom, email) est déjà présent, et, dans ce cas, ne pas créer un nouvel enregistrement.

quand j'aurai fait et testé le changement, je te l'enverrai, et tu pourras le tester, puis décider si tu souhaites garder une table temporaire.
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867 >
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

quand j'écris "le code ajoutclients peut facilement vérifier", je veux dire que je peux, sans beaucoup de travail, modifier le code pour qu'il fasse la vérification.
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020
>
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021

Super je te remercie j'espère que je ne t'aies pas trop dèsobligè
Mes remarques étaient t elles fondees finalement?

J'attends avec impatience ton code

Je pense qu'il réglera en même temps le cas des époux avec le même nom de famille et le prénom différents
Bon codage tu auras mérité de la patrie comme on dit

Si ça règle le problème de : si doublon je ne prends pas mais pas doublon je prends dans la même feuille Excel on est dans l'objectif
Je suppose que pour les saisies manuelles dans T_ client on garde le réglage sur sans doublon sur nomcoache ?

Amitiés

Patrick
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867 >
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

A quelles remarques fais-tu référence? Je ne prends pas toujours le temps de répondre à tout, ou de te signaler quand tu te fourvoies, sauf si c'est important.
Parfois, il est plus simple (pour moi, en tous cas), pour des éléments non critiques, de te laisser découvrir plus tard comment ajuster le tir.

Si tu remets le réglage sur "sans doublon sur nomcoache", cela empêchera le code de créer plusieurs enregistrements avec le même nomcoache.
Je suggère de configurer une clé unique sur la combinaison des trois champs (prenom, nom, email).
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867
Voici le nouveau code proposé.
Je suis reparti d'un code plus ancien, de façon à pouvoir le tester (je pense n'avoir pas la base correspondant au dernier code que tu as partagé). Tu dois donc probablement adapter à nouveau un nom de table dans le code.
Option Compare Database
Option Explicit

Private Sub ajoutclients()
Dim rslead As DAO.Recordset, rssuivi As DAO.Recordset, rscli As DAO.Recordset
Dim clitest As String
Set rslead = CurrentDb.OpenRecordset("Leads Videoconference")
Set rssuivi = CurrentDb.OpenRecordset("Suivi Lead", dbOpenDynaset)
Set rscli = CurrentDb.OpenRecordset("T_client", dbOpenDynaset)
Do While Not rslead.EOF
    If rslead![Choix statut] = "Assiste" Then
        clitest = " true "
        If Not IsNull(rslead!NomWc) Then
            clitest = clitest + " and NomCoache = '" + rslead!NomWc + "' "
        End If
        If Not IsNull(rslead!PrenomWc) Then
            clitest = clitest + " and PrenomClient = '" + rslead!PrenomWc + "' "
        End If
        If Not IsNull(rslead!Mail) Then
            clitest = clitest + " and EMail = '" + rslead!Mail + "' "
        End If
        rscli.FindFirst (clitest)
        If rscli.NoMatch Then
            rscli.AddNew
            rscli!PrenomClient = rslead!PrenomWc
            rscli!NomCoache = rslead!NomWc
            rscli!EMail = rslead!Mail
            rscli!CategorieClient = 2
            rssuivi.FindFirst ("IdParticipant = " + CStr(rslead!ID) + " and Conclu ")
            If rssuivi.NoMatch Then
                rscli!Prospect = True
                rscli!Client = False
            Else
                rscli!Prospect = False
                rscli!Client = True
            End If
            rscli.Update
        End If
    End If
    rslead.MoveNext
Loop 'While Not rslead.EOF
End Sub

Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

merci a toi

je t'avais copié le code juste au dessus, dernier post avec le nom dela nouvelle table

je suppose aussi que je change le Private Sub par function

un copier coller va faire le nécessaire, j'essaie de suite

la casse de la feuille excel a t elle une importance par exemple une fois Maria et une fois maria?


voila le résultat des courses

il y a une erreur de compilation End Function attendu :c'est le message renoyé

et le dernier End Sub est surligné ?

de la nouvelle table a leads vdeo conference c'est bien importe pas de problème mais rien dans T_Client

pour le doublon j'ai fait un copier coller du nom et prénom pou que tout soit exactement conforme

je n'ai mis dans excel que 2 nom un doublon et un nouveau

a tout hasard je mets le code que j'ai rectifie avec function et la nouvelle table

Function ajoutclients()
Dim rslead As DAO.Recordset, rssuivi As DAO.Recordset, rscli As DAO.Recordset
Dim clitest As String
Set rslead = CurrentDb.OpenRecordset("Import Feuille Excel Leads Videoconference")
Set rssuivi = CurrentDb.OpenRecordset("Suivi Lead", dbOpenDynaset)
Set rscli = CurrentDb.OpenRecordset("T_client", dbOpenDynaset)
Do While Not rslead.EOF
If rslead![Choix statut] = "Assiste" Then
clitest = " true "
If Not IsNull(rslead!NomWc) Then
clitest = clitest + " and NomCoache = '" + rslead!NomWc + "' "
End If
If Not IsNull(rslead!PrenomWc) Then
clitest = clitest + " and PrenomClient = '" + rslead!PrenomWc + "' "
End If
If Not IsNull(rslead!Mail) Then
clitest = clitest + " and EMail = '" + rslead!Mail + "' "
End If
rscli.FindFirst (clitest)
If rscli.NoMatch Then
rscli.AddNew
rscli!PrenomClient = rslead!PrenomWc
rscli!NomCoache = rslead!NomWc
rscli!EMail = rslead!Mail
rscli!CategorieClient = 2
rssuivi.FindFirst ("IdParticipant = " + CStr(rslead!ID) + " and Conclu ")
If rssuivi.NoMatch Then
rscli!Prospect = True
rscli!Client = False
Else
rscli!Prospect = False
rscli!Client = True
End If
rscli.Update
End If
End If
rslead.MoveNext
Loop 'While Not rslead.EOF
End Sub
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867
j'avais le dernier code, mais pas la base correspondante.
oui, tu changes private sub en fonction.
je pense que la casse n'a pas d'importance, vu la façon dont la table T_clients est définie.
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

nos 2 messages se sont peut être croisés j'étais en train de le compléter avec le message d'erreur aprés mon essai
je le remets ici

Erreur compilation
End Function attendu

et la dernière ligne End Sub est surligné

j'en ai profitè au dessus dernier post pour te mettre le code que j'ai rectifié on ne sait jamais mais enfin il ny a vait qu'un nom à changer
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020
>
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021

je fais un index ou une clé sur les 3 champs ?
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867 >
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

pour moi, index et clé sont synonymes. l'important, c'est l'unicité (pas de doublon).
le code ajoutclients travaille comme s'il était autorisé à ajouter des clients, sauf si (prenom, nom, email) existe déjà dans la table.
si la table a une contrainte plus forte, le code se plante. le code doit être écrit en tenant compte des contraintes de la table.
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020
>
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021

c 'est ok ça passe sauf que j'avais des prènoms déjà identiques dans T_Client ( ce qui peut arriver ) et sans doublon n'a pas été pris pour prenomClient dans la table T_Client

mais c'est bon c'est exporter comme il faut sur T_Client les doublons non etles nouveaux oui donc pour moi c'est ok

je te remercie tu as souffert lol

amicalement

Patrick
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021
867 >
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

parfait! tu mets la discussion en résolu?
(idem discussion précédente)
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020
>
Messages postés
16050
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
17 juin 2021

oui un grand merci
si qq veut la solution il faut inverser false et true pour le conlu et c'est bon je m'en suis apreçu presque par hasard

encore un grand merci a toi
Messages postés
35
Date d'inscription
lundi 20 avril 2020
Statut
Membre
Dernière intervention
28 avril 2020

ça fonctionne j'ai mis le champ nomcoache et email en sans doublon

par contre dans la table prénomclient n'a pas été pris: message ; risque de doublon... ?

mais c'est passé sur table cleint j'ai laisse prenom en non indexé ?