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 :

Lorsque je survole les éléments d'une liste de validation je veux une info-bulle


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 57
    Points : 25
    Points
    25
    Par défaut Lorsque je survole les éléments d'une liste de validation je veux une info-bulle
    bonjour,

    j'aimerais lorsque je survole les différents éléments d'une liste dans données/validation/option qu'une info-bulle différente s'affiche pour chaque élément de cette liste.

    Merci de votre aide...

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    Le code suivant vous servira si ma supposition est juste. Vous avez une zone de données qui sont gérées par la validation de donnée. Dans la validation de donnée, il est possible d'écrire un petit message pour indiquer à l'utilisateur le type de données qu'il peut entrer dans cette cellule. Seulement ce message ne s'affiche QUE quand la cellule est sélectionnée ! Et vous aimeriez que il s'affiche lorsque l'on survole la cellule. C'est bien ça ?

    Si oui, les commentaires sont votre solution et le code suivant permet de recopier le message défini dans la validation de donnée.
    La fonction hasComment permet de ne pas essayer de créer un commentaire s'il est déjà créé car cela génère une erreur (à même titre que d'appeler la propriété text d'un commentaire si celui ci n'existe pas encore).

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Sub Survol()
        Dim dataValid As Range
        Dim c As Range
        Dim msg As String
     
        Set dataValid = Range(Cells(3, 6), Cells(8, 6))
     
        For Each c In dataValid
            msg = c.Validation.InputTitle & Chr(10) & c.Validation.InputMessage
            If hasComment(c) Then
                c.Comment.Text msg
            Else
                c.AddComment msg
            End If
        Next c
    End Sub
     
    Function hasComment(whichCell As Range) As Boolean
     
    If whichCell.Count > 1 Then
        MsgBox "Veuillez fournir en paramètre une plage de maximum 1 cellule", vbOKOnly, "erreur de paramètre"
    Else
        On Error GoTo noComment
        hasComment = True
        If whichCell.Comment.Visible = True Then
            'rien à faire
        End If
    End If
    Exit Function
     
    noComment:
        hasComment = False
    End Function
    J'espère que ça vous aidera.

    Bonne soirée,

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 57
    Points : 25
    Points
    25
    Par défaut
    grandement apprécié vote réponse. Mais pour plus de spécificité voici un exemple....

    Petite erreur dans l'exemple :

    On doit lire C2 au lieu de C6.
    Fichiers attachés Fichiers attachés

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Je ne trouve pas
    Bonjour,

    J'ai regardé votre fichier et j'avoue que je ne trouve pas la solution. Personnellement, je ne pense pas que ce soit possible avec un liste déroulante de validation. J'ai un peu regardé les propriété d'un contrôle activeX comboBox (qui est l'équivalent de la liste déroulante mais en contrôle activeX) mais aucune propriété ne me permet de savoir si le curseur de la souris est au-dessus d'un autre nom de ville dans la liste. Il faudrait alors chercher avec l'évenement mousemove et calculer par la position de la souris, au-dessus de quel élément de la liste on se trouve (hauteur de la police entre donc en compte).

    Si quelqu'un a une meilleure solution, je suis curieux, le problème a fini par m'intéresser !

    Bonne soirée

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 57
    Points : 25
    Points
    25
    Par défaut
    Merci de votre intérêt.

    Bonne journée!!

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/09/2012, 16h42
  2. Réponses: 3
    Dernier message: 14/08/2012, 10h24
  3. Réponses: 4
    Dernier message: 01/03/2012, 19h50
  4. Réponses: 2
    Dernier message: 29/02/2012, 15h20
  5. Réponses: 8
    Dernier message: 17/01/2012, 16h48

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