Macro pour masque un onglet dans un autre fichier
Fermé
guerando
Messages postés
331
Date d'inscription
mercredi 31 mars 2010
Statut
Membre
Dernière intervention
6 mai 2023
-
29 oct. 2018 à 16:38
guerando Messages postés 331 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 6 mai 2023 - 3 nov. 2018 à 15:10
guerando Messages postés 331 Date d'inscription mercredi 31 mars 2010 Statut Membre Dernière intervention 6 mai 2023 - 3 nov. 2018 à 15:10
A voir également:
- Macro pour masque un onglet dans un autre fichier
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Ouvrir un fichier .bin - Guide
- Comment ouvrir un fichier docx ? - Guide
1 réponse
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
Modifié le 30 oct. 2018 à 10:55
Modifié le 30 oct. 2018 à 10:55
Bonjour,
Voici un exemple, à adapter le nom du classeur de destination. Se déclenche au double clic dans les cellules B1,B2 et B3
Faire Alt F11 sur la feuille concernée où se trouve les cellules B1, B2 et B3 et coller ce code:
les 2 classeurs sont dans le même dossier
Voilà
Voici un exemple, à adapter le nom du classeur de destination. Se déclenche au double clic dans les cellules B1,B2 et B3
Faire Alt F11 sur la feuille concernée où se trouve les cellules B1, B2 et B3 et coller ce code:
Option Explicit 'se déclenche au double clic en B1, B2, B3 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim dest As Workbook Set dest = Workbooks.Open(Filename:=ThisWorkbook.Path & "\essai.xlsx") 'a adapter le chemin et le nom du classeur de destination If Not Application.Intersect(Target, Range("B1:B3")) Is Nothing Then Select Case Target.Value Case "xx1" dest.Sheets(Target.Value).Visible = False dest.Sheets("xx2").Visible = True dest.Sheets("xx3").Visible = True Case "xx2" dest.Sheets(Target.Value).Visible = False dest.Sheets("xx1").Visible = True dest.Sheets("xx3").Visible = True Case "xx3" dest.Sheets(Target.Value).Visible = False dest.Sheets("xx1").Visible = True dest.Sheets("xx2").Visible = True End Select dest.Close 'ferme le classeur destination End If End Sub
les 2 classeurs sont dans le même dossier
Voilà
30 oct. 2018 à 12:36
30 oct. 2018 à 14:33
Effectivement c'est super !
Cependant, je me suis mal exprimée, les onglets qui sont fermés doivent rester fermer.
Pour le code dois je : enlever les lignes concernant les autres onglets ?
Case "xx1"
dest.Sheets(Target.Value).Visible = False
Case "xx2"
dest.Sheets(Target.Value).Visible = False
...
sachant que mon tableau d'origine peu avoir 200 onglets je dois rentrer le code 200 fois (copier / coller et changer le nom) ?
De plus l'endroit où je dois cliquer c'est une fusion de cellule, est ce que ca pose problème ? voici des fichiers qui devrient etre plus clair. J'ai mis ton code dessus.
Merci beaucoup de ton aide
https://www.cjoint.com/c/HJEnHa4VE0l
https://www.cjoint.com/c/HJEnHAsnyRl
Modifié le 30 oct. 2018 à 15:48
Pour le code il suffit de mettre simplement cela
Déprotéger la feuille avant (tu auras le code avec l'enregistreur de macro)
la protéger ensuite (tu auras le code avec l'enregistreur de macro)
Il faut qu'il reste une feuille visible dans le classeur!
Je ne peux pas faire fonctionner ton classeur tab-de-synthese car il est en liaision avec celui-ci:
C:\Users\Moi\OneDrive\Documents\Actions à comptabiliser pour stock.xlsm
Voilà
31 oct. 2018 à 10:28
bonne journée
31 oct. 2018 à 10:52
tu écris
les onglets qui sont fermés doivent rester fermer.
mais je ne comprends pas cette manière de masquer seulement. Il va bien falloir les afficher à un moment donné!
voilà
@+ Le Pivert