Afficher / masquer des feuilles avec macro

Bonjour le forum,

Je voudrais Afficher / Masquer les feuilles suivantes:

Janvier Heures Réelles, Février Heures Réelles, Mars Heures Réelles, Avril Heures Réelles, jusqu'à Décembre Réelles.

Merci pour vos éventuels retours.

Bien cordialement

Bonjour al87,

au plus simple, utilise l'index de la feuille (= son n°) ; si ce sont les feuilles n° 5 à 16 :

Option Explicit

Sub HideSheet()
  Dim i As Byte: Application.ScreenUpdating = 0
  For i = 5 To 16
    Worksheets(i).Visible = 0
  Next i
End Sub

Sub ShowSheet()
  Dim i As Byte: Application.ScreenUpdating = 0
  For i = 5 To 16
    Worksheets(i).Visible = -1
  Next i
End Sub

dhany

ajout : pour la 1ère sub, si tu préfères l'autre type caché , mets : .Visible = 2

et si c'est à partir de la feuille n° 3 :

Option Explicit

Sub HideSheet() 'masque les feuilles n° 3 à 14
  Dim i As Byte: Application.ScreenUpdating = 0
  For i = 3 To 14
    Worksheets(i).Visible = 2
  Next i
End Sub

Sub ShowSheet() 'affiche les feuilles n° 3 à 14
  Dim i As Byte: Application.ScreenUpdating = 0
  For i = 3 To 14
    Worksheets(i).Visible = -1
  Next i
End Sub

dhany

Bonjour dhany

Mon premier programme ça passe.

Mon 2ème non les onglets à masquer s'appellent Janvier Heures + ou -

Février Heures + ou - Ainsi de suite jusqu'à Décembre Heures + ou -[/b]

Je ne sais pas si ca aime ça

Toutes mes excuses. Tu dois bien savoir maintenent que je m'exprime très mal alors il faut deviner!!!

Bien cordialement

même si le nom des feuilles est différent, mes 2 codes VBA précédents restent valables car ils sont basés sur la position d'une feuille parmi les autres (index) ; ils ne sont pas basés sur le nom de la feuille.

un code VBA basé sur le nom de la feuille marche très bien si tout le nom est entre guillemets ; exemple :

Sub Essai()
  Worksheets("Février Heures + ou -").Select
End Sub

dhany

Re dhany

Ça accroche sur Worksheets

Encore un truc que je ne vois pas.

Sub MasquerHeuresPlusOuMoins()

Worksheets("Janvier Heures + ou -", "Février Heures + ou -", "Mars Heures + ou -", "Avril Heures + ou -", "Mai Heures + ou -", "Juin Heures + ou -", "Juillet Heures + ou -", "Août Heures + ou -", "Septembre Heures + ou -", "Octobre Heures + ou -", "Novembre Heures + ou -", "Décembre Heures + ou -").Select

End Sub

Cordialement

c'est normal que ça accroche, car telle quelle, l'instruction que j'ai utilisée est pour une seule feuille à la fois ; il faut comprendre ainsi : la feuille "X" parmi la collection des feuilles, qui est représentée par Worksheets.

pour plusieurs feuilles : utiliser array / boucle ; patiente un moment, je vais essayer de faire ça.

dhany

Bonjour,

Il te faut passer un tableau si tu veux sélectionner plusieurs feuilles en même temps :

Sub MasquerHeuresPlusOuMoins()

    Worksheets(Array("Janvier Heures + ou -", "Février Heures + ou -", "Mars Heures + ou -", _
                     "Avril Heures + ou -", "Mai Heures + ou -", "Juin Heures + ou -", _
                     "Juillet Heures + ou -", "Août Heures + ou -", "Septembre Heures + ou -", _
                     "Octobre Heures + ou -", "Novembre Heures + ou -", "Décembre Heures + ou -")).Select

End Sub

@al87

je te propose ce fichier Excel :

28exo-al87.xlsm (27.43 Ko)

Ctrl m ➯ toutes les feuilles mois sont masquées (cachées)

Ctrl a ➯ toutes les feuilles mois sont affichées (visibles)


Alt F11 pour voir le code VBA, puis revenir sur Excel

si besoin, tu peux demander une adaptation.

merci de me dire si ça te convient.

dhany

désolé, j'avais oublié que tu as Excel 2003 ; voici donc mon fichier .xlsm converti en .xls :

16exo-al87.zip (15.26 Ko)

dhany

en fait, ça marche pas car entre le nom du mois et "Heures + ou -" tu as plus d'un espace :

parfois 2 espaces, parfois 3 espaces ; alors combien d'espaces tu préfères ?

3 espaces ? 2 espaces ? 1 seul espace ? autre ?

dhany

C'est possible comme ça?

"Heures + ou -"

ajout : tu dois choisir toi-même le nombre d'espace(s), car j'peux pas deviner pour toi c'que tu préfères ! moi, habituellement, j'mets qu'un seul espace, mais si par exemple tu préfères que "Horaires + ou -" soit séparé du mois de 2 espaces, je peux le faire aussi ; ce qui donnera :

"Janvier@@Horaires + ou -" mais avec espace au lieu de @ ; j'ai mis @ pour que tu vois mieux combien y'en a.

dhany

on s'est croisés, mais ta dernière réponse ne m'indique pas quel nombre d'espace(s) tu préfères avant ton texte (et après le mois) !

fais comme si les @ que tu vois sont des espaces, que préfères-tu :

  • avec 5 espaces : "Janvier@@@@@Heures + ou -"
  • avec 4 espaces : "Janvier@@@@Heures + ou -"
  • avec 3 espaces : "Janvier@@@Heures + ou -"
  • avec 2 espaces : "Janvier@@Heures + ou -"
  • avec 1 espace : "Janvier@Heures + ou -"

attention : ce sera le même nombre d'espaces pour tous les mois !

dhany

C'est possible comme ça?

" Janvier Heures + / - "

ainsi, de 5 à 1 espace(s), tu auras :

Janvier Heures + ou -

Janvier Heures + ou -

Janvier Heures + ou -

Janvier Heures + ou -

Janvier Heures + ou -

tu vois que les noms d'onglets sont pas les mêmes !

c'est à toi de choisir !

dhany

attention : si tu as mis plus d'un espace entre "Janvier" et "Heures + ou -", ça peut pas se voir car le système qui gère les posts les transforme automatiquement en un seul espace ; donc tu dois m'indiquer le nombre : 5 ? 4 ? 3 ? 2 ? ou 1 ?

non, c'est pas un compte à rebours ! va y'avoir aucun départ de fusée ou navette spatiale !

(d'ailleurs, tout comme le Concorde, la navette spatiale a été abandonnée)

dois-je supposer que tu veux 1 seul espace ?

dhany

Oui 1 seul espace

ah merci ! comme cette fois ta réponse est bien claire, je peux continuer à travailler sur ton fichier.

j'oublie pas qu'il est confidentiel, alors quand j'aurais terminé, je te l'enverrai en MP.

dhany

Ok merci. Mais tu penses à aller te coucher ou tu viens de te lever?

Rechercher des sujets similaires à "afficher masquer feuilles macro"