Message au passage sur une cellule

Bonjour,

J'ai un excel avec 2 onglets.

  • Onglet 1:
    • Colonne A : Liste de noms de projets (ex: A2 : ProjetX1, A3 : ProjetY2, etc.)
    • Colonne B : Les points bloquants de chaque projet (ex: B2 : Pas de budget, B3 : Pas de points bloquants, etc.)
  • Onglet 2 :
    • Colonne A : on retrouve une liste de noms de projets
    • Colonne B : juste "oui" ou "non" si pour le projet en colonne A, il y a un point bloquant ou non (j'ai utilisé une formule en référence à l'onglet 1)

Jusqu'ici pas de problème.

Maintenant j'aimerais que lorsque je passe la souris dans l'onglet 2 sur un "Oui" ou un "Non" de la colonne B, s'affiche en infobulle ou en commentaire ou autre, le points bloquant associé au projet (et qui se trouve en colonne B de l'onglet 1).

J'imagine qu'il faudrait avoir recours à la fonction xlookup.

Chose que je sais faire si je veux faire apparaitre l'info associée dans une autre cellule.

Mais là il faudrait que l'info associée apparaisse temporairement au survol des cellules de la colonne B (onglet 2) ; dans une fenêtre, un commentaire, quelque chose de flottant ou autre...

D'avance merci!

Bonsoir,

sans se lancer dans une programmation "usine à gaz" le commentaire est de loin le plus simple car les cellules n'ont pas par VBA de détection "survol".

A l'activation de l'onglet, un code VBA va chercher les données et les inscrit dans le commentaire de chaque cellule. Comme cela, au survol de la souris, le commentaire s'affiche avec les données.

Mon code en exemple, mais pas facile sorti du contexte :

Sub Init_Commentaires()
    Application.ScreenUpdating = False
    Worksheets("Accueil").Unprotect
    Worksheets("Accueil").Range("A8:A" & [nb_personnels] + 7).ClearComments
    Dim liste_opération As String, hauteur, texte As String
    ' scan de toutes les feuilles du personnel
    début = [décalage] + 2
    fin = [décalage] + [nb_opérations] + 1
    ' nombre de feuilles dans le classeur
    nb_feuille = Worksheets.Count
    ' nombre de feuille autre que fiche de suivi personnel
    nb_feuille_sys = [nb_feuilles_system]
    ' on boucle toutes les feuilles de suivi de personnel
    For onglet = nb_feuille_sys + 1 To nb_feuille
        liste_opération = ""
        hauteur = 0.2
        texte = ""
        ' on boucle sur chaque opération
        For operation = début To fin
            ' si l'opération est suivi par ce personnel
            If Worksheets(onglet).Cells(operation, 33).Value = True Then
                ' si l'opération est périmée
                If Worksheets(onglet).Cells(operation, 36).Value = True Then
                    texte = " - dépassée depuis le " & Worksheets(onglet).Cells(operation, 13).Value
                ' si l'opération est limite
                ElseIf Worksheets(onglet).Cells(operation, 35).Value = True Then
                    texte = " - limite de validitée le " & Worksheets(onglet).Cells(operation, 13).Value
                ' si l'opération n'est pas faite
                ElseIf Worksheets(onglet).Cells(operation, 11).Value = "" Then
                    texte = " - Non effectuée"
                Else
                    texte = ""
                End If
                ' si il ya a un commentaire sur cette opération on agrandit la zone commentaire
                If texte <> "" Then
                    liste_opération = liste_opération & texte & " - " & Worksheets(onglet).Cells(operation, 9).Value & Chr(10)
                    hauteur = hauteur + 0.2
                End If
            End If
        Next operation
        ' on boucle sur la liste des personnel pour trouver "le bon"
        For i = 1 To [nb_personnels]
            ' quand on le trouve et s'il y a un commentaire à afficher
            If Worksheets("Accueil").Cells(7 + i, 1).Value = Worksheets(onglet).Name And liste_opération <> "" Then
                ' ajout du commentaire et mise en forme
                Worksheets("Accueil").Cells(7 + i, 1).AddComment
                Worksheets("Accueil").Cells(7 + i, 1).Comment.Visible = True
                Worksheets("Accueil").Cells(7 + i, 1).Comment.Text Text:=liste_opération
                Worksheets("Accueil").Cells(7 + i, 1).Comment.Visible = False
                Worksheets("Accueil").Cells(7 + i, 1).Comment.Shape.ScaleWidth 8#, msoFalse, msoScaleFromTopLeft
                Worksheets("Accueil").Cells(7 + i, 1).Comment.Shape.ScaleHeight hauteur, msoFalse, msoScaleFromTopLeft
            End If
        Next i
    Next onglet
    Worksheets("Accueil").Protect
    Application.ScreenUpdating = True
End Sub

En vous le postant je me rend compte d'incohérence dans le code mais mis à part ça, il fonctionne, il ajoute un commentaire avec une ligne pour chaque opération périmée ou en limite etc... Evidemment pour vous ce seront d'autre données !

@ bientôt

LouReeD

Rechercher des sujets similaires à "message passage"