Chaque fois que j'ouvre une feuille de calcul Excel très large, elle s'ouvre à l'extrême droite du tableau (comme la colonne Z, puis un espace vide), plutôt qu'au début (colonne A) du tableau. Comment puis-je changer cela pour afficher d'abord la colonne A ?
Réponses
Trop de publicités?Comme datatoo l'a indiqué, l'emplacement de la dernière cellule active influence l'endroit où le classeur s'ouvre. Si vous voulez vous assurer qu'il s'ouvre à un certain emplacement, je préfère ActivewWindow.ScrollIntoView. Parce qu'il ne modifie pas réellement la sélection enregistrée.
Private Sub Workbook_Open()
ActiveWindow.ScrollIntoView 1, 1, 1, 1
Cela fera défiler le coin supérieur gauche de votre document dans le coin supérieur gauche de votre fenêtre.
Généralement, c'est le résultat de l'emplacement de la dernière cellule active lors de l'enregistrement du fichier avant sa fermeture. À moins que vous n'ayez une macro s'exécutant lors de l'événement Workbook_Open qui modifie cela.
Si vous ne voyez pas d'inconvénient à avoir une macro dans le classeur, ou si vous souhaitez forcer cela, vous pouvez essayer ceci
Private Sub Workbook_Open()
Range("A1").Select
End Sub
Merci à datatoo, j'ai ajouté la ligne suggérée : Range("A1").Select à un script que j'avais déjà en cours d'exécution pour défiltrer le classeur à l'ouverture, et cela fonctionne parfaitement pour déverrouiller les volets si la cellule sélectionnée se trouve dans la zone gelée que vous voulez afficher. Merci!
Voici le script complet, pour ceux qui le veulent. Il défiltre le classeur puis se déplace vers une cellule sélectionnée.
NOTES SUR L'UTILISATION :
- Changer "F1" pour une cellule dans la plage de ce que vous voulez afficher à l'ouverture.
- Ceci est utilisé sur un tableau que j'ai créé dans Excel appelé "Tâches".
- Changer "Tâches" par le nom de votre tableau.
-
Il est pertinent de répéter la ligne de filtre automatique car la première instance supprime tous les filtres et la deuxième instance les replace, mais sans aucune sélection faite.
Sub Auto_Open() ActiveSheet.ListObjects("Tâches").Range.AutoFilter ActiveSheet.ListObjects("Tâches").Range.AutoFilter Range("F1").Select End Sub}