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 :

problème de like [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4
    Par défaut problème de like
    Bonjour !

    Je voudrais faire une comparaison d'une variable string (designation)avec une chaîne de caractères, et pour cela j'utilise like (que j'ai déjà utilisé auparavant dans mon programme et cela fonctionne).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select case designation
    Case designation Like "Management" Or designation Like "management"
            Nb_Management = Val(Workbooks(nom_FP).Worksheets("F (1)").Cells(curs_2, 28).Value)
            skip = True
            Range(Cells(curs_2, 1), Cells(curs_2, 50)).Delete
        Case designation Like "AQ*"
    Voici mon code. Je sais qu'à un moment précis, à l'entrée dans le case, designation ="Management", et d'ailleur, si je selectionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    designation Like "Management" Or designation Like "management"
    j'ai un petit message me disant que l'expression est vraie.

    Or pdt l'execution, excel passe directement au case suivant, qui est faux, comme le reste, et finit donc sur le case else, mais ce n'est pas ce que je veux.
    Une idée ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Voir l'aide sur Select Case
    Il est bien stipulé que Like n'est pas géré...

    (sic)
    opérateur de comparaison
    Caractère ou symbole indiquant une relation entre plusieurs valeurs ou expressions. Il s'agit notamment des opérateurs inférieur à (<), inférieur ou égal à (<=), supérieur à (>), supérieur ou égal à (>=), différent de (<>) et égal (=). Les opérateurs de comparaison Is et Like peuvent également être utilisés. N'oubliez pas que les opérateurs Is et Like ne peuvent servir d'opérateurs de comparaison dans une instruction Select Case.

  3. #3
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    mon idée est l'instruction Select Case n'est pas du tout respectée ‼

    Exemple extrait de l'aide en ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Select Case Number
        Case 1 To 5
        Debug.Print "Entre 1 et 5"
     
        Case 6 To 8 
        Debug.Print "Entre 6 et 8"
     
        Case Is > 8
        Debug.Print "Supérieur à 8"
    End Select
    L'expression évaluée dans le Select Case n'a donc pas à être répétée dans les lignes Case


    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    change tes case par des if...

  5. #5
    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,

    Plutot que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Case designation Like "Management" Or designation Like "management"
    Comme EngueEngue, je préconise les "if", en ajoutant ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ......IF Ucase(designation) Like Ucase("management") then
    ........
    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...)

  6. #6
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4
    Par défaut
    Ok merci pour ces réponses rapides et claires. J'avais bien entendu essayé sans répéter le variable sur laquelle le case est effectué, mais avec le like, c'était peine perdu (en tout cas l'erreur était là bien claire ). Je n'avais pas regardé en effet dans l'aide du case, merci donc.
    Je vais faire avec les if, particulièrement plébiscités, bien que mettre des elsif à la pelle ( je dois vérifier que designation soit différent de 5 chaînes de caractères différents) ne me soit pas franchement immédiate.

    Merci donc, et bonne soirée.

  7. #7
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 171
    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 : 13 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    En faisant un Select Case True cela fonctionne parfaitement avec Like
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub TestLike()
     Dim designation As String
     designation = "Ceci est un management"
     '  designation = "Ceci est un texte"
     Select Case True
      Case designation Like "*Management*" Or designation Like "*management*"
       MsgBox "management se trouve dans la chaîne " & designation
      Case Else
       MsgBox "management ne se trouve pas dans la chaîne " & designation
     End Select
    End Sub
    Si la casse ne doit pas être sensible je travaillerais avec cette instruction UCASE(Designation) Like "*management*" comme préconisé par Dominique
    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

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

Discussions similaires

  1. Problème de like et accents
    Par pagetronic dans le forum Outils
    Réponses: 3
    Dernier message: 04/11/2006, 12h52
  2. Problèmes avec LIKE
    Par sami_c dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 26/09/2006, 12h16
  3. Problème avec LIKE
    Par Ti-R dans le forum Requêtes
    Réponses: 9
    Dernier message: 07/09/2006, 11h58
  4. probléme requête LIKE
    Par clara2005 dans le forum Requêtes
    Réponses: 14
    Dernier message: 13/03/2006, 23h55
  5. Problémé avec LIKE est %
    Par lassmust dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 03/10/2005, 17h00

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