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

Faire revenir curseur en A1

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 !

un internaute

XLDnaute Impliqué
Bonjour le forum,
Je n'arrive pas à faire revenir le curseur en A1 après enregistrement du fichier.
J'ai essayé de mettre
Code:
.Range("A1").Select
à plusieurs endroits...quelque chose m'échappe!!!
Merci pour vos éventuelles réponses
Bien cordialement
 
Re : Faire revenir curseur en A1


Oublie du code VBA!!!

Code:
Sub AfficherMasquerColonnes()
Dim i As Integer, Decalage As Integer
Dim Sh As Shape

With ActiveSheet
    .Unprotect Password:="" 'mot de passe à placer entre ces guillemets
    Set Sh = .Shapes(Application.Caller)
    If Sh.TopLeftCell.Column > 1 Then Decalage = 7
    
    If .Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = True And _
       .Range(.Columns(6 + Decalage), .Columns(7 + Decalage)).Hidden = True Then i = 1
    
    If .Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = False And _
       .Range(.Columns(6 + Decalage), .Columns(7 + Decalage)).Hidden = True Then i = 2
       
    If .Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = True And _
       .Range(.Columns(6 + Decalage), .Columns(7 + Decalage)).Hidden = False Then i = 3
       
    If .Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = False And _
       .Range(.Columns(6 + Decalage), .Columns(7 + Decalage)).Hidden = False Then i = 4
    Select Case i
    Case 1
      .Range(.Columns(2 + Decalage), .Columns(3 + Decalage)).Hidden = True
      .Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = False
    Case 2
      .Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = True
      .Range(.Columns(6 + Decalage), .Columns(7 + Decalage)).Hidden = False
    Case 3
      .Range(.Columns(2 + Decalage), .Columns(7 + Decalage)).Hidden = False
    Case 4
      .Range(.Columns(4 + Decalage), .Columns(7 + Decalage)).Hidden = True
 
    End Select
    .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
    , AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True, Password:="" 'mot de passe à placer entre ces guillemets
End With
End Sub
 
Re : Faire revenir curseur en A1

Bonjour à tous

Essaies ceci
Code:
Sub a()
Application.Goto [A1], True
End Sub

EDITION : A mettre ici dans ton code
End Select
Application.Goto .[A1], True

PS: Test OK sur mon PC.
 
Dernière édition:
Re : Faire revenir curseur en A1

Re,

PS: Test OK sur mon PC.
Si, si cela fonctionne.

Pour t'en convaincre je te copie l'intégralité de ton code avec l'ajout fait là ou j'avais indiqué qu'il fallait le faire
(décidément il y a beaucoup de problème de lunette aujourd’hui...🙄)

Code:
Sub AfficherMasquerColonnes()
Dim i As Integer, Decalage As Integer
Dim Sh As Shape

With ActiveSheet
    .Unprotect Password:="" 'mot de passe à placer entre ces guillemets
    Set Sh = .Shapes(Application.Caller)
    If Sh.TopLeftCell.Column > 1 Then Decalage = 7
    If .Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = True And _
       .Range(.Columns(6 + Decalage), .Columns(7 + Decalage)).Hidden = True Then i = 1
    If .Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = False And _
       .Range(.Columns(6 + Decalage), .Columns(7 + Decalage)).Hidden = True Then i = 2
    If .Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = True And _
       .Range(.Columns(6 + Decalage), .Columns(7 + Decalage)).Hidden = False Then i = 3
    If .Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = False And _
       .Range(.Columns(6 + Decalage), .Columns(7 + Decalage)).Hidden = False Then i = 4
    Select Case i
    Case 1
      .Range(.Columns(2 + Decalage), .Columns(3 + Decalage)).Hidden = True
      .Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = False
    Case 2
      .Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = True
      .Range(.Columns(6 + Decalage), .Columns(7 + Decalage)).Hidden = False
    Case 3
      .Range(.Columns(2 + Decalage), .Columns(7 + Decalage)).Hidden = False
    Case 4
      .Range(.Columns(4 + Decalage), .Columns(7 + Decalage)).Hidden = True
 End Select
    Application.Goto .[A1], True
    .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
    , AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True, Password:="" 'mot de passe à placer entre ces guillemets
End With
End Sub
 
Re : Faire revenir curseur en A1


Marche toujours pas!
Pas problème de lunette.
Lorsque je tape 100 dans cellule A4 puis enregistrement du fichier le curseur reste sur cellule A4!
Voilà
Merci Staple1600
Cordialement à toi
 
Re : Faire revenir curseur en A1

Re


Cela marche chez moi parce que j'ai testé sur une fichier que j'ai du créé, faute de trouver un fichier exemple dans ta discussion.

Joins un fichier exemple, sur lequel je te testerai ma ligne de code et là on finira par être dans la certitude 😉

Donc au final, nous avons bien encore ici un problème de lunettes 😉
(Je dis encore parce que cela fait 4 fois que je fais ce copier/coller dans le fil de nouveaux membres du forum)
 
Re : Faire revenir curseur en A1


Voilà le fichier,
Si c'est nécessaire je changerais de lunette car je vais chez l'ophtalmo jeudi.

Fichier joint
 
Re : Faire revenir curseur en A1

Re


Dans mon fichier je n'ai heureusement pas de cellules fusionnées
Dans le tien, si.
Donc avec ton fichier, cette version de ma ligne fonctionne (j'ai testé sur ton fichier)
Application.Goto .Cells(1, 1).Range("A1"), True
Finalement la première version aussi (je viens de retester)
D’où l'importance de la présence du fichier exemple 😉

Et en modifiant ainsi, cela fonctionne, non ?

NB: Le reste de la procédure restera inchangé, et tu supprimes la ligne précédemment ajouté après le End Select
Code VB:
Select Case i
Case 1
.Range(.Columns(2 + Decalage), .Columns(3 + Decalage)).Hidden = True
.Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = False
Application.Goto .Range("A1"), True 'ajout ici
Case 2
.Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = True
.Range(.Columns(6 + Decalage), .Columns(7 + Decalage)).Hidden = False
Application.Goto .Range("A1"), True 'ajout ici
Case 3
.Range(.Columns(2 + Decalage), .Columns(7 + Decalage)).Hidden = False
Application.Goto .Range("A1"), True 'ajout ici
Case 4
.Range(.Columns(4 + Decalage), .Columns(7 + Decalage)).Hidden = True
Application.Goto .Range("A1"), True 'ajout ici
End Select
 
Dernière édition:
Re : Faire revenir curseur en A1

Bonjour Staple , Un internaute ( Et oui)

Bon si l'on essaye de mettre le décodeur :
Je n'arrive pas à faire revenir le curseur en A1 après enregistrement du fichier.

Si mon interprétation n'est pas bonne plutot que de dire ça ne marche pas , ce qui n'apporte rien , si tu n'arrives pas à le dire avec des mots fais une photo avant et aprés , colles tout cela dans un classeur et envois le nous , sinon , nous ne seront jamais à l'heure pour la prise de la Bastille (Ben oui , le 14 juillet , ça arrive vite)

Ok , comment enregistres tu ton fichier car dans le code, nul part je ne vois de commande d'enregistement,

si c'est simplement en cliquant sur enregistrer fichier ou sur la disquette , il faut mettre le code que te propose si gentillement Staple, qui fonctionne effectivement trés bien , ( Le code comme staple d'ailleur , lol) dans l'évenementiel avant enregistrement du classeur

Donc dans le module thisworkbook :
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 With ActiveSheet
     .Unprotect Password:="" 
      Application.Goto .[A1], True
     .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
      , AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True, Password:=""
 End With
End Sub
 
Re : Faire revenir curseur en A1

Staple ,

Et oui , quelques fois c'est à en perdre son VBA , ou le désire d'aider les autres .

Enfin ....

y'a quelques récompenses intellectuelles , et de superbes rencontres en compensation , le plus surprennant c'est en aidant que l'on découvre ses propres lacunes ,

et y'a encore du boulot pour moi , mais bon,

en étudiant les réponses des autres , l'on découvre plein de nouvelles techniques .

Bon , en fait l'interêt est d'essayer de s'améliorer dans le décodage des besoins des utilisateurs.
 
Re : Faire revenir curseur en A1


Bonjour camarchepas,
Eh! ben voilà ça marche NICKEL!
Je pense que la phrase suivante est de trop et c'est bien dommage"si tu n'arrives pas à le dire avec des mots fais une photo avant et après , colles tout cela dans un classeur et envois le nous , sinon , nous ne seront jamais à l'heure pour la prise de la Bastille (Ben oui , le 14 juillet , ça arrive vite)"

Merci aussi à Staple
Bonne fin de WE
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
15
Affichages
657
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…