Private Sub Worksheet_Change(ByVal Target As Range) 'Merci Robert
If Not Application.Intersect(Target, Range("A1:AA100")) Is Nothing And Target.Count = 1 Then
Range("B2").Select
ActiveWindow.FreezePanes = True
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A1:AA100")) Is Nothing And Target.Count = 1 Then
Dim r As String
r = Target.Address
Range("B2").Activate
ActiveWindow.FreezePanes = True
Range(r).Offset(1, 0).Select
End If
End Sub
Je ne vois pas d'autre solution que de remettre, encore et toujours, les volets à chaque modification de la feuille.Sans protéger la feuille..
Private test As Boolean 'déclare la variable test
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'à chaque changement de la la cellule active
Dim cap As Range 'déclare la variable caa (Cellule Active au Départ)
If ActiveWindow.FreezePanes = True Then Exit Sub 'si les volets sont figés, sort de la procédure
If test = True Then Exit Sub 'si la variable test est vraie, sort de la procédure (évite la boucle)
test = True 'définit la variable test
Set ac = ActiveCell 'définit la cellule de départ
Range("E11").Select 'à adapter à ton cas
ActiveWindow.FreezePanes = True 'fige les volets par rapport à la cellule de ton choix
ac.Select 'sélectionne la cellule de départ
test = False 'reinitialise la variable test
End Sub
Private test As Boolean 'déclare la variable test
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 'à chaque changement de la la cellule active
If ActiveWindow.FreezePanes = True Then Exit Sub 'si les volets sont figés, sort de la procédure
Range("E11").Select 'à adapter à ton cas
ActiveWindow.FreezePanes = True 'fige les volets par rapport à la cellule de ton choix
End Sub
Dim cap As Range 'déclare la variable cap (Cellule Au Premier mouvement)
set cap = ActiveCell 'définit la variable cap
Oui !Mais je souhaitais le figer une bonne fois pour toute et que les utilisateurs ne puisse pas les libérer ! Moche pour les utilisateurs !
[COLOR="DarkSlateGray"][B]Private Sub Workbook_Open()
Dim tmp
Application.ScreenUpdating = False
With ActiveSheet
Feuil1.Activate
tmp = Selection.Address
ActiveWindow.FreezePanes = False
Range("E11").Select
ActiveWindow.FreezePanes = True
Range(tmp).Select
.Activate
End With
Application.ScreenUpdating = True
End Sub[/B][/COLOR]
[COLOR="DarkSlateGray"][B]Private Sub Worksheet_Activate()
Dim tmp
tmp = Selection.Address
ActiveWindow.FreezePanes = False
Range("E11").Select
ActiveWindow.FreezePanes = True
Range(tmp).Select
End Sub[/B][/COLOR]
Sub Les_Volets_Clos()
CommandBars(1).Controls(9).Controls(7).Enabled=False
End Sub