XL 2019 Positionnement sur la dernère cellule et affichage diffèrent en Manuel et en VBA :-(

Macintosh

XLDnaute Nouveau
Bonjour,
Dans ma feuille MS Excel 2016, j'utilise le VBA pour que lors de la Sauvegarde :
Cela inscrit la Date, Trie par date la liste et Place le curseur en bas de colonne sur la dernière saisie.
Aucun soucis...
Sauf pour positionnement en bas de colonne qui ne s'affiche pas comme je veux !

Quand je fais la manipulation en manuel:
Dans ma colonne A, Je clique en A3, puis je fais Ctrl "Flèche bas" pour aller en bas de colonne.

La dernière cellule est sélectionnée et affichée tout en bas près du bas de feuille à l'écran et c'est cool !

Dans la Macro VBA:
VB:
Range("A3").Select
Selection.End(xlDown).Select


La dernière cellule est sélectionnée mais affichée en milieu de feuille au milieu de l'écran et c'est pas cool !

Je cherche comment en VBA je peux obtenir le même résultat "visuel" qu'en manuel.
C'est à dire : La dernière cellule affichée tout en bas près du bas de feuille en bas de l'écran.

Pour tester "en vrai" ma macro.
VB:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

' Tri des dates "Ordre Croissant" dans la colonne A

    With Worksheets("MonTableau")
    .Range("A3:B6000").Sort key1:=.Range("A3"), order1:=xlAscending, Header:=xlYes
    End With
    
 
' Sélection de la dernière cellule de la colonne A sur la feuille

    Sheets("MonTableau").Select
    Range("A3").Select
    Selection.End(xlDown).Select

' Date & Heure en B1 sur "MonTableau"

Sheets("MonTableau").Select
[B1] = "Sauvegardé le " & Format(Date, "dddd dd mmmm yyyy") & " à " & Format(Time, "hh:mm:ss")

End Sub

Si quelqu'un à une solution à mon modeste problème...
Merci
A+
 
Dernière édition:

Patrice33740

XLDnaute Impliqué
RE, et RE,

MULTIPOST !!!

J'ai déjà répondu sur ccm et sur developpez !!!
VB:
Sub AvantEnregistement()
Dim w As Window
  With Worksheets("MonTableau")
    Set w = Application.Windows(.Parent.Name)
    w.ScrollRow = 4   'pas de scroll
    With .Range("A3").CurrentRegion
      ' Tri des dates "Ordre Croissant" dans la colonne A
      .Sort key1:=.Cells(1, 1), order1:=xlAscending, Header:=xlYes
      ' Sélection de la dernière cellule de la colonne A sur la feuille
      .Cells(.Rows.Count, 1).Select
    End With
    ' Date & Heure en B1 sur "MonTableau"
    .Range("B1") = "Sauvegardé le " & Format(Date, "dddd dd mmmm yyyy") & " à " & Format(Time, "hh:mm:ss")
    ' Dernière cellule en bas
    w.ScrollRow = ActiveCell.Row - w.VisibleRange.Rows.Count + 2
  End With
End Sub
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
2
Affichages
292

Statistiques des forums

Discussions
311 721
Messages
2 081 928
Membres
101 842
dernier inscrit
seb0390