Code trop long

bonjour a tous, pouvez vous me dire comment faire car j'ai un code que j'applique a une feuille pour décaler la positions des commentaire et je dois l'appliquer à environ 300 cellules sur la meme colonne, ne sachant comment faire, j'essaie de rentrer chaque celule dans mon code mais pas assez de place.

avez vous une idée, voici mon code

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim cmt, c

Set cmt = ActiveSheet.Comments

For Each c In cmt

c.Visible = False

Next

If Target.Address = "$J$4" Or Target.Address = "$J$5" Or Target.Address = "$J$6" Or Target.Address = "$J$7" Or Target.Address = "$J$8" Or Target.Address = "$J$9" Or Target.Address = "$J$10" Or Target.Address = "$J$11" Or Target.Address = "$J$12" Or Target.Address = "$J$13" Or Target.Address = "$J$14" Or Target.Address = "$J$15" Or Target.Address = "$J$16" Or Target.Address = "$J$17" Or Target.Address = "$J$18" Or Target.Address = "$J$19" Or Target.Address = "$J$20" Or Target.Address = "$J$21" Or Target.Address = "$J$22" Or Target.Address = "$J$22" Or Target.Address = "$J$24" Or Target.Address = "$J$25" Or Target.Address = "$J$26" Or Target.Address = "$J$27" Or Target.Address = "$J$28" Or Target.Address = "$J$29" Or Target.Address = "$J$30" Or Target.Address = "$J$31" Or Target.Address = "$J$32" Or Target.Address = "$J$33" Or Target.Address = "$J$34" Or Target.Address = "$J$35" Or Target.Address = "$J$36" Or Target.Address = "$J$37" Or Target.Address = "$J$38" And Not Target.Comment Is Nothing Then

Target.Comment.Visible = True

Target.Comment.Shape.Top = Target.Top - 30

Target.Comment.Shape.Left = Target.Left - 65

End If

End Sub

Bonsoir,

Peut-être comme ceci

If not intersect(Target, Range("J$4:J$38") Is Nothing and And Not Target.Comment Is Nothing

A+

merci mais ça ne marche pas ainsi, j'ai beaucoup de mal avec les codes

bonsoir,

il y a un "and" de trop dans l'instruction proposée par BrunoM45

If not intersect(Target, Range("J$4:J$38") Is Nothing And Not Target.Comment Is Nothing

correct, j'avais remarqué, il manque aussi une parenthèse fermé mais même avec avec ces correctifs, le code ne fonctionne pas

rebonsoir

correction du code à mettre dans le module de la feuille

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim cmt, c
    Set cmt = ActiveSheet.Comments
    For Each c In cmt
        c.Visible = False
    Next
    If Not Intersect(Target, Range("J$4:J$38")) Is Nothing And Not Target.Comment Is Nothing Then
        Target.Comment.Visible = True
        Target.Comment.Shape.Top = Target.Top - 30
        Target.Comment.Shape.Left = Target.Left - 65
    End If
End Sub

super, Merci beaucoup, cela fonctionne comme je l'attendais. vous êtes un génie.

cordialement

Rechercher des sujets similaires à "code trop long"