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 :

Transformer une chaîne de caractères [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    480
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 480
    Points : 164
    Points
    164
    Par défaut Transformer une chaîne de caractères
    Bonjour,

    J'aimerais transformer une chaîne de caractères comme suite...

    • LEBRUN Marc -> LEB M.
    • VOLDRICK Valentin -> VOL V.
    • ...


    Enfin, voilà vous avez compris le principe
    Merci d'avance

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test()
    Dim machaine
    machaine = "toto leblageur"
    machaine = Left(machaine, 3) & " " & Mid(Split(machaine, " ")(1), 1, 1) & "."
    MsgBox machaine
    End Sub
    si tu la veux en majuscule c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    machaine = UCase(Left(machaine, 3) & " " & Mid(Split(machaine, " ")(1), 1, 1) & ".")
    et si tu veux simplement en nom propre (the first lettre en maj)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    machaine = StrConv(Left(machaine, 3) & " " & Mid(Split(machaine, " ")(1), 1, 1) & ".", vbProperCase)
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    480
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 480
    Points : 164
    Points
    164
    Par défaut
    Bonjour,

    Je vais tester, mais déjà un tout grand merci d'avoir pris du temps pour moi
    Bon week-end

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    480
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 480
    Points : 164
    Points
    164
    Par défaut
    Re-bonjour...

    Cela fonctionne très bien, mais j'ai un problème avec les exceptions avec particule ou autre...

    Exemples :

    • VAN DEVELD Cécile -> VAN D. => VAN D C. ou VD C.
    • VANDER MALD Olivier -> VAN M. => VANDER M O. ou VM O.
    • de PRAMT Cédric -> de P. => de P C. ou deP C.


    Problème aussi avec les prénom composés...

    Exemples :

    • MOREAUX Jean-Pierre -> MOR JP.




    Y a-t-il une solution ?

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour on peut faire face a quelque exeption mais pas toute dans le sens ou exel n'a pas de dictionnaire de nom ou de prenom

    exemple

    • VAN DEVELD Cécile -> VAN D. => VAN D C. ou VD C.
    • VANDER MALD Olivier -> VAN M. => VANDER M O. ou VM O.
    • de PRAMT Cédric -> de P. => de P C. ou deP C.


    comment veux tu que vba ou meme excel devine quoi est le nom ou le prenom

    est ce que le prenom c'est PRAMT Cédric ou le nom est de PRAMT

    cela vba excel ne peut pas le deviner IMPOSSIBLE!!

    imagine
    de PRAMT Jean-paul-> de P. => de P C. ou deP C.
    ou meme
    saint honoré pierre jean
    on fait quoi quand les noms ET!! prenoms sont composés

    ta reponse etait dans ta question
    il y aura toujours une exeption ou 2 qui passeront a la trappe

    d'autant plus que si le nom est composé tu change la regle des 3 caracteres du nom

    vba n'a pas encore une fonction "boule de christal" il faudra attendre office 2099 pour ca


    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    480
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 480
    Points : 164
    Points
    164
    Par défaut
    Juste...

    J'ai résolu le problème en donnant la possibilité à l'utilisateur de modifier manuellement le champ...

    Bon week-end

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    sinon au mieux que je puisse faire

    la formule dans une cellule exemple en b1 tu met
    =nom_abrégé(A1)
    sub de test pour tester une chaine en vba
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
        MsgBox nom_abrégé("De PRAMT Cédric")
    End Sub
    la fonction dans un module standard
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Function nom_abrégé(t As String)
        Dim texte$
        t = Replace(t, "-", " ")
        tabl = Split(t, " ")
        For i = 0 To UBound(tabl)
            If i = 0 Then
                texte = texte & Mid(tabl(i), 1, 3)
            Else
                texte = texte & IIf(i < UBound(tabl), " ", "") & Left(tabl(i), 1)
            End If
        Next
        nom_abrégé = UCase(texte)
    End Function
    resultat des formule
    Nom : Capture.JPG
Affichages : 391
Taille : 56,9 Ko

    mais ne fait pas d'illusion il pourrais y avoir des ratés selon la composition des noms/prenom qui des fois sont en 3 mots
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    480
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 480
    Points : 164
    Points
    164
    Par défaut
    Super merci

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

Discussions similaires

  1. [XL-2007] VBA. Transformer une chaîne de caractère en date
    Par kimou75 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/02/2016, 15h36
  2. [Visual I/O] Transformer une chaîne de caractères en un nom de variable
    Par GlaD69 dans le forum Autres IDE
    Réponses: 0
    Dernier message: 20/09/2012, 16h13
  3. Réponses: 3
    Dernier message: 09/02/2009, 17h46
  4. Transformer une chaîne de caractères en lien hypertexte
    Par laurentdepibrac dans le forum VBA Access
    Réponses: 4
    Dernier message: 14/05/2008, 10h35
  5. Réponses: 3
    Dernier message: 08/02/2007, 11h55

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