Macro pour cacher et ou faire apparaitre des feuilles d'un classeur
4 réponses
baceri
Bonjour
J'ai ecrit une macro pour que lorsque l'on appuis sur un boutons on
affiche 7 feuilles d'un classeur et en on en cache 7 autres en meme
temps et quand on appuis sur un autre bouton les 7 cach=E9es
apparaissent et les 7 autres se cachent. Mon probleme et que chaque
mois mes noms d'onglet changent et ma macro ne marche plus. J'ai
chang=E9 le nom de mes onglets dans la macro j'ai essay=E9 (1,2,3 etc...);
N=B0 de feuille (feuil1, feuil11, feuil111 etc...) et toujours rien
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
isabelle
bonjour baceri,
Sub Macro11() Application.ScreenUpdating = False For Each f In Worksheets x = x + 1 Select Case x Case 1 To 7: Sheets(f.Name).Visible = False Case 8 To 14: Sheets(f.Name).Visible = True End Select Next Application.ScreenUpdating = True End Sub
isabelle
baceri a écrit :
Bonjour J'ai ecrit une macro pour que lorsque l'on appuis sur un boutons on affiche 7 feuilles d'un classeur et en on en cache 7 autres en meme temps et quand on appuis sur un autre bouton les 7 cachées apparaissent et les 7 autres se cachent. Mon probleme et que chaque mois mes noms d'onglet changent et ma macro ne marche plus. J'ai changé le nom de mes onglets dans la macro j'ai essayé (1,2,3 etc...); N° de feuille (feuil1, feuil11, feuil111 etc...) et toujours rien
Sub Macro11()
Application.ScreenUpdating = False
For Each f In Worksheets
x = x + 1
Select Case x
Case 1 To 7: Sheets(f.Name).Visible = False
Case 8 To 14: Sheets(f.Name).Visible = True
End Select
Next
Application.ScreenUpdating = True
End Sub
isabelle
baceri a écrit :
Bonjour
J'ai ecrit une macro pour que lorsque l'on appuis sur un boutons on
affiche 7 feuilles d'un classeur et en on en cache 7 autres en meme
temps et quand on appuis sur un autre bouton les 7 cachées
apparaissent et les 7 autres se cachent. Mon probleme et que chaque
mois mes noms d'onglet changent et ma macro ne marche plus. J'ai
changé le nom de mes onglets dans la macro j'ai essayé (1,2,3 etc...);
N° de feuille (feuil1, feuil11, feuil111 etc...) et toujours rien
Sub Macro11() Application.ScreenUpdating = False For Each f In Worksheets x = x + 1 Select Case x Case 1 To 7: Sheets(f.Name).Visible = False Case 8 To 14: Sheets(f.Name).Visible = True End Select Next Application.ScreenUpdating = True End Sub
isabelle
baceri a écrit :
Bonjour J'ai ecrit une macro pour que lorsque l'on appuis sur un boutons on affiche 7 feuilles d'un classeur et en on en cache 7 autres en meme temps et quand on appuis sur un autre bouton les 7 cachées apparaissent et les 7 autres se cachent. Mon probleme et que chaque mois mes noms d'onglet changent et ma macro ne marche plus. J'ai changé le nom de mes onglets dans la macro j'ai essayé (1,2,3 etc...); N° de feuille (feuil1, feuil11, feuil111 etc...) et toujours rien
Dans la fenêtre de l'éditeur de code, dans la section ProjetVBA(NomDeTonClasseur), tu peux voir les items de ton projet vba. Tous les composants "Feuille" de ton projet est ainsi inscrit : Feuil1(Feuil1) leur signification : A ) Le premier "feuil1" représente la propriété "Name" de l'objet "Feuille" B ) le deuxième "(Feuil1)" représente le nom de l'onglet de la feuille
Dans ton code, au lieu d'utiliser le nom de l'onglet dans cette syntaxe : Worksheets("Feuil1").select ou Sheets("Feuil1").select tu peux utiliser la propriété Name pour désigner l'objet : Feuil1.Select
Cette propriété "Name" n'est pas modifiée lorsque tu modifies le nom des onglets de tes feuilles et conséquemment, ta macro va continuer de s'exécuter normalement
"baceri" a écrit dans le message de groupe de discussion :
Bonjour J'ai ecrit une macro pour que lorsque l'on appuis sur un boutons on affiche 7 feuilles d'un classeur et en on en cache 7 autres en meme temps et quand on appuis sur un autre bouton les 7 cachées apparaissent et les 7 autres se cachent. Mon probleme et que chaque mois mes noms d'onglet changent et ma macro ne marche plus. J'ai changé le nom de mes onglets dans la macro j'ai essayé (1,2,3 etc...); N° de feuille (feuil1, feuil11, feuil111 etc...) et toujours rien
Dans la fenêtre de l'éditeur de code, dans la section
ProjetVBA(NomDeTonClasseur), tu peux voir les
items de ton projet vba. Tous les composants "Feuille"
de ton projet est ainsi inscrit :
Feuil1(Feuil1)
leur signification :
A ) Le premier "feuil1" représente la propriété "Name"
de l'objet "Feuille"
B ) le deuxième "(Feuil1)" représente le nom de l'onglet de la feuille
Dans ton code, au lieu d'utiliser le nom de l'onglet dans cette
syntaxe :
Worksheets("Feuil1").select ou Sheets("Feuil1").select
tu peux utiliser la propriété Name pour désigner l'objet :
Feuil1.Select
Cette propriété "Name" n'est pas modifiée lorsque tu modifies
le nom des onglets de tes feuilles et conséquemment, ta macro
va continuer de s'exécuter normalement
"baceri" <baceri@free.fr> a écrit dans le message de groupe de discussion :
f010a23c-c178-4e4c-bb68-d75bd14e6559@r18g2000yqd.googlegroups.com...
Bonjour
J'ai ecrit une macro pour que lorsque l'on appuis sur un boutons on
affiche 7 feuilles d'un classeur et en on en cache 7 autres en meme
temps et quand on appuis sur un autre bouton les 7 cachées
apparaissent et les 7 autres se cachent. Mon probleme et que chaque
mois mes noms d'onglet changent et ma macro ne marche plus. J'ai
changé le nom de mes onglets dans la macro j'ai essayé (1,2,3 etc...);
N° de feuille (feuil1, feuil11, feuil111 etc...) et toujours rien
Dans la fenêtre de l'éditeur de code, dans la section ProjetVBA(NomDeTonClasseur), tu peux voir les items de ton projet vba. Tous les composants "Feuille" de ton projet est ainsi inscrit : Feuil1(Feuil1) leur signification : A ) Le premier "feuil1" représente la propriété "Name" de l'objet "Feuille" B ) le deuxième "(Feuil1)" représente le nom de l'onglet de la feuille
Dans ton code, au lieu d'utiliser le nom de l'onglet dans cette syntaxe : Worksheets("Feuil1").select ou Sheets("Feuil1").select tu peux utiliser la propriété Name pour désigner l'objet : Feuil1.Select
Cette propriété "Name" n'est pas modifiée lorsque tu modifies le nom des onglets de tes feuilles et conséquemment, ta macro va continuer de s'exécuter normalement
"baceri" a écrit dans le message de groupe de discussion :
Bonjour J'ai ecrit une macro pour que lorsque l'on appuis sur un boutons on affiche 7 feuilles d'un classeur et en on en cache 7 autres en meme temps et quand on appuis sur un autre bouton les 7 cachées apparaissent et les 7 autres se cachent. Mon probleme et que chaque mois mes noms d'onglet changent et ma macro ne marche plus. J'ai changé le nom de mes onglets dans la macro j'ai essayé (1,2,3 etc...); N° de feuille (feuil1, feuil11, feuil111 etc...) et toujours rien
Si seul le nom d'onglet change mais pas la feuille en elle même, utilise le CodeName plutôt que le Name et une bascule , Exemple avec 3 feuilles et les autres:
Option Explicit Dim tst As Boolean Sub LesFeuilles() Dim i As Integer tst = Not tst With ActiveWorkbook.Sheets .Add after:=.Item(.Count) 'ajouter 1 reste visible For i = 1 To .Count - 1 Select Case .Item(i).CodeName Case "Feuil1", "Feuil2", "Feuil3" .Item(i).Visible = tst Case Else .Item(i).Visible = Not tst
End Select Next Application.DisplayAlerts = False .Item(.Count).Delete 'supprimer celle ajoutee Application.DisplayAlerts = True End With End Sub
'lSteph
On 12 août, 13:49, baceri wrote:
Bonjour J'ai ecrit une macro pour que lorsque l'on appuis sur un boutons on affiche 7 feuilles d'un classeur et en on en cache 7 autres en meme temps et quand on appuis sur un autre bouton les 7 cachées apparaissent et les 7 autres se cachent. Mon probleme et que chaque mois mes noms d'onglet changent et ma macro ne marche plus. J'ai changé le nom de mes onglets dans la macro j'ai essayé (1,2,3 etc...) ; N° de feuille (feuil1, feuil11, feuil111 etc...) et toujours rien
Si seul le nom d'onglet change mais pas la feuille en elle même,
utilise le CodeName plutôt que le Name et une bascule ,
Exemple avec 3 feuilles et les autres:
Option Explicit
Dim tst As Boolean
Sub LesFeuilles()
Dim i As Integer
tst = Not tst
With ActiveWorkbook.Sheets
.Add after:=.Item(.Count) 'ajouter 1 reste visible
For i = 1 To .Count - 1
Select Case .Item(i).CodeName
Case "Feuil1", "Feuil2", "Feuil3"
.Item(i).Visible = tst
Case Else
.Item(i).Visible = Not tst
End Select
Next
Application.DisplayAlerts = False
.Item(.Count).Delete 'supprimer celle ajoutee
Application.DisplayAlerts = True
End With
End Sub
'lSteph
On 12 août, 13:49, baceri <bac...@free.fr> wrote:
Bonjour
J'ai ecrit une macro pour que lorsque l'on appuis sur un boutons on
affiche 7 feuilles d'un classeur et en on en cache 7 autres en meme
temps et quand on appuis sur un autre bouton les 7 cachées
apparaissent et les 7 autres se cachent. Mon probleme et que chaque
mois mes noms d'onglet changent et ma macro ne marche plus. J'ai
changé le nom de mes onglets dans la macro j'ai essayé (1,2,3 etc...) ;
N° de feuille (feuil1, feuil11, feuil111 etc...) et toujours rien
Si seul le nom d'onglet change mais pas la feuille en elle même, utilise le CodeName plutôt que le Name et une bascule , Exemple avec 3 feuilles et les autres:
Option Explicit Dim tst As Boolean Sub LesFeuilles() Dim i As Integer tst = Not tst With ActiveWorkbook.Sheets .Add after:=.Item(.Count) 'ajouter 1 reste visible For i = 1 To .Count - 1 Select Case .Item(i).CodeName Case "Feuil1", "Feuil2", "Feuil3" .Item(i).Visible = tst Case Else .Item(i).Visible = Not tst
End Select Next Application.DisplayAlerts = False .Item(.Count).Delete 'supprimer celle ajoutee Application.DisplayAlerts = True End With End Sub
'lSteph
On 12 août, 13:49, baceri wrote:
Bonjour J'ai ecrit une macro pour que lorsque l'on appuis sur un boutons on affiche 7 feuilles d'un classeur et en on en cache 7 autres en meme temps et quand on appuis sur un autre bouton les 7 cachées apparaissent et les 7 autres se cachent. Mon probleme et que chaque mois mes noms d'onglet changent et ma macro ne marche plus. J'ai changé le nom de mes onglets dans la macro j'ai essayé (1,2,3 etc...) ; N° de feuille (feuil1, feuil11, feuil111 etc...) et toujours rien