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

Retour sur la cellule précédemment active

  • Initiateur de la discussion Initiateur de la discussion Gil_Se
  • Date de début Date de début

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 !

Gil_Se

XLDnaute Occasionnel
Bonjour à tous.
Je souhaite après avoir cliqué sur l'une des cellules d'une zone, que la cellule active revienne à sa position précédente.
Je vous joint un fichier pour être plus clair.

Ci-dessous la macro:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
ActiveSheet.Unprotect
Set zone1 = Range("JourSem")
If Not Intersect(Target, zone1) Is Nothing Then
Range("B1").Value = Target.Value
End If
End Sub


Merci de votre aide.
Gilles
 

Pièces jointes

Re : Retour sur la cellule précédemment active

Re
J'ai trouvé la bonne macro si cela peut aider:

Public mem
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Set zone1 = Range("Planning")
Set zone2 = Range("JourSem")
If Not Intersect(Target, zone1) Is Nothing Then mem = Target.Address
If Not Intersect(Target, zone2) Is Nothing Then
Range("B1").Value = Target.Value
Range(mem).Offset(0, 0).Select
End If
End Sub

Bonne journée à tous
 
Re : Retour sur la cellule précédemment active

Bonjour Gil_Se,
En regardant, il y a un risque d'erreur.
En ouvrant le classeur si la première action est de selectionner une cellule de la plage "JourSem", la variable mem n'est pas initialisée. Dans ce cas on part en Débogage.
Pour éviter cela une proposition:
VB:
Private mem As Range
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("Planning")) Is Nothing Then Set mem = Target
If Not Intersect(Target, Range("JourSem")) Is Nothing Then
    Range("B1").Value = Target.Value
    If Not mem Is Nothing Then
        mem.Select
    Else
        Range("A1").Select
    End If
End If
End Sub
Cordialement
 
- 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

Réponses
9
Affichages
404
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…