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

Word Discussion :

MACRO - VBA - Délimiter une String à l'aide d'un Split au premier retour de ligne [WD-2013]


Sujet :

Word

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut MACRO - VBA - Délimiter une String à l'aide d'un Split au premier retour de ligne
    Bonjour à tous,

    J'ai un petit souci tout bête mais qui commence à me prendre pas mal de temps, j'aimerais connaître la condition qui faut entrer dans un Split avec comme délimiteur un retour à la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Str = Split(Str, "???", -1)
    La chaine que je rentre :

    "Bonjour bla bla bla
    XXX
    dzdzdzz
    ddz"

    ----

    Ce que je veux obtenir :

    "Bonjour bla bla bla"

    ----


    Voilà j'espère que j'ai été claire

    Merci d'avance.

  2. #2
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Bonjour à toi,

    Est ce que tu veux spliter ou plutôt virer les retours à la ligne pour tout avoir sur une seule ligne ?

    Pour splitter sur un vrai retour à la ligne CR+LF => Split(variable, vbCrLf)Pour replacer seulement pour avoir sur une seule ligne direct => Replace(variable, vbCrLf, " ")
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par cerede2000 Voir le message
    Bonjour à toi,

    Est ce que tu veux spliter ou plutôt virer les retours à la ligne pour tout avoir sur une seule ligne ?

    Pour splitter sur un vrai retour à la ligne CR+LF => Split(variable, vbCrLf)
    Pour replacer seulement pour avoir sur une seule ligne direct => Replace(variable, vbCrLf, " ")

    Je souhaite spliter sur un retour à ligne, j'ai testé la solution avec vbCrLf mais j'ai obtenu une "incompatibilité du type" :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mavariable = Split(mavariable, vbCrLf)

    vbCrLf est un mot clé du langage ou j'ai mal compris ta réponse ?

    :/

  4. #4
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    En effet vbCrLf est une constante
    Elle correspond au groupement dex des caractères qui compose un retour à la ligne à savoir Chr(13) & Chr(10)
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Sinon, au lieu de Spliter il n'y aurait pas une autre moyen de juste récupéré la première ligne ?

  6. #6
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Pour faire ça le split est ce qu'il y a de plus rapide !
    Pour la première ligne => Split(mavariable, vbCrLf)(0)Alors que sinon tu va devoir faire une recherche du premier vbCrLf, puis extraire cette partie.... Bref plus long.
    Split fait parti des traitement de chaîne rapide et simple

    Qu'est ce qui te pose soucis avec Split ?
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Nom : Sans titre.jpg
Affichages : 1949
Taille : 6,3 Ko

    Je ne récupère pas la première ligne lorsque je split ma String avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Variable1 = ActiveDocument.Shapes(1).TextFrame.TextRange.Text
     Variable1 = Split(Variable1, vbNewLine)(0)
    Je me demande si c'est bien un retour à la ligne la condition ? Le signe n'est pas ne montre pas un retour à la ligne dans la photo que j'ai jointe.

  8. #8
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Bon la on va arrêter les devinettes !

    Tu demande comment on split sur un retour à la ligne, je te réponds.
    Maintenant tu part sur autre chose....

    Explique clairement et précisément ce que tu cherche à faire, on va tous les deux gagner du temps !
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Ok désolé de ne pas avoir été clair,

    je vais aller directement au but, j'ai ce type de document Word et je veux récupérer dans une variable String le "Bonjour BLA BLA BLA".

    J'arrive à récupérer tout le texte mais pas à le spliter pour ne garder que le "Bonjour BLA BLA BLA".

    D'où l'ouverture de cette question au forum...

    exemple.docx

  10. #10
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Ok donc vu que c'est une fin de paragraphe il faut juste splitter sur un vbCr => Split(Variable1, vbCr)(0)vbCr constante qui correspond à Chr(13)
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2016
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par cerede2000 Voir le message
    Ok donc vu que c'est une fin de paragraphe il faut juste splitter sur un vbCr => Split(Variable1, vbCr)(0)
    vbCr constante qui correspond à Chr(13)
    MERCIIIIIIII !!!!!!!!

    C'est exactement ça qui me faillait.

    Et merci pour ta patience

  12. #12
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Pas de souci
    Pense à quand les réponses te satisfont
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

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

Discussions similaires

  1. [Toutes versions] Adapter une macro VBA sur une google sheet
    Par Kiouane dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 18/04/2016, 17h39
  2. Problème VBA: Activer une feuille à l'aide d'une variable
    Par andy05 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/03/2014, 15h10
  3. [XL-2003] Appeler une macro VBA depuis une cellule
    Par Ainelle dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 29/04/2011, 23h43
  4. Réponses: 2
    Dernier message: 05/03/2009, 17h43
  5. [vba] convertir une string en date
    Par megapacman dans le forum Access
    Réponses: 1
    Dernier message: 11/09/2006, 15h46

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