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

[Résolu] Retour cellule A1 avec les 3 premières lignes figées

un internaute

XLDnaute Impliqué
Bonjour le forum,
Comme indiqué dans le titre je n'arrive pas à faire un retour en cellule A1 avec les 3 premières lignes figées.
Si je fais un retour sur A4 tout va bien sinon l'enregistrement reste ou je me trouve.
Malgré les différents codes je n'y arrive pas ou alors quelque chose m'échappe
Voici la macro dans ThisWorkbook:

Code:
Private Sub Workbook_SheetActivate(ByVal sh As Object)

  If InStr(1, "JANVIERFÉVRIERMARSAVRILMAIJUINJUILLETAOÛTSEPTEMBREOCTOBRENOVEMBREDÉCEMBRE", _

  Split(sh.Name, " ")(0), vbTextCompare) Then

  'Application.Goto sh.[A1]  '[B6] à la place de [A1] pour faire passer le mois suivant sur cellule B6

  'Application.Goto sh.[A1], True  'Supprimer la valeur du deuxième argument Scroll(True) de la méthode GoTo.Sa valeur par défaut est False.

  'Application.Goto Sh.[A1], True:  Sh.[B6].Select  'Si la cellule active de la feuille Sh est éloignée de A1, une autre option est cette ligne de code

  ActiveWindow.ScrollRow = 1  'Pour éviter la méthode .Select, il y a cette autre option de code

  End If

End Sub

Merci pour vos éventuels retours
Bien cordialement
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

Je retourne bien en A1 sur mon PC
(et j'ai bien du mérite car j'ai du testé sur un classeur non joint à la discussion )

VB:
Private Sub Workbook_SheetActivate(ByVal sh As Object)
If InStr(1, "JANVIERFÉVRIERMARSAVRILMAIJUINJUILLETAOÛTSEPTEMBREOCTOBRENOVEMBREDÉCEMBRE", Split(sh.Name)(0), vbTextCompare) Then
Application.Goto sh.[A1]
ActiveWindow.ScrollRow = 1
End If
End Sub

NB: Je n'ai pratiquement rien changé au code (juste supprimé une ligne surnuméraire)
 

un internaute

XLDnaute Impliqué
 

un internaute

XLDnaute Impliqué
Staple1600
J'ai ajouté ces 4 lignes et ça fonctionne
Si tu as mieux je suis preneur
Bon WE
Cordialement

Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  ActiveSheet.Range("B4").Select
  ActiveSheet.Range("A1").Select
End Sub
 

un internaute

XLDnaute Impliqué

Désolé mais ça ne fonctionne pas sur une ligne.
Cordialement
 

Discussions similaires

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