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

Macros et VBA Excel Discussion :

Découper des chaines de caractères


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 24
    Par défaut Découper des chaines de caractères
    Bonjour tout le monde,

    Pourriez vous m'aider svp.
    En fait j'ai dans une cellule( exemple c) le prénom de la personne je veux normaliser la colonne prenom pour ne garder que le vrai prénom et non pas tous les prénoms de la personne. car dans les document juridique on met le vrai prénom suivi du prénom de son père suivi du prénom de son parrain
    je veux donc garder que le vrai prénom et éliminer les prénoms juridique.


    la difficulté réside dans le fait que le vrai prénom est parfois composé donc pour avoir le vrai prénom on ne peut pas se contenter de garder que le premier mot, il faut garder les deux premier mot, en comparant les 2 premiers mots a la liste des prénoms composé qui existe dans une autre feuille si les 2 premiers mots correspondent a un prénom composé alors on garde les 2 premiers mots comme prénom sinon on garde que le premier mot comme prénom.

    Avez une idée SVP ?

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    un nom composé ne comprend pas d'espace mais un tiret
    comment sont donc saisis tes prénoms ?
    Car sans tiret, il sera bien difficile de distinguer pare exemple le prénom composé "Jean Jacques" du vrai prénom Jean, suivi du prénom Jacques du père !
    En général, on évite toute ambiguîté en utilisant la virgule pour séparer les prénoms ...
    Si tu n'as aucun séparateur, je vois mal comment tu pourrais t'en sortir (imagine donc que le père soit inconnu et qu'on attribue à l'enfant son vrai prénom (Jean), suivi, donc, du nom composé, lui, d'un parrain (Pierre Henri).
    Si par malheur tu as Jean Pierre dans ta liste des noms composés, ton enfant va se voir attribuer le "vrai prénom" de Jean-Pierre et non de Jean !!!
    Gaffe, donc !!!! (il vaut mieux repenser d'entrée de jeu l'ensemble).

  3. #3
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 24
    Par défaut Bonjour
    Merci d'avoir me répondre,

    Dans ma liste les prénoms composés ne contiens pas des tiret mais des espaces et j'ai une autre liste qui contiens tous les prénoms composés ce que je veux faire c'est de parcourir ma liste (exemple feuille1) en comparant chaqu'un de ces éléments avec toutes les éléments de la liste des noms composé (exemple feuille2) si l'élément de feuille1 est identique à un élément de feuille2 je garde ce prénom( cet élément) sinon je ne garde que le premier mot .

    Merci

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Voial peut être un debut de piste de réflexion

    imaginon que prenom soit ta vraiable de type string dans la quelle tu récupère le prenom complet de la personne (avec tous les prénom secondaire)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Dim Tableau() As String
    dim prenomtest as string
    Dim i As Integer
    dim estcomp as boolean
    dim prenom as string
     
    Tableau = Split("prenom", " ")
         'tableau est désormé un tableau dans lequel se trouve les different prénom 
     
    prenomtest=tableau(1) & " " & tableau(2)
    'prenomtest constien maintenant les deux premier prenom 
    'exemple poure jean francois marc prenomtest= jean francois   
     
    'Ensuite tu compares prenomtest  à ta liste qui se trouve en feuil2 colonne A
     
    estcomp=false
    for i= 1 to feuil2.Range("A65536").End(xlUp).Row
        if feuil2.cells(i,1)=prenomtest then
                 estcomp=true
                 exit for
        end if
    next i 
     
    if estcomp then
        prenom=prenomtest
    else 
        prenom=tableau(1)
    endif
     
    'prenom contient maintenant le prenom de la personne composé ou non
    end sub
    Voila je n'ai pas vraiment la possibilité de tester le code (ou mêm de vérifier la syntaxe) si il y a un problème dit le nous

    un guiide pour travailler sur les chaine de caractère si ca peut t'aider
    http://silkyroad.developpez.com/VBA/...nesCaracteres/

    Juste pour ma culture générale dans quel pays le prénom du parrain est-il nécessaire pour les document juridique?

  5. #5
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Par rapport a ce que tu veux faire une chose m'étonne beaucoup :

    Dans ma liste les prénoms composés ne contiens pas des tiret mais des espaces et j'ai une autre liste qui contiens tous les prénoms composés
    Admettons que tu mettes en place ce que tu dis, comment ferras-tu la diférence entre quelqu'un dont le premier nom est Jean et le second Pierre et celui qui s'appelle Jean-Pierre

  6. #6
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 24
    Par défaut
    Citation Envoyé par aalex_38 Voir le message
    Par rapport a ce que tu veux faire une chose m'étonne beaucoup :

    Admettons que tu mettes en place ce que tu dis, comment ferras-tu la diférence entre quelqu'un dont le premier nom est Jean et le second Pierre et celui qui s'appelle Jean-Pierre
    Oui c vrai ce que tu m'as dit mais dans ce cas je considère que la personne s'appelle jean pierre car il existe le prénom composé 'jean-pierre' .

    Merci

    Krovax,

    Merci beaucoup pour la réponde, mais le code m'affiche erreur d'exécution '9':
    L'indice n'appartient pas à la sélection.

    Juste pour ma culture générale dans quel pays le prénom du parrain est-il nécessaire pour les document juridique?
    D'après ce qu'ils m'ont dit, c'est en France.

  7. #7
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    hmm, en france le parainnage est religieux et donc absolument pas juridique, mais il était parrait-il d'usage de donner en deuxième prénom le nom du parrain (usage qui se perd), mais j'émet quand même un doute.

    Bon revenons à la macro

    Pourais tu me dire sur quelle ligne exactement le programme bloque?

  8. #8
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    C'est bon j'aipu tester voici le bon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    Private Sub CommandButton1_Click()
     
    Dim Tableau() As String
    Dim prenomtest As String
    Dim i As Integer
    Dim estcomp As Boolean
    Dim prenom As String
    prenom = Cells(1, 2)
     
    Tableau = Split(prenom, " ")
         'tableau est désormé un tableau dans lequel se trouve les different prénom
     
    prenomtest = Tableau(0) & " " & Tableau(1)
    'prenomtest constien maintenant les deux premier prenom
    'exemple poure jean francois marc prenomtest= jean francois
     
    'Ensuite tu compares prenomtest  à ta liste qui se trouve en feuil2 colonne A
     
    estcomp = False
    For i = 1 To Feuil2.Range("A65536").End(xlUp).Row
        If Feuil2.Cells(i, 1) = prenomtest Then
                 estcomp = True
                 Exit For
        End If
    Next i
     
    If estcomp Then
        prenom = prenomtest
    Else
        prenom = Tableau(0)
    End If
     
    'prenom contient maintenant le prenom de la personne composé ou non
     
    MsgBox (prenom)
    End Sub
    les changement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tableau = Split(prenom, " ")
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tableau = Split("prenom", " ")
    sinon on entre le mot prnom et nom le contenue de la variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    prenomtest = Tableau(0) & " " & Tableau(1)
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    prenomtest = Tableau(1) & " " & Tableau(2)
    Le tableau commence à 0 et non à 1
    idem pour
    La ca marche sur mon fichier exemple

  9. #9
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour Fatima et le forum,
    Le temps que tu travailles sur tes codes, je te confirme que le prénom du parrain (en France) n'a rien de juridique, tu peux d'ailleurs n'avoir qu'un seul prénom

    Bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  10. #10
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 24
    Par défaut
    Bonjour casefayere,

    Merci pour l'information.

    et très bonne journée

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

Discussions similaires

  1. Bash - Découper une chaine de caractères
    Par nicolas.pissard dans le forum Shell et commandes GNU
    Réponses: 13
    Dernier message: 16/12/2014, 13h18
  2. Réponses: 8
    Dernier message: 22/02/2010, 09h35
  3. [VB.NET]comment on filtre des chaines de caractères ?
    Par zouhib dans le forum Windows Forms
    Réponses: 61
    Dernier message: 14/06/2006, 14h33
  4. [C++.net]Concatener des chaines de caractère
    Par Dlyan dans le forum MFC
    Réponses: 3
    Dernier message: 27/03/2006, 15h25
  5. Repérer des chaines de caractères formatée dans du texte
    Par jeremiegrenoble dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 01/02/2006, 13h06

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