OVH Cloud OVH Cloud

Si clique en B, rebondi en C

5 réponses
Avatar
Caroline L.
Bonjour !

Je cherche à ajouter à la macro suivante :
lorsque que l'on clique dans la colonne B (de la ligne 2 à 1999), on rebondi
dans la ligne active dans la colonne C.
Par exemple : si je clique en B15, je me retrouve automatiquement en C15
si je clique en B264, je me retrouve automatiquement en C264.

----------------------------------------------------------------------------
------
Voici la macro en question (dans laquelle je cherche à ajouter) :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ws As Worksheet
Set ws = ActiveSheet
Set plage = Union(Range("A2:A1999"), Range("C2:I1999"))
If ws.ProtectContents Then
ws.Unprotect "1234"
plage.Locked = True
ws.Protect "1234"
Else
plage.Locked = False
Application.EnableEvents = False
If Intersect(Target, plage) Is Nothing Then
Select Case Target.Row

Case 2000 To 2050
Range("A1999").Select

Case 1
Range("A2").Select


'partout ailleurs
Case Else
Range("A" & ActiveCell.Row).Select

End Select
End If
Application.EnableEvents = True
End If

End Sub
------------------------------------------------------------

Merci beaucoup pour votre aide

Caroline

5 réponses

Avatar
Daniel
Bonsoir.
Si j'ai tout compris, ajoute en fin de macro :
If Intersect(Target, Range("B2:B1999")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, 1).Select
Application.EnableEvents = True
Cordialement.
Daniel
"Caroline L." a écrit dans le message de news:
%
Bonjour !

Je cherche à ajouter à la macro suivante :
lorsque que l'on clique dans la colonne B (de la ligne 2 à 1999), on
rebondi
dans la ligne active dans la colonne C.
Par exemple : si je clique en B15, je me retrouve automatiquement en C15
si je clique en B264, je me retrouve automatiquement en C264.

----------------------------------------------------------------------------
------
Voici la macro en question (dans laquelle je cherche à ajouter) :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ws As Worksheet
Set ws = ActiveSheet
Set plage = Union(Range("A2:A1999"), Range("C2:I1999"))
If ws.ProtectContents Then
ws.Unprotect "1234"
plage.Locked = True
ws.Protect "1234"
Else
plage.Locked = False
Application.EnableEvents = False
If Intersect(Target, plage) Is Nothing Then
Select Case Target.Row

Case 2000 To 2050
Range("A1999").Select

Case 1
Range("A2").Select


'partout ailleurs
Case Else
Range("A" & ActiveCell.Row).Select

End Select
End If
Application.EnableEvents = True
End If

End Sub
------------------------------------------------------------

Merci beaucoup pour votre aide

Caroline




Avatar
Caroline L.
Bonjour Daniel,

c'est parfait ! tout fonctionne très bien. Merci !
En m'inspirant de ce que tu me fourni, j'essaie d'ajouter lorsque je clique
de J2:J1999, je rebondi dans la colonne A sur la ligne suivante. Donc, j'ai
essayé avec ce qui suit mais ça ne marche pas. As-tu une idée de mon erreur
?
Merci encore.

If Intersect(Target, Range("J2:J1999")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target.Offset(1, -10).Select
Application.EnableEvents = True

Caroline


"Daniel" a écrit dans le message de news:
#
Bonsoir.
Si j'ai tout compris, ajoute en fin de macro :
If Intersect(Target, Range("B2:B1999")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, 1).Select
Application.EnableEvents = True
Cordialement.
Daniel
"Caroline L." a écrit dans le message de news:
%
Bonjour !

Je cherche à ajouter à la macro suivante :
lorsque que l'on clique dans la colonne B (de la ligne 2 à 1999), on
rebondi
dans la ligne active dans la colonne C.
Par exemple : si je clique en B15, je me retrouve automatiquement en C15
si je clique en B264, je me retrouve automatiquement en C264.



--------------------------------------------------------------------------
--

------
Voici la macro en question (dans laquelle je cherche à ajouter) :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ws As Worksheet
Set ws = ActiveSheet
Set plage = Union(Range("A2:A1999"), Range("C2:I1999"))
If ws.ProtectContents Then
ws.Unprotect "1234"
plage.Locked = True
ws.Protect "1234"
Else
plage.Locked = False
Application.EnableEvents = False
If Intersect(Target, plage) Is Nothing Then
Select Case Target.Row

Case 2000 To 2050
Range("A1999").Select

Case 1
Range("A2").Select


'partout ailleurs
Case Else
Range("A" & ActiveCell.Row).Select

End Select
End If
Application.EnableEvents = True
End If

End Sub
------------------------------------------------------------

Merci beaucoup pour votre aide

Caroline








Avatar
Daniel
Oui, car si tu as ajouté ton code après le mien, si tu cliques hors de la
plage B2:B1999, tu sors de la macro; c'est le sens de :
If Intersect(Target, Range("B2:B1999")) Is Nothing Then Exit Sub
Egalement c'est Offset(0, -9) qu'il faut mettre. Essaie donc :

If Intersect(Target, Range("B2:B1999")) Is Nothing And _
Intersect(Target, Range("J2:J1999")) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Target.Column = 2 Then
Target.Offset(0, 1).Select
Else
Target.Offset(0, -9).Select
End If
Application.EnableEvents = True

Cordialement.
Daniel
"Caroline L." a écrit dans le message de news:

Bonjour Daniel,

c'est parfait ! tout fonctionne très bien. Merci !
En m'inspirant de ce que tu me fourni, j'essaie d'ajouter lorsque je
clique
de J2:J1999, je rebondi dans la colonne A sur la ligne suivante. Donc,
j'ai
essayé avec ce qui suit mais ça ne marche pas. As-tu une idée de mon
erreur
?
Merci encore.

If Intersect(Target, Range("J2:J1999")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target.Offset(1, -10).Select
Application.EnableEvents = True

Caroline


"Daniel" a écrit dans le message de news:
#
Bonsoir.
Si j'ai tout compris, ajoute en fin de macro :
If Intersect(Target, Range("B2:B1999")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, 1).Select
Application.EnableEvents = True
Cordialement.
Daniel
"Caroline L." a écrit dans le message de news:
%
Bonjour !

Je cherche à ajouter à la macro suivante :
lorsque que l'on clique dans la colonne B (de la ligne 2 à 1999), on
rebondi
dans la ligne active dans la colonne C.
Par exemple : si je clique en B15, je me retrouve automatiquement en
C15
si je clique en B264, je me retrouve automatiquement en C264.



--------------------------------------------------------------------------
--

------
Voici la macro en question (dans laquelle je cherche à ajouter) :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ws As Worksheet
Set ws = ActiveSheet
Set plage = Union(Range("A2:A1999"), Range("C2:I1999"))
If ws.ProtectContents Then
ws.Unprotect "1234"
plage.Locked = True
ws.Protect "1234"
Else
plage.Locked = False
Application.EnableEvents = False
If Intersect(Target, plage) Is Nothing Then
Select Case Target.Row

Case 2000 To 2050
Range("A1999").Select

Case 1
Range("A2").Select


'partout ailleurs
Case Else
Range("A" & ActiveCell.Row).Select

End Select
End If
Application.EnableEvents = True
End If

End Sub
------------------------------------------------------------

Merci beaucoup pour votre aide

Caroline












Avatar
Caroline L.
Re,

oui d'accord je comprends et ça fonctionne.... merci.
Dernière petite chose : lorsque j'essaie de sélectionner toute la feuille,
la macro s'arrête et si je clique sur Débogage, la ligne suivante est en
jaune :
Target.Offset(0, -9).Select

Comment puis-je contourner ? Il est vraiment important que je puisse
"sélectionner tout".

Merci



"Daniel" a écrit dans le message de news:
#
Oui, car si tu as ajouté ton code après le mien, si tu cliques hors de la
plage B2:B1999, tu sors de la macro; c'est le sens de :
If Intersect(Target, Range("B2:B1999")) Is Nothing Then Exit Sub
Egalement c'est Offset(0, -9) qu'il faut mettre. Essaie donc :

If Intersect(Target, Range("B2:B1999")) Is Nothing And _
Intersect(Target, Range("J2:J1999")) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Target.Column = 2 Then
Target.Offset(0, 1).Select
Else
Target.Offset(0, -9).Select
End If
Application.EnableEvents = True

Cordialement.
Daniel
"Caroline L." a écrit dans le message de news:

Bonjour Daniel,

c'est parfait ! tout fonctionne très bien. Merci !
En m'inspirant de ce que tu me fourni, j'essaie d'ajouter lorsque je
clique
de J2:J1999, je rebondi dans la colonne A sur la ligne suivante. Donc,
j'ai
essayé avec ce qui suit mais ça ne marche pas. As-tu une idée de mon
erreur
?
Merci encore.

If Intersect(Target, Range("J2:J1999")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target.Offset(1, -10).Select
Application.EnableEvents = True

Caroline


"Daniel" a écrit dans le message de news:
#
Bonsoir.
Si j'ai tout compris, ajoute en fin de macro :
If Intersect(Target, Range("B2:B1999")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, 1).Select
Application.EnableEvents = True
Cordialement.
Daniel
"Caroline L." a écrit dans le message de news:
%
Bonjour !

Je cherche à ajouter à la macro suivante :
lorsque que l'on clique dans la colonne B (de la ligne 2 à 1999), on
rebondi
dans la ligne active dans la colonne C.
Par exemple : si je clique en B15, je me retrouve automatiquement en
C15
si je clique en B264, je me retrouve automatiquement en C264.





-------------------------------------------------------------------------
-


--
------
Voici la macro en question (dans laquelle je cherche à ajouter) :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ws As Worksheet
Set ws = ActiveSheet
Set plage = Union(Range("A2:A1999"), Range("C2:I1999"))
If ws.ProtectContents Then
ws.Unprotect "1234"
plage.Locked = True
ws.Protect "1234"
Else
plage.Locked = False
Application.EnableEvents = False
If Intersect(Target, plage) Is Nothing Then
Select Case Target.Row

Case 2000 To 2050
Range("A1999").Select

Case 1
Range("A2").Select


'partout ailleurs
Case Else
Range("A" & ActiveCell.Row).Select

End Select
End If
Application.EnableEvents = True
End If

End Sub
------------------------------------------------------------

Merci beaucoup pour votre aide

Caroline
















Avatar
Daniel
Bonjour.
Ajoute la ligne :
On Error Resume Next
avant :
If Target.Column = 2 Then
Cordialement.
Daniel
"Caroline L." a écrit dans le message de news:
%
Re,

oui d'accord je comprends et ça fonctionne.... merci.
Dernière petite chose : lorsque j'essaie de sélectionner toute la feuille,
la macro s'arrête et si je clique sur Débogage, la ligne suivante est en
jaune :
Target.Offset(0, -9).Select

Comment puis-je contourner ? Il est vraiment important que je puisse
"sélectionner tout".

Merci



"Daniel" a écrit dans le message de news:
#
Oui, car si tu as ajouté ton code après le mien, si tu cliques hors de la
plage B2:B1999, tu sors de la macro; c'est le sens de :
If Intersect(Target, Range("B2:B1999")) Is Nothing Then Exit Sub
Egalement c'est Offset(0, -9) qu'il faut mettre. Essaie donc :

If Intersect(Target, Range("B2:B1999")) Is Nothing And _
Intersect(Target, Range("J2:J1999")) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Target.Column = 2 Then
Target.Offset(0, 1).Select
Else
Target.Offset(0, -9).Select
End If
Application.EnableEvents = True

Cordialement.
Daniel
"Caroline L." a écrit dans le message de news:

Bonjour Daniel,

c'est parfait ! tout fonctionne très bien. Merci !
En m'inspirant de ce que tu me fourni, j'essaie d'ajouter lorsque je
clique
de J2:J1999, je rebondi dans la colonne A sur la ligne suivante. Donc,
j'ai
essayé avec ce qui suit mais ça ne marche pas. As-tu une idée de mon
erreur
?
Merci encore.

If Intersect(Target, Range("J2:J1999")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target.Offset(1, -10).Select
Application.EnableEvents = True

Caroline


"Daniel" a écrit dans le message de news:
#
Bonsoir.
Si j'ai tout compris, ajoute en fin de macro :
If Intersect(Target, Range("B2:B1999")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, 1).Select
Application.EnableEvents = True
Cordialement.
Daniel
"Caroline L." a écrit dans le message de news:
%
Bonjour !

Je cherche à ajouter à la macro suivante :
lorsque que l'on clique dans la colonne B (de la ligne 2 à 1999), on
rebondi
dans la ligne active dans la colonne C.
Par exemple : si je clique en B15, je me retrouve automatiquement en
C15
si je clique en B264, je me retrouve automatiquement en C264.





-------------------------------------------------------------------------
-


--
------
Voici la macro en question (dans laquelle je cherche à ajouter) :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ws As Worksheet
Set ws = ActiveSheet
Set plage = Union(Range("A2:A1999"), Range("C2:I1999"))
If ws.ProtectContents Then
ws.Unprotect "1234"
plage.Locked = True
ws.Protect "1234"
Else
plage.Locked = False
Application.EnableEvents = False
If Intersect(Target, plage) Is Nothing Then
Select Case Target.Row

Case 2000 To 2050
Range("A1999").Select

Case 1
Range("A2").Select


'partout ailleurs
Case Else
Range("A" & ActiveCell.Row).Select

End Select
End If
Application.EnableEvents = True
End If

End Sub
------------------------------------------------------------

Merci beaucoup pour votre aide

Caroline