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 :

comparer des strings avec retour ligne, comment faire?


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 40
    Points : 42
    Points
    42
    Par défaut comparer des strings avec retour ligne, comment faire?
    Bonjour,

    j'aurais besoin de savoir comment je fais pour vérifier qu'une cellule contient un texte avec des retours ligne au milieu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (texte.ligne1 & vbcrlf & texte.ligne 2 & ...)= string??? then
    donc j'ai ma cellule qui contient le texte, sur plusieurs lignes. Ma question: je met quoi dans la string??

    j'ai essayé avec des "ligne 1" & chr(13)&..; ou avec des vbcrlf mais a chaque fois il trouve que le texte correspond pas quand il devrait...

    Donc que faut-il lui mettre?

    Merci

  2. #2
    Membre actif
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Août 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2014
    Messages : 162
    Points : 207
    Points
    207
    Par défaut
    Bonjour,

    Le saut de ligne est le Chr(13), je pense donc à une recherche tel que : "If Cells(tacellule) contient le chr(13) then...". Je ne sais pas coder cela par contre :s

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Le saut à la ligne dans une cellule est Chr(10) soit la constante vbLf (inséré par Alt+Enter). Une des façons de le détecter est par l'utilisation de la fonction Instr
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If InStr(Range("G2").Value, vbLf) Then MsgBox "Ce texte contient un retour à la ligne"
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 40
    Points : 42
    Points
    42
    Par défaut
    ok merci, j'en sais un peu plus

    Mais du coup ca a l'air un peu plus complexe de vérifier ce que je veux:

    Dans ma cellule, j'ai plusieurs textes possibles:
    texte 1 possible:
    exemple :
    "blablabla 'retour ligne dans le texte vblf
    suitetexte1"
    texte 2 possible:
    "bliblibli 'retour ligne dans le texte vblf
    suitetexte2"

    donc pour savoir lequel est dans la case je fait comment? (sachant que je connais toutes les possibilités.)

    Je suis obligé de découper ma chaine en plusieurs morceaux?

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Pour découper toutes les parties séparées pas un saut à la ligne, tu peux utiliser la fonction Split.
    Exemple (ne pas oublier lors de la mise en production d'ajouter la filiation complète de la cellule (Classeur + Feuille)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Dim tblo() As String, Elem As Byte
     tblo = Split(Range("G2").Value, vbLf)
     For Elem = 0 To UBound(tblo)
      MsgBox tblo(Elem)
     Next
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 40
    Points : 42
    Points
    42
    Par défaut
    Ok merci impeccable, je met résolu!

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/07/2013, 12h41
  2. [WD-2007] publipostage avec plusieurs lignes comment faire ?
    Par rogerfon dans le forum Word
    Réponses: 2
    Dernier message: 20/02/2011, 12h59
  3. Réponses: 4
    Dernier message: 15/02/2010, 11h45
  4. Comment comparer des dates avec la procédure assertEquals de JUNIT ?
    Par andrianiaina dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 25/01/2007, 18h31
  5. comment concatiner des strings avec des nombre
    Par Sara83 dans le forum MATLAB
    Réponses: 3
    Dernier message: 18/10/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