Affichage différent entre action sur colonne en VBA et action en manuel.

Résolu
Utilisateur anonyme -  
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   - 3 août 2020 à 15:20
Bonjour,
Dans ma feuille MS Excel 2016, j'utilise le VBA pour que lors de la Sauvegarde : Je
marque la Date, je Trie et je Place le curseur en bas de colonne.
Aucun soucis... Sauf pour le 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 affichée tout en bas près du bas de feuille à l'écran et c'est cool !

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


La dernière cellule est 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.

Le fichier MaListe.xlsm est dispo sur CJoint.com mais attention, c'est un xlsm car il contient ma macro.

Si quelqu'un à la solution, même Raymond ;-)
Merci
A+

Configuration: Windows 10 / Firefox 79.

A voir également:

2 réponses

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 779
 
Bonjour,

« Si quelqu'un à la solution, même Raymond ;-) »
Pour autant que je sache, Raymond (que je salue), n'est pas passionné par les macros ...

essaies comme ça :
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


0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 779
 
Passe le sujet en résolu !

Depuis hier sur l'autre Forum .....
Pourquoi laisser les autres contributeurs chercher une autre solution ....
0