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 :

VBA Faire un retour a la ligne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2017
    Messages : 39
    Par défaut VBA Faire un retour a la ligne
    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
    occurence = InStr(1, str_temp, " ")
            iOldOccurence = 0
            'On recherche les espaces pour mettre à la ligne (ne fonctionne qu'avec les code LCDV et EC name, voir commment faire pour les futures formules)
            While occurence > 0
                str_temp = Mid(str_temp, 1, occurence - 1) & Chr(10) & Mid(str_temp, occurence + 1)
                iOldOccurence = occurence
                occurence = InStr(1, str_temp, " ")
                'Vérification qu'il n'y ai pas plusieurs espace à la suite
                While occurence = iOldOccurence + 1
                    str_temp = Mid(str_temp, 1, occurence - 2) & Mid(str_temp, occurence)
                    iOldOccurence = occurence
                    occurence = InStr(1, str_temp, " ")
                Wend
            Wend
     
            bConjonction_OR_Trouve = False
     
            tab_str_temp = Split(str_temp, Chr(10))
    Bonjour, le code ci dessous qui me fait un retour à la ligne, à chaque espace,
    par exemple dans ma cellule j'ai :
    (JAPON ET CHINE) OU (FRANCE ET ESPAGNE)
    le code va me renvoyer:

    (JAPON
    ET
    CHINE)
    OU
    (FRANCE
    ET
    ESPAGNE)

    Ma question est simple au lieu de travailler sur des espace dans le code j'aimerai travailler sur les "OU" et "ET" et me renvoyer le même résultat

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour

    Il ne te vient bien sûr pas à l'idée d'utiliser très basiquement et très simplement la fonction Replace ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ch = "(JAPON ET CHINE) OU (FRANCE ET ESPAGNE)"
    ch = Replace(ch, " ET ", vbCrLf & "ET" & vbCrLf)
    ch = Replace(ch, " OU ", vbCrLf & "OU" & vbCrLf)
    msgbox ch

  3. #3
    Invité
    Invité(e)
    Par défaut
    Il me vient à l'idée cette solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ch = "(JAPON ET CHINE) OU (FRANCE ET ESPAGNE)"
    ch = Join(Split(Trim(ch), " "), vbCrLf)

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour galoir
    ta solution est bonne, mais uniquement si l'on veut un retour à la ligne pour chaque espace.
    Je suppose que si le demandeur a écrit :
    Ma question est simple au lieu de travailler sur des espace dans le code j'aimerai travailler sur les "OU" et "ET" et me renvoyer le même résultat
    C'est qu'il veut peut-être n'avoir un retour à la ligne QUE pour les ET et les OU, de sorte, par exemple, à pouvoir traiter :

    "Il a dit qu'il sauterait OU plongerait ET s'en irait"

    en

    "Il a dit qu'il sauterait
    OU
    plongerait
    ET
    s'en irait"

  5. #5
    Invité
    Invité(e)
    Par défaut
    en effet, merci

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2017
    Messages : 39
    Par défaut
    Je vous remercie tous les deux! je ne connaissais pas la fonction vbCrLf qui s'avère très utile

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/03/2020, 23h20
  2. Réponses: 6
    Dernier message: 03/10/2012, 22h51
  3. [VBA-E]Retour a la ligne dans la même cellule
    Par el.meyo dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 26/07/2006, 17h28
  4. Comment faire un retour ligne entre des " ??
    Par DrTank dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 09/05/2005, 09h35
  5. Comment faire un retour a la ligne dans un tableaux Word
    Par alexmorel dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 17/06/2004, 09h31

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