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 :

Question pour une msgbox [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 3
    Par défaut Question pour une msgbox
    Bonjour,

    Je débute en VBA et je souhaiterais votre aide pour afficher une msgbox qui me permettrait de lister toutes les cellules d'une plage nommée DELAI et présentant des valeurs supérieures à 21.
    (Les cellules vides devant être ignorées)

    J'ai commencé le code ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub DELAI()
        For Each Cellule In [DELAI]
            If Cellule.Value > 21 Then MsgBox "La cellule " & Cellule.Address(0, 0) & " est supérieure à 21."
        Next
    End Sub
    Le problème est le suivant :
    Il me présente toutes les cellules de la sélection qui sont vides également ???
    Je souhaite afficher toutes les cellules répondant au critère dans la même msgbox...

    Vraiment un grand merci par avance pour votre aide...

    Tom

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Salut Tom, bienvenue sur le forum.
    Juste une remarque : Evite d'utiliser le même nom pour une procédure, une plage ou variable. On ne se jamais ce que VBA va bien pouvoir comprendre.
    Sinon, ton code me paraît bien

    (Pour placer les balises code qui rendront ton code plus lisible dans tes messages, sélectionne-le et fais un clic sur "#")
    Bonne soirée

    Edit
    As-tu vérifié que tes données sont bien des valeurs ?
    (Mais ça n'expliquerait tout de même pas que des cellules ayant pour valeur zéro se retrouvent sélectionnées...)

  3. #3
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour Tom24 ouskel le forum j'ai teste pas de probleme en changent le nom de la macro ???

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    En effet, il est bizarre que la version 2007 n'affiche pas un message d'erreur, car c'est le cas sur la version 2000 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each Cellule In [DELAI]
    Erreur de compilation :
    Fonction ou variable attendue.
    tant que l'on a pas changé le nom de la procédure.

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 3
    Par défaut Pb qui persiste...
    Bonjour,

    J'ai bien changé le nom de la macro (JOURS) afin de ne pas faire d'amalgame avec le nom de la plage nommée (DELAI).
    Ce qui est étrange, c'est que les cellules vides soient sélectionnées et donc considérées comme supérieures à 21 ??
    Pour information utile, j'ai des formules de calcul dans les cellules de la plage concernée....

    Merci à vous

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Bonjour tom,
    Teste ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub JOURS()
        For Each Cellule In [DELAI]
            If Val(Cellule) > 21 Then MsgBox "La cellule " & Cellule.Address(0, 0) & " est supérieure à 21."
        Next
    End Sub
    si ça fonctionne alors tu as un autre problème

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

Discussions similaires

  1. Question pour une interface graphique
    Par Loufoq dans le forum API graphiques
    Réponses: 8
    Dernier message: 05/02/2009, 00h22
  2. Questions pour une convention
    Par VENTEE dans le forum Droit du travail
    Réponses: 1
    Dernier message: 31/07/2007, 10h49
  3. Quelques questions pour une réorientation
    Par Lloyd dans le forum Etudes
    Réponses: 2
    Dernier message: 05/03/2007, 22h30
  4. Réponses: 16
    Dernier message: 05/08/2006, 12h07
  5. [2D] Mini-projet : question pour une interface graphique
    Par kitsune dans le forum Développement 2D, 3D et Jeux
    Réponses: 15
    Dernier message: 10/03/2006, 15h59

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