Coucou Celeda, Les Yves, Brigittes, Gérard et le Forum
Merci beaucoup Celeda pour ces encouragements, et j'espère tout comme toi que Yves sera comblé...
Poue ce qui est d'écrire les commentaires ne pas croire que je les ai écrits !!!
Mais la structure des pages de notre amis Yves (en plus avec des cellules fusionnées Grrrr) ne me permettait pas de gérer tout le classeur sans risque de manque d'intégrité dans la masse de commentaires écrit par VBA...
Mais disons que si çà aide Yves pour ne pas s'user les doigts j'ai pensé à un truc simple pour lui :
Il tape "H" dans une cellule : il reportera en commentaire le texte de la cellule juste en Haut
Il tape "G" dans une cellule : il reportera en commentaire le texte de la cellule juste à Gauche
Il tape "B" dans une cellule : il reportera en commentaire le texte de la cellule juste en Bas
Il tape "D" dans une cellule : il reportera en commentaire le texte de la cellule juste à Droite
Il tape "B2" dans une cellule : il reportera en commentaire le texte de la 2eme cellule à Gauche
Il tape "H2" dans une cellule : il reportera en commentaire le texte de la 2eme cellule juste en Haut
Pour celà il suffit de mettre ce code dans le Private Module de ThisWorkBook :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim L As Integer, C As Integer
Dim TheString As String
Dim Cell As String
Cell = Target.Address
Select Case Target.Value
Case "H": L = -1: C = 0
Case "H2": L = -2: C = 0
Case "G": L = 0: C = -1
Case "G2": L = 0: C = -2 '<<<< On peut faire "G3" et ainsi de suite
Case "D": L = 0: C = 1
Case "B": L = 1: C = 0
Case Else: Exit Sub '<<<< Si on enlève çà on met en commentaire le text tapé si il est différent de "H", "G" etc...
End Select
On Error GoTo ErrorHandler
TheString = Target.Offset(L, C).Text
If TheString = "" Then TheString = "Erreur d'orientation"
CommentsBuilder TheString, Cell
Exit Sub
ErrorHandler:
If Err = 1004 Then
MsgBox "Vous êtes sorti de la zone"
Else
MsgBox "Erreur non gérée " & Err.Number & " " & Err.Description
End If
End Sub
Sub CommentsBuilder(Commentaire$, Adresse$)
With Range(Adresse)
.ClearComments
.AddComment
.Comment.Visible = True
.Comment.Text Text:=Commentaire
.Comment.Shape.TextFrame.AutoSize = True
End With
End Sub
Bon Dimancje à tous et toutes
@+Thierry