Bonsoir,
quelques jours plus tard....
ci dessous le code de mon application qui gère la mise à jour des commentaires à l'activation de la feuille "Accueil" qui ressemble à votre feuille :
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
For onglet = nb_feuille_sys + 1 To nb_feuille
liste_opération = ""
hauteur = 0.2
texte = ""
For operation = début To fin
' si l'opération est suivi par ce personnel
If Worksheets(onglet).Cells(operation, 24).Value = True And (IsDate(Worksheets(onglet).Cells(operation, 11).Value) Or Worksheets(onglet).Cells(operation, 11).Value = "") Then
' si l'opération est périmée
If Worksheets(onglet).Cells(operation, 27).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, 26).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
For i = 1 To [nb_personnels]
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
C'est surtout pour vous montrer le principe...
@ bientôt
LouReeD