XL 2016 Figer des onglets

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...

JBARBE

XLDnaute Barbatruc
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

  • Classeur2.xls
    58.5 KB · Affichages: 13
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • Classeur2.xls
    67.5 KB · Affichages: 9

JBARBE

XLDnaute Barbatruc
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

  • Classeur2.xls
    68.5 KB · Affichages: 8
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • EX2.xlsm
    22.9 KB · Affichages: 13

Jacky67

XLDnaute Barbatruc
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

  • Nouvelle fenetre.xlsx
    10.5 KB · Affichages: 28
Dernière édition:

job75

XLDnaute Barbatruc
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

  • Onglets figés(1).xlsm
    43.8 KB · Affichages: 5

patricktoulon

XLDnaute Barbatruc
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:

job75

XLDnaute Barbatruc
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

  • Onglets figés(2).xlsm
    44.1 KB · Affichages: 10

Discussions similaires

Réponses
5
Affichages
249

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 017
dernier inscrit
annboi19