Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 VBA Déplacement de la cellule active dans une ligne sélectionnée

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

danielco

XLDnaute Accro
Bonjour,

J'utilise cette macro pour mettre en surbrillance la ligne de la cellule active :

VB:
Sub Worksheet_SelectionChange(ByVal Target As Range)
  Set Adr = ActiveCell
  Application.EnableEvents = False
  Rows(ActiveCell.Row).Select
  Adr.Activate
  Application.EnableEvents = True
End Sub

Quand je me sers de la flèche droite pour déplacer la cellule active, lorsque celle-ci arrive au bord de la fenêtre, elle revient au milieu de l'écran et y reste, même en appuyant sur la flèche droite. Ce sont alors les colonnes qui se décalent vers la gauche. Est-il possible d'éviter ce comportement ?

merci d'avance.

Daniel

PS. J'ai indiqué MS365 mais la macro est destinée à un utilisateur ayant une version antérieure.
 
Solution
En revanche gros souci avec ce genre de code, il est impossible de sélectionner plusieurs cellules
Ce n'est vraiment pas un gros souci :
VB:
Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Selection.CountLarge > 1 Then Exit Sub
  Set Adr = ActiveCell
  Application.ScreenUpdating = False
  Application.EnableEvents = False
  Rows(ActiveCell.Row).Select
  Adr.Activate
  Application.EnableEvents = True
End Sub
Bonjour danielco,

Pour éviter le cadrage intempestif :
VB:
Sub Worksheet_SelectionChange(ByVal Target As Range)
  Set Adr = ActiveCell
  Application.ScreenUpdating = False
  Application.EnableEvents = False
  Rows(ActiveCell.Row).Select
  Adr.Activate
  Application.EnableEvents = True
End Sub
A+
 
En revanche gros souci avec ce genre de code, il est impossible de sélectionner plusieurs cellules
Ce n'est vraiment pas un gros souci :
VB:
Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Selection.CountLarge > 1 Then Exit Sub
  Set Adr = ActiveCell
  Application.ScreenUpdating = False
  Application.EnableEvents = False
  Rows(ActiveCell.Row).Select
  Adr.Activate
  Application.EnableEvents = True
End Sub
 
Bonjour danielco,

Pas ce problème de mon côté, mais bon je suis en O365 🤭

En revanche gros souci avec ce genre de code, il est impossible de sélectionner plusieurs cellules

A+
Donc :

VB:
Sub Worksheet_SelectionChange(ByVal Target As Range)
  Application.ScreenUpdating = False
  Set Adr = Selection
  Application.EnableEvents = False
  Selection.EntireRow.Select
  Adr.Activate
  Application.EnableEvents = True
End Sub

Daniel
 
Apparemment mon post #4 n'a pas été vu.

La macro peut d'ailleurs se simplifier :
VB:
Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Selection.CountLarge > 1 Then Exit Sub
  Set Adr = ActiveCell
  Application.ScreenUpdating = False
  ActiveCell.EntireRow.Select
  Adr.Activate
End Sub
 
@job75
Je sais 😂 dans le contexte du code initial, ça l'était 🤭
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…