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 :

évaluer une chaîne comme critère de condition en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 126
    Par défaut évaluer une chaîne comme critère de condition en VBA
    Bonjour à tous,

    J'ai lu cette discussion.

    J'aimerais savoir si cela existe en vba mais dans Access (et pour traiter une variable et non une cellule excel).

    J'ai essayé Evaluate(MaVar & "< 10") par ex, mais cela ne fonctionne pas (erreur "incompatibilité de type") quel que soit le type de MaVar (testé avec double, string, variant...).

    Quelqu'un a-t-il une solution pour effectuer ce genre de calcul ?

  2. #2
    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 173
    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 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Sauf erreur de ma part, la fonction EVALUATE n'est pas présente dans Access.
    Voici un exemple vite fait qui fonctionne avec Excel ou avec Access
    Le code de la fonction
    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
    Function Compare(Valeur1 As Double, comparateur As String) As Boolean
      Select Case True
        Case InStr(comparateur, ">=") > 0
          Compare = Valeur1 >= Val(Mid(comparateur, 3))
        Case InStr(comparateur, "<=") > 0
          Compare = Valeur1 <= Val(Mid(comparateur, 3))
        Case InStr(comparateur, ">") > 0
          Compare = Valeur1 > Val(Mid(comparateur, 2))
        Case InStr(comparateur, "<") > 0
          Compare = Valeur1 < Val(Mid(comparateur, 2))
        Case InStr(comparateur, "<>") > 0
          Compare = Valeur1 <> Val(Mid(comparateur, 3))
        Case InStr(comparateur, "=") > 0
          Compare = Valeur1 = Val(Mid(comparateur, 2))
        Case Else
          Compare = False ' Ou afficher un msgbox 
      End Select
    End Function
    La procédure de test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test()
      Debug.Print Compare(40, "<>40")
    End Sub
    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

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 126
    Par défaut
    Bonjour et merci pour l'astuce. En fait je viens de trouver la solution avec la fonction eval(). Je l'avais testé mais elle ne fonctionnait pas car mes décimaux utilisaient une virgule en séparateur.. il faut un point.
    Donc en gros elle fait la même chose que evaluate, mais pour Access.

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 15/11/2011, 14h41
  2. Utiliser la valeur du premier enregistrement d'une table comme critère
    Par le_gueux90 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 25/03/2008, 15h55
  3. Utiliser une chaîne comme nom de méthode - est ce possible ?
    Par mikaelm dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 10/03/2008, 10h55
  4. [Requête] Utiliser une date comme critère
    Par guyom_ dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 01/02/2007, 08h58
  5. évaluer une chaîne comme critère de condition en VBA (excel)
    Par fabien.toune dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/09/2005, 14h50

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