Bonjour tout le forum ,
SVP j'ai réalisé une application en VBA et je désire d'empêcher à l'utilisateur de changer le nom de toutes les feuilles de l'application .
j'ai cherché et j'ai trouvé ce code
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveSheet.Name <> "Exemple" Then
ActiveSheet.Name = "Exemple"
End If
End Sub
Ma question c'est que , est ce qu'il y a une autre astuce simple que ça pour empêcher à la fois toutes les feuilles du classeur à ne pas être modifiées de leur nom?
Si non , se je devrais utiliser ce code comment je dois le réunir avec ce code que je l'ai déjà dans deux de mes feuilles d'Excel et qui contiennent Private Sub Worksheet_Change(ByVal Target As Range). Ce code qui permet de ne pas cocher deux cellules en X en même ligne.
Le code est le suivant :
Dim TEST As Boolean 'déclare la variable TEST
Private Sub Worksheet_Change(ByVal Target As Range)
Dim PL As Range 'déclare la variable PL (PLage)
Set PL = Range("Trier,Organiser,Nettoyer,Standardiser,Maintenir") 'définit la variabel PL
'si plusieurs cellules sélectionnées, sortir de la procédure
If Target.Cells.Count > 1 Then Exit Sub
'si le changement a lieu ailleurs que dans la plage PL, sort de la procédure
If Application.Intersect(Target, PL) Is Nothing Then Exit Sub
' Traiter le retour sur N/A après la saisie de N
Application.EnableEvents = False
If Target.Column = 6 Then
Cells(Target.Row, 7).ClearContents
Cells(Target.Row, 5).ClearContents
Target.Value = "X"
End If
Application.EnableEvents = True
'si variable TEST est Vrai, sortir de la procédure
If TEST = True Then TEST = False: Exit Sub
'définit la variable TEST
TEST = True
'efface les trois cellules de la ligne
Cells(Target.Row, 4).Resize(1, 3).ClearContents
'inscrit "X" dans la cellule ... quelque soit la saisie faite par l'utilisateur
Target.Value = "X"
'efface les remarques ... Si Oui ou NA sont sélectionnés
If Target.Column = 4 Or Target.Column = 6 Then Cells(Target.Row, 7).ClearContents
'redéfinit la variable TEST
TEST = False
End Sub
merci beaucoup