Microsoft 365 rendre visible automatiquement l'onglet de la feuille active sur la barre de navigation inférieure

  • Initiateur de la discussion Initiateur de la discussion Eric 888
  • Date de début Date de début

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 !

Eric 888

XLDnaute Nouveau
Bonjour

comme je ne suis pas sûr du vocabulaire, voici comment j'interprète les mots:
- feuille: la feuille elle-même, avec les données, les formules, etc.
- onglet: le machin en bas, avec le nom de la feuille
- barre de navigation inférieure: là où sont affichés les onglets et la barre de défilement horizontal.

Le nombre d'onglets visibles en même temps est bien sûr limité. Quand on navigue manuellement entre les feuilles, on peut faire défiler les onglets pour atteindre celui de la feuille qu'on veut afficher.

J'ai un tableur avec potentiellement pas mal de feuilles.
J'ai une macro qui crée une feuille en dernière position (par duplication d'une feuille master).

Cette nouvelle feuille s'affiche bien (méthode Activate). En revanche, l'onglet lui-même n'est pas visible s'il y a un certain nombre de feuilles avant la nouvelle feuilles: ce sont les onglets de ces feuilles inactives qui sont visibles sur la barre.

Or l'utilisateur, avant de saisir les données dans la nouvelle feuille, doit la renommer. Ce qui est perturbant pour lui si l'onglet n'est pas visible. De plus il suffit qu'il soit maladroit pour qu'il active une autre feuille lors de la recherche du bon onglet. Bref, ergonomie pas top.

L'invitation à renommer la feuille passe par un un msgbox et s'accompagne d'un clignement de l'onglet de la nouvelle feuille. Mais même ça ne recentre pas Excel sur cet onglet.

Existe-t-il un moyen de rendre visible automatiquement l'onglet de la feuille active?

Merci d'avance
Eric
 
Solution
Bonjour à tous,
Je comprend pas, un activesheet.select avant le activesheet.activate ne suffit pas ?
sinon utiliser ActiveWindow.ScrollWorkbookTabs Sheets:=ActiveSheet.Index
et ne pas oublier dans le module Thisworkbook, pour conserver l'affichage de l'onglet actif en cas de réduction ou agrandissement de fenêtre:
VB:
Private Sub Workbook_WindowResize(ByVal Wn As Window)
    ActiveWindow.ScrollWorkbookTabs Sheets:=ActiveSheet.Index
End Sub
Bonjour @Eric 888🙂,

Je n'ai pas bien compris ce que vous décrivez (moi, il faut m'expliquer longtemps 🙁)
Pour ce que j'en ai saisi, essayez le code suivant qui ajoute une feuille de calcul avec son onglet entièrement visible :
VB:
Sub Test()
Dim newsh As Worksheet
With ThisWorkbook.Worksheets
      Set newsh = .Add(after:=.Item(.Count))
      .Item(1).Select: newsh.Select
   End With
End Sub

nota : un petit fichier représentatif, anonymisé et avec le code aurait été apprécié 😉.
 
Dernière édition:
Hello,

comme je ne suis pas sûr du vocabulaire, voici comment j'interprète les mots:
- feuille : la feuille elle-même, avec les données, les formules, etc.
- onglet : le machin en bas, avec le nom de la feuille
- barre de navigation inférieure : là où sont affichés les onglets et la barre de défilement horizontal.
Alléluia ! Enfin quelqu'un qui a compris ce qu'est un onglet, et qui ne mélange pas les deux choses.
🤩 😍 😍 🍾 🥂 🎉 🎆



J'ai un tableur avec potentiellement pas mal de feuilles.
J'ai une macro qui crée une feuille en dernière position (par duplication d'une feuille master).
Oui, tu as un tableur, et il s'appelle Excel.
Mais ce que tu décris est un classeur. 😉
 
bonjour
quand tu ajoute ta feuille tu l'ajoute tout simplement avant la première argument 1 =sheets(1)
exemple
VB:
 Set newsh = ThisWorkbook.Worksheets.Add(Sheets(1))
 newsh.name="taratata"

et si la nouvelle feuille est une copie d'un autre
Code:
  Sheets("Feuil1").Copy Before:=Sheets(1)
  ActiveSheet.Name = "taratata"
 
Bonjour @Eric 888🙂,

Je n'ai pas bien compris ce que vous décrivez (moi, il faut m'expliquer longtemps 🙁)
Pour ce que j'en ai saisi, essayez le code suivant qui ajoute une feuille de calcul avec son onglet entièrement visible :
VB:
Sub Test()
Dim newsh As Worksheet
With ThisWorkbook.Worksheets
      Set newsh = .Add(after:=.Item(.Count))
      .Item(1).Select: newsh.Select
   End With
End Sub

nota : un petit fichier représentatif, anonymisé et avec le code aurait été apprécié 😉.

Bonjour à tous, bonjour @patricktoulon 😀 ,

Oui mais si le Monsieur, il veut l'ajouter à la fin ? Il n'a pas le droit le Monsieur ?
exactement, le monsieur il veut la nouvelle feuille en dernier, affichée, avec son onglet visible
 
Bonjour à tous,
Je comprend pas, un activesheet.select avant le activesheet.activate ne suffit pas ?
sinon utiliser ActiveWindow.ScrollWorkbookTabs Sheets:=ActiveSheet.Index
et ne pas oublier dans le module Thisworkbook, pour conserver l'affichage de l'onglet actif en cas de réduction ou agrandissement de fenêtre:
VB:
Private Sub Workbook_WindowResize(ByVal Wn As Window)
    ActiveWindow.ScrollWorkbookTabs Sheets:=ActiveSheet.Index
End Sub
 
Bonjour à tous,
Je comprend pas, un activesheet.select avant le activesheet.activate ne suffit pas ?
sinon utiliser ActiveWindow.ScrollWorkbookTabs Sheets:=ActiveSheet.Index
et ne pas oublier dans le module Thisworkbook, pour conserver l'affichage de l'onglet actif en cas de réduction ou agrandissement de fenêtre:
VB:
Private Sub Workbook_WindowResize(ByVal Wn As Window)
    ActiveWindow.ScrollWorkbookTabs Sheets:=ActiveSheet.Index
End Sub

la méthode "ActiveWindow.ScrollWorkbookTabs" est exactement ce dont j'avais besoin, merci
 
- 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

Retour