Masquer les onglets Excel sauf "Accueil" et l'onglet actif avec VBA

Bonjour,

J'ai un fichier Excel répertoriant des fiches CEE. J'ai paramétré l'automatisation avec un Chat IA sauf que j'ai une erreur récurrente dans mon code VBA et n'arrive pas a la résoudre. Le but de ce fichier est de répertorier les différentes lignes que j'ai dans le double tableau de la page "Accueil" que lorsque l'on clique sur un descriptif de fiche (comme par exemple "Isolation de combles ou de toiture" que cela nous renvoie sur la page que j'associerais au nom plus tard (ca je sais faire !).

Mais étant donné qu'il y aura plus d'une centaine d'onglets je souhaite que seul les onglets qui ne concernent pas une fiche précise apparaissent ("Accueil" et "Liste Indice" pour le moment). Et que lorsque je clique par exemple dans l'onglet Accueil sur le texte "BAR-EN-101" ca me mette sur l'onglet "BAR-EN-101" (ce que je paramètre avec des renvois hypertexte) et que lorsque je suis dans l'onglet de destination je ne vois dans la liste des onglets que "Accueil, Liste des Indices et l'onglet sur lequel je suis".

Comment faire ?

Je me tiens a votre dispo si vous avez besoin de plus d'explications !

Merci d'avance !

Bonsoir,

Vous devriez continuer à demander à l'IA je pense, en indiquant que le code donné ne fonctionne pas

Vous ne pouvez que constater qu'ne ne faisant pas appel à des professionnel, vous êtes vite coincé...

Au plaisir

Bonsoir Excel_User, BrunoM45,

Ci-dessous la modification du code opérant en feuille Accueil.

J'ai un peu un chat dans la gorge... car quand tu postes un fichier, met au moins plusieurs feuilles débutant par BA et non une seule.

Comment veux tu que l'on affiche la nouvelle feuille BA... et cache la seule feuille BA... présente actuellement sur le fichier.

Option Explicit ' Force la déclaration des variables
Public Sht As String

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Sh.Name = "Accueil" And (Target.Column = 2 Or Target.Column = 7) And Target.Count = 1 Then
'Important rajouter des noms de feuilles débutant par BA. Mettre en cellule A1 le nom de l'actuelle feuille BA présente, ensuite c'est automatique.
    If Left(Target.Text, 2) = "BA" Then Sht = [A1]: Sheets(Sht).Visible = False
    Application.Wait Now + TimeValue("00:00:02")
    Range("A1") = Target: Sht = [A1]
    Sheets(Sht).Visible = True
    Target.Offset(, 2).Select
    ActiveWorkbook.FollowHyperlink "https://www.ecologie.gouv.fr/sites/default/files/" & Target & "%20v%20A33-3%20%C3%A0%20compter%20du%2001%20septembre%202020.pdf"
    End If
    'MasquerOngletsActifs(Ctrl:=True, Shift:=True, Key:="w")
End Sub

Note: C'est une des lignes de la colonne B ou G (toutes les deux doivent être démasquées) qu'il faut sélectionner. Le lien hypertexte adapté au texte d'une de ces cellules dans les colonnes B ou G sera alors lancé. Si tu souhaites que ce soit les colonnes D et I change dans la macro la valeur des Target.Column par 4 et 9 au lieu de 2 et 7. Ta macro MasquerOnglet... ne servira plus.

Merci de ton retour !

J'ai essayé ton code mais je n'y arrive pas a le faire fonctionner. Je te remets mon fichier.

J'ai réessayé avec le Chat IA qui m'a donné le code ci-dessous.

J'ai réussi a masquer les feuilles que je veux masquer grâce a du VBA

En mettant ce code

Sub MasquerFeuilles()
    For Each Sheet In ThisWorkbook.Sheets
        If Sheet.Name <> "Liste Indices" And Sheet.Name <> "Codification Bâtiments" And Sheet.Name <> "Accueil" Then
            Sheet.Visible = xlSheetHidden  'Au lieu de xlVeryHidden
        End If
    Next
End Sub

Sauf que maintenant je n'arrive pas a faire réapparaitre les onglets masqués, et impossible d'y accéder via mes liens hyper texte (H4 et H5 dans l'onglet "Accueil"). Elles sont visible dans le menu en faisant clique droit puis afficher mais inaccessible via le lien.

Je veux que les onglets "Liste Indices", "Codification Bâtiments" et "Accueil" soient toujours visibles. Et que quand je clique sur le lien ca m'envoie sur la feuille correspondante. Je n'ai mis les liens que sur la cellule H4 et H5 de la page Accueil pour tester pour le moment. Et que au niveau des autres onglets (a part les onglets "Liste Indices", "Codification Bâtiments" et "Accueil") ils se masquent lorsque qu'ils ne sont pas ouvert.

Peut tu me faire directement la manip VBA dans le fichier ?

Merci d'avance !

J'ai laissé tomber le code VBA. J'ai décidé de cacher au final toute la barre d'onglets et de mettre des formes avec un renvoi sur mes 3 pages principales.

J'ai maintenant pour objectif de faire une sorte d'écran de contrôle qui reste fixe en bas a droite de la page afin de pouvoir retourner dans une de mes 3 pages principales. Je fais un autre post pour cette question.

Salut

"J'ai maintenant pour objectif de faire une sorte d'écran de contrôle qui reste fixe en bas a droite de la page"

Mauvaise idée

En haut à droite ou à gauche OK, comme ça vous pouvez jouer avec les volets

A+

Salut

"J'ai maintenant pour objectif de faire une sorte d'écran de contrôle qui reste fixe en bas a droite de la page"

Mauvaise idée

En haut à droite ou à gauche OK, comme ça vous pouvez jouer avec les volets

A+

Pourquoi mauvaise idée ? Et c'est quoi les volets ?

J'ai fait un post par rapport a l'écran de contrôle, j'espère que ca ne pose pas de soucis d'en avoir fait un annexe.

https://forum.excel-pratique.com/excel/ecran-de-controle-fixe-190978

Bonjour Excel_User,

En retour le fichier avec une note inscrite en haut de la feuille d'accueil.

Seules les 3 premières lignes de la colonne I sont modifiées. Et il existe seulement trois pages BA... dans le fichier.

Lors de la sélection d'une cellule (I4 à I6 pour l'exemple), la page web s'affichera si le document existe.

Rechercher des sujets similaires à "masquer onglets sauf accueil onglet actif vba"