OVH Cloud OVH Cloud

Empecher de modifier texte

2 réponses
Avatar
Fred64
Bonjour tout le monde,
J'ai réalisé une macro qui me permet, lorsque l'utilisateur double clique
sur une cellule, de changer le fond de cette cellule en une autre couleur.
Cependant, je souhaiterai, lors du double clic,empêcher de rentrer dans la
cellule pour modifier le texte. J'ai essayé de protéger la feuille, puis
dans la macro enlever la protection et à la fin la remettre mais j'ai un
message "La cellule est protégée ou en lecture seule" (la macro s'exécute
quand même).
Merci d'avance

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)

'----------------------------RELATION COURS / SEMAINE-----------

If Union(Target, Range("F7:CO92")).Address = Range("F7:CO92").Address Then
Worksheets("Progression sur 2 ans").Unprotect

If Target.Interior.ColorIndex = xlNone Then
Target.Interior.ColorIndex = 44
Target.Borders(xlDiagonalDown).ColorIndex = xlNone
Target.Borders(xlDiagonalUp).ColorIndex = xlNone
Target.AddComment
Target.Comment.Visible = False
Target.Comment.Text Text:="La séquence a été réalisée, cliquez alors 2
fois sur cette cellule"
Target.Comment.Shape.TextFrame.AutoSize = True
Worksheets("Progression sur 2 ans").Protect
Exit Sub
End If

If Target.Interior.ColorIndex = 44 Then
If Target.Borders(xlDiagonalUp).ColorIndex = xlNone Then
Target.Interior.ColorIndex = 44
Target.Borders(xlDiagonalDown).ColorIndex = xlAutomatic
Target.Borders(xlDiagonalDown).LineStyle = xlContinuous
Target.Borders(xlDiagonalDown).Weight = xlThin

Target.Borders(xlDiagonalUp).ColorIndex = xlAutomatic
Target.Borders(xlDiagonalUp).LineStyle = xlContinuous
Target.Borders(xlDiagonalUp).Weight = xlThin

Target.Comment.Delete
Target.AddComment
Target.Comment.Visible = False
Target.Comment.Text Text:="Vous souhaitez supprimer le lien
Séquence/Semaine, cliquez alors 2 fois sur cette cellule"
Target.Comment.Shape.TextFrame.AutoSize = True
Worksheets("Progression sur 2 ans").Protect
Exit Sub
Else
Target.Interior.ColorIndex = xlNone
Target.Borders(xlDiagonalDown).ColorIndex = xlNone
Target.Borders(xlDiagonalUp).ColorIndex = xlNone
Target.Comment.Delete
Worksheets("Progression sur 2 ans").Protect
Exit Sub
End If
End If

End If

End Sub

2 réponses

Avatar
Poulpor
Bonjour,

je crois qu'il te suffit de mettre le parametre "cancel=true" à la fin de
ton code.

Bon courage.

Poulpor



Bonjour tout le monde,
J'ai réalisé une macro qui me permet, lorsque l'utilisateur double clique
sur une cellule, de changer le fond de cette cellule en une autre couleur.
Cependant, je souhaiterai, lors du double clic,empêcher de rentrer dans la
cellule pour modifier le texte. J'ai essayé de protéger la feuille, puis
dans la macro enlever la protection et à la fin la remettre mais j'ai un
message "La cellule est protégée ou en lecture seule" (la macro s'exécute
quand même).
Merci d'avance

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)

'----------------------------RELATION COURS / SEMAINE-----------

If Union(Target, Range("F7:CO92")).Address = Range("F7:CO92").Address Then
Worksheets("Progression sur 2 ans").Unprotect

If Target.Interior.ColorIndex = xlNone Then
Target.Interior.ColorIndex = 44
Target.Borders(xlDiagonalDown).ColorIndex = xlNone
Target.Borders(xlDiagonalUp).ColorIndex = xlNone
Target.AddComment
Target.Comment.Visible = False
Target.Comment.Text Text:="La séquence a été réalisée, cliquez alors 2
fois sur cette cellule"
Target.Comment.Shape.TextFrame.AutoSize = True
Worksheets("Progression sur 2 ans").Protect
Exit Sub
End If

If Target.Interior.ColorIndex = 44 Then
If Target.Borders(xlDiagonalUp).ColorIndex = xlNone Then
Target.Interior.ColorIndex = 44
Target.Borders(xlDiagonalDown).ColorIndex = xlAutomatic
Target.Borders(xlDiagonalDown).LineStyle = xlContinuous
Target.Borders(xlDiagonalDown).Weight = xlThin

Target.Borders(xlDiagonalUp).ColorIndex = xlAutomatic
Target.Borders(xlDiagonalUp).LineStyle = xlContinuous
Target.Borders(xlDiagonalUp).Weight = xlThin

Target.Comment.Delete
Target.AddComment
Target.Comment.Visible = False
Target.Comment.Text Text:="Vous souhaitez supprimer le lien
Séquence/Semaine, cliquez alors 2 fois sur cette cellule"
Target.Comment.Shape.TextFrame.AutoSize = True
Worksheets("Progression sur 2 ans").Protect
Exit Sub
Else
Target.Interior.ColorIndex = xlNone
Target.Borders(xlDiagonalDown).ColorIndex = xlNone
Target.Borders(xlDiagonalUp).ColorIndex = xlNone
Target.Comment.Delete
Worksheets("Progression sur 2 ans").Protect
Exit Sub
End If
End If

End If

End Sub





Avatar
Fred64
Merci Poulpor,
Ca marche très bien (a part qu'il fallait le placer au début du code).

A bientot

"Poulpor" a écrit dans le message de
news:
Bonjour,

je crois qu'il te suffit de mettre le parametre "cancel=true" à la fin de
ton code.

Bon courage.

Poulpor



Bonjour tout le monde,
J'ai réalisé une macro qui me permet, lorsque l'utilisateur double clique
sur une cellule, de changer le fond de cette cellule en une autre
couleur.
Cependant, je souhaiterai, lors du double clic,empêcher de rentrer dans
la
cellule pour modifier le texte. J'ai essayé de protéger la feuille, puis
dans la macro enlever la protection et à la fin la remettre mais j'ai un
message "La cellule est protégée ou en lecture seule" (la macro s'exécute
quand même).
Merci d'avance

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As
Boolean)

'----------------------------RELATION COURS / SEMAINE-----------

If Union(Target, Range("F7:CO92")).Address = Range("F7:CO92").Address
Then
Worksheets("Progression sur 2 ans").Unprotect

If Target.Interior.ColorIndex = xlNone Then
Target.Interior.ColorIndex = 44
Target.Borders(xlDiagonalDown).ColorIndex = xlNone
Target.Borders(xlDiagonalUp).ColorIndex = xlNone
Target.AddComment
Target.Comment.Visible = False
Target.Comment.Text Text:="La séquence a été réalisée, cliquez alors
2
fois sur cette cellule"
Target.Comment.Shape.TextFrame.AutoSize = True
Worksheets("Progression sur 2 ans").Protect
Exit Sub
End If

If Target.Interior.ColorIndex = 44 Then
If Target.Borders(xlDiagonalUp).ColorIndex = xlNone Then
Target.Interior.ColorIndex = 44
Target.Borders(xlDiagonalDown).ColorIndex = xlAutomatic
Target.Borders(xlDiagonalDown).LineStyle = xlContinuous
Target.Borders(xlDiagonalDown).Weight = xlThin

Target.Borders(xlDiagonalUp).ColorIndex = xlAutomatic
Target.Borders(xlDiagonalUp).LineStyle = xlContinuous
Target.Borders(xlDiagonalUp).Weight = xlThin

Target.Comment.Delete
Target.AddComment
Target.Comment.Visible = False
Target.Comment.Text Text:="Vous souhaitez supprimer le lien
Séquence/Semaine, cliquez alors 2 fois sur cette cellule"
Target.Comment.Shape.TextFrame.AutoSize = True
Worksheets("Progression sur 2 ans").Protect
Exit Sub
Else
Target.Interior.ColorIndex = xlNone
Target.Borders(xlDiagonalDown).ColorIndex = xlNone
Target.Borders(xlDiagonalUp).ColorIndex = xlNone
Target.Comment.Delete
Worksheets("Progression sur 2 ans").Protect
Exit Sub
End If
End If

End If

End Sub