Récupérer dans un commentaire la valeur d'une cellule d'une autre feuille

Bonjour à tous.

J'ai une feuille de planning dans laquelle 14 lignes comportent des infos sur des projets sur lesquels je travaille. La colonne F contient les initiales du chef de projet (PM) qui m'a confié un job à effectuer. Ces initiales sont lues dans une feuille référencée dans la colonne suivante, G.

Ce que je souhaiterais, c'est que lorsque j'active ma feuille de planning, dans la procédure Activate, VBA crée à la volée des commentaires dans chaque cellule F non vide (c'est-à-dire contenant des initiales de PM), qui m'indiquent le nom complet dudit PM. Par exemple, le commentaire de la cellule indiquant '"AT' afficherait en clair "Achille Talon".

J'ai donc créé le code suivant:

For k = 2 To 14
    If Range("F" & k).Value <> "" Then
        On Error Resume Next
        strComment = Sheets("Projet" & Range("G" & k).Value & " en cours").Range("$F$1").Value
        If Len(Trim(strComment)) = 0 Then
            Range("F" & k).ClearComments
        Else
            With Range("F" & k)
                .ClearComments
                .AddComment
                .Comment.Visible = False
                .Comment.Text Text:=strComment
            End With
            strComment = ""
        End If
    ElseIf Len(Trim(strComment)) = 0 Then
        Range("F" & k).ClearComments
    End If
Next k

Mon problème est que strComment reste désespérément vide, alors que la cellule où le commentaire doit être créé contient bien des initiales de PM.

Et pourtant, la partie indiquant la feuille où rechercher le nom du PM ("Projet" & Range("G" & k).Value") renvoie correctement le nom de cette feuille.

Quelque chose m'échappe. Il doit y avoir une erreur dans mon code pour accéder à la valeur de la cellule F1 dans la feuille concernée. Mais où?

Merci par avance pour toute aide.

Cordialement.

Patrik

Bonjour,

Tu y étais presque, seul la ligne strComment posait problème.

Voir si ça convient ...

Private Sub Worksheet_Activate()
   For k = 2 To 14
      If Range("F" & k).Value <> "" Then
         '        On Error Resume Next
         strComment = Sheets("Projet").Range("G" & k).Value & " en cours " & Sheets("Projet").Range("$F$1").Value
         If Len(Trim(strComment)) = 0 Then
            Range("F" & k).ClearComments
         Else
            With Range("F" & k)
               .ClearComments
               .AddComment
               .Comment.Visible = False
               .Comment.Text Text:=strComment
            End With
            strComment = ""
         End If
      ElseIf Len(Trim(strComment)) = 0 Then
         Range("F" & k).ClearComments
      End If
   Next k
End Sub

ric

Merci, mais j'ai réussi à résoudre le problème, en simplifiant le nom des feuilles référencées.

Le nouveau code est donc le suivant:

For k = 2 To 14
    If Range("F" & k).Value <> "" Then
        On Error Resume Next
        strComment = Sheets(Range("G" & k).Value).Range("$F$1").Value
        If Len(Trim(strComment)) = 0 Then
            Range("F" & k).ClearComments
        Else
            With Range("F" & k)
                .ClearComments
                .AddComment
                .Comment.Visible = False
                .Comment.Text Text:=strComment
            End With
            strComment = ""
        End If
    ElseIf Len(Trim(strComment)) = 0 Then
        Range("F" & k).ClearComments
    End If
Next k

Un commentaire contenant le nom complet du PM est généré pour chaque cellule de la plage F2:F14 qui n'est pas vide.

Cordialement.

Patrik

Rechercher des sujets similaires à "recuperer commentaire valeur feuille"