XL 2016 Figer des onglets

  • Initiateur de la discussion Initiateur de la discussion CorinneB
  • 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 !

CorinneB

XLDnaute Nouveau
Bonjour à tous,
Je suis un nouveau membre et j'espère apprendre beaucoup de choses grâce à vos précieux conseils.
J'ai un fichier qui a beaucoup d'onglets et dans les 2 premiers j'ai des données qui me renvoient vers d'autres onglets grâce à des liens.Pourriez-vous me dire s'il y a moyen de "figer" les 3 premiers onglets d'un fichier, c'est à dire qu'ils restent visibles même si je vais sur un autre onglet (car je dois faire beaucoup d'aller retour entre les onglets).
Je vous remercie de votre aide.
 
Solution
Bonjour CorinneB et les autres,

Il a bien été demandé de figer des onglets non ?

Alors voyez le fichier joint, les onglets Feuil1 Feuil2 Feuil3 sont figés.

La macro dans ThisWorkbook :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim a, i%
a = Array("Feuil1", "Feuil2", "Feuil3") 'liste des onglets figés, à adapter
If IsNumeric(Application.Match(Sh.Name, a, 0)) Then Exit Sub
Application.EnableEvents = False 'désactive les évènements
On Error Resume Next 'si un onglet n'existe pas
For i = 0 To UBound(a)
    Sheets(a(i)).Move Before:=Sh
Next
Sh.Activate
Application.EnableEvents = True 'réactive les évènements
End Sub
Elle se déclenche quand on active une feuille du classeur.

Remarque : on ne peut...
Bonjour à tous, Corinne,
Je pense que la seule solution pour revenir au 1er Onglet par exemple et de créer une macro avec des boutons !
exemple le bouton RETOUR dans les feuilles 2 et 3 qui permet de revenir à la feuille 1
La feuille 1 permet de sélectionner les feuilles 2 et 3
Bonne journée !
 

Pièces jointes

Dernière édition:
Bonjour Corinne,Jbarbe,
Le recours à une macro n'est pas utile, il suffit de passer par des liens hypertextes attachés à des boutons ou autres formes. voir PJ.

Ensuite pour simplifier, il suffit de faire clic droit sur cette forme, Copier puis sur chaque autre feuille désirée faire coller.
 

Pièces jointes

Re,
autre solution avec une liste déroulante dans la feuille 1
dans les autres feuilles cliquer du droit sur le bouton RETOUR et copier pour copier ce bouton dans les autres feuilles à venir ( 100 qui peut être prolongé au delà !
bonne journée !
 

Pièces jointes

Dernière édition:
Hi,hi,hi,
Sans bouton, sans liste... sans les mains !
Corinne n'a plus que l'embarras du choix. 🙂
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A1:E1")) Is Nothing Then
          Sheets(Target.Value).Activate
          Sheets(Target.Value).[A2].Select
    End If
End Sub
 

Pièces jointes

Bonjour à tous
c'est à dire qu'ils restent visibles même si je vais sur un autre onglet
Ou Encore….
Menu affichage ==> nouvelle fenêtre
Et
Menu affichage==>réorganiser tout==>cocher: Fenêtres du classeur actif ==>vertical
 

Pièces jointes

Dernière édition:
Bonjour CorinneB et les autres,

Il a bien été demandé de figer des onglets non ?

Alors voyez le fichier joint, les onglets Feuil1 Feuil2 Feuil3 sont figés.

La macro dans ThisWorkbook :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim a, i%
a = Array("Feuil1", "Feuil2", "Feuil3") 'liste des onglets figés, à adapter
If IsNumeric(Application.Match(Sh.Name, a, 0)) Then Exit Sub
Application.EnableEvents = False 'désactive les évènements
On Error Resume Next 'si un onglet n'existe pas
For i = 0 To UBound(a)
    Sheets(a(i)).Move Before:=Sh
Next
Sh.Activate
Application.EnableEvents = True 'réactive les évènements
End Sub
Elle se déclenche quand on active une feuille du classeur.

Remarque : on ne peut pas empêcher qu'un utilisateur casse-pieds déplace Feuil1 Feuil2 ou Feuil3 n'importe où mais le bon ordre sera rétabli dès qu'on sélectionnera un autre onglet.

A+
 

Pièces jointes

re
Bonjour job75
VB:
On Error Resume Next 'si un onglet n'existe pas
si je ne me trompe pas ça n'est pas possible
sinon ca voudrais dire que
a = Array("peut être Feuil1", "peut être Feuil2", "peut être Feuil3") 'liste des onglets figés, à adapter

hors si dans un applicatif excel certains onglets doivent être figés il faudrait un array sur à 100%( fixe)
baser un array d'onglets hypothétiquement n'est pas propre pour ce genre de manip

et histoire de sécuriser utiliser l'event SheetBeforeDelete
a fin que l'utilisateur ne puisse pas le supprimer 😉
 
Dernière édition:
Bien que les protections Excel soient illusoires, pour éviter qu'un casse-pieds déplace les onglets ou modifie leurs noms, on peut toujours protéger le classeur et le projet VBA, voyez ce fichier (2).

La macro, toujours dans TisWorkbook :
VB:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim a, i%
a = Array("Feuil1", "Feuil2", "Feuil3") 'liste des onglets figés, à adapter
If IsNumeric(Application.Match(Sh.Name, a, 0)) Then Exit Sub
Unprotect "corinne" 'ôte la protection du classeur
Application.EnableEvents = False 'désactive les évènements
For i = 0 To UBound(a)
    Sheets(a(i)).Move Before:=Sh
Next
Sh.Activate
Application.EnableEvents = True 'réactive les évènements
Protect "corinne" 'protège le classeur
End Sub
Mot de passe corinne pour les 2 protections.
 

Pièces jointes

- 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

  • Question Question
Microsoft 365 tableau d'alerte
Réponses
2
Affichages
102
Réponses
2
Affichages
70
Réponses
17
Affichages
745
Retour