IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Manipulation de chaînes : séparation Nom/Prénom depuis Excel


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 961
    Par défaut Manipulation de chaînes : séparation Nom/Prénom depuis Excel
    Bonjour à tous.
    Voilà, je récupère des infos client depuis une base de données vers Excel, et donc dans ma colonne, j'ai des informations de type NOM PRENOM.
    Alors en fait, ce que je voudrais faire, c'est séparer les nom et le prénom pour récupérer les infos sur Access par la suite. Le truc, c'est que ce n'est pas si simple : il y a des noms composés. Donc en général, il y a un tiret entre les deux noms, mais pas toujours (ex. DUPONT DURAND). Ensuite, même chose pour les prénoms : le tiret n'est pas toujours présent (ex. ANNE MARIE).
    Donc je ne sais pas si c'est faisable, mais je voudrais séparer les noms et prénoms qui sont dans une même colonne, dans deux colonnes séparées.

    Merci d'avance à ceux qui prendront la peine de m'aider

  2. #2
    Membre confirmé Avatar de ullgom
    Inscrit en
    Mai 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2006
    Messages : 59
    Par défaut
    Bonjour,

    Si tu n'as aucun caractère de délimitation ça parait compliqué.
    En ce qui concerne le traitement tu peux le faire soit avec des formules dans ton Excel à coup de gauche droite et de recherche du caractère délimiteur

    Soit dans une requête d'Access qui ferait un update sur le même principe soit par traitement VBA dans Excel ou dans Access

    pour un nom simple sous excel par exemple
    Jean Dupont
    tu fais gauche("Jean Dupont";recherche("Jean Dupont";" ";1)-1) ça te donne le prénom
    et pour le nom tu fais droite("Jean Dupont";nbcar("Jean Dupont")-recherche("Jean Dupont";" ";1))

    Je peux pas t'en dire plus, sinon il te faudrait une liste exostive des prénoms possible pour déduire les prénoms composés mais ça parait un peu lourdingue

  3. #3
    Membre émérite Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 961
    Par défaut
    Voilà, c'est hélas ce que je pensais aussi
    Merci de ton aide quand même

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2007
    Messages
    184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2007
    Messages : 184
    Par défaut
    bonjout,
    J'ai eu il a bien longtemps le même genre de problème à résoudre.
    Quelques idées pour faires avancer...

    Dans Excel, les noms (de famille) sont ils en majuscules ?
    Si oui, cela pourrait se tester.

    2 autres suggestions,

    1°) en faisant l'hypothèse que la majorité de la cellule NOM PRENOM comporte en tout 2 mots.
    - si 2 mots tu separe en 2
    - s'il y a des séparateus "-" tu sépares en 2
    - si > 2 mots tu stockes cette valeur nb de mot dans un champ
    - ensuite sur une requête Sélection, tu affiche les enregistrements avec nb mots > 2
    - et tu fais la séparation à la main (couper, coller)
    (il faut requête modifiable qui impacte sur les données)

    Si tu as de nombreuses lignes à importer je pense que le jeu en vaut la chandelle

    2°) si tu est agile du clavier

    - export en fichier texte
    - tu mets au clavier un séparateur (, par exemple)
    - tu importes le fichier texte

    (on dois pouvoir facilement faire 1 ligne par seconde !)


    La vraie question est .....combien y a t'il d'enregistrements ?

    bon courage...

  5. #5
    Membre émérite Avatar de azertix
    Homme Profil pro
    Technicien d'assistance informatique
    Inscrit en
    Juin 2007
    Messages
    961
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien d'assistance informatique

    Informations forums :
    Inscription : Juin 2007
    Messages : 961
    Par défaut
    - J'ai une centaine d'enregistrements à chaque export qui aura lieu une fois pas semaine.
    - Tout est toujours en majuscules (nom et prénom).
    - Je n'ai pas de séparateur ormis les espaces entre le nom et le prénom.
    - La séparation à la main est exclue car le but de l'application est de faire gagner du temps à une équipe.

    Je crois que ça va être dur

  6. #6
    Membre confirmé Avatar de Arola78
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2003
    Messages : 133
    Par défaut
    Bonjour,
    Pour info.
    J'ai eu le même problème à résoudre il y a qq temps, à savoir :
    dans la table Valeurs il y a une colonne 'Comments'. Dans cette colonne il faut trouver la chaîne de caractères 'Siège social à' et récupérer le mot qui suit et qui se termine par un point (.). Exemple : Comments = '....... Siège social à Lyon. .....' il faut récupérer Lyon.
    La requête que j'ai écrit est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT UCASE(REPLACE(REPLACE(REPLACE((REPLACE (REPLACE(Left(Siège,InStr(Siège,'.')-1),',',' '), 'è', 'e')),'é','e'), '-',' '),'î','i')) AS SiègeSocial
    FROM Valeurs, [SELECT Index, Titre, REPLACE(RIGHT(RIGHT(Comments,(LEN(Comments)-INSTR(Comments,'Siège'))+1),(LEN(RIGHT(Comments,(LEN(Comments)-INSTR(Comments,'Siège'))+1))-INSTR(RIGHT(Comments,(LEN(Comments)-INSTR(Comments,'Siège'))+1),'à')-1)), ' ', '.') AS Siège FROM Valeurs AS Interne]. AS [%$##@_Alias]
    WHERE Domaine='Mines' and ((([Interne].[Index])=[Valeurs].[Index]) AND (([Interne].[Titre])=[Valeurs].[Titre]));
    La table Valeurs a 400 enregistrements, l'éxécution est immédiate. La clause Where est facultative

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. séparation d'un champ nom-prénom
    Par greg778 dans le forum Delphi
    Réponses: 1
    Dernier message: 09/05/2007, 11h46
  2. J'aimerais connaitre le nom de "sheets" excel
    Par huon dans le forum Access
    Réponses: 4
    Dernier message: 29/08/2005, 13h32
  3. Ouverture d'un template Word depuis Excel
    Par modus vivendi dans le forum VBA Word
    Réponses: 1
    Dernier message: 14/08/2005, 10h29
  4. Comment remplir un ComboBox avec le nom des feuilles Excel ?
    Par libracom dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 27/06/2005, 15h14
  5. Problemes d'importation depuis excel
    Par KANCRENAZ dans le forum Access
    Réponses: 3
    Dernier message: 17/02/2005, 09h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo