Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Bouton j'te vois - j'te vois plus

4 réponses
Avatar
François
Bonjour à tous,

Je cherche à écrire une proc permettant d'afficher toutes les
feuilles cachées d'un classeur puis de les remasquer après avoir
travaillé sur ce classeur.
En effet avant de diffuser un document, je masque souvent une feuille
base de données, des feuilles de codes, de paramètres ... qui n'ont aucun
intérêts
pour mes destinataires mais qui en ont pour moi.
C'est une manip fréquente dans mes travaux quotidiens.

En fait, je suppose qu'il faudrait mémoriser dans un tableau (array ?)
les noms des feuilles masquées pour les re-masquer avant enregistrement.
mais .. j'y arrive pô.

Merci par avance de votre aide
François

4 réponses

Avatar
Papou
Bonjour françois
Et pourquoi pas une boucle ?
For i = 1 to sheets.count
if sheets(i).visible = xlsheetvisible Then
sheets(i).visible = xlsheethidden '(ou xlsheetveryhidden)
end if
next i

Cordialement
Pascal

"François" a écrit dans le message de news:
ekC$
Bonjour à tous,

Je cherche à écrire une proc permettant d'afficher toutes les
feuilles cachées d'un classeur puis de les remasquer après avoir
travaillé sur ce classeur.
En effet avant de diffuser un document, je masque souvent une feuille
base de données, des feuilles de codes, de paramètres ... qui n'ont aucun
intérêts
pour mes destinataires mais qui en ont pour moi.
C'est une manip fréquente dans mes travaux quotidiens.

En fait, je suppose qu'il faudrait mémoriser dans un tableau (array ?)
les noms des feuilles masquées pour les re-masquer avant enregistrement.
mais .. j'y arrive pô.

Merci par avance de votre aide
François




Avatar
François
Bonjour Papou et merci,

J'utilise :
For Each MaFeuille In Worksheets
MaFeuille.Visible = xlSheetVisible
End If
Next

pour tout afficher mais ce que je souhaite c'est dans cette procédure
mémoriser les feuilles qui ont été démasquées pour les remasquer
après avoir travaillé sur mon classeur.
Une sorte de variable publique en fait..

François
-------------------

End Sub
"Papou" a écrit dans le message news:
#
Bonjour françois
Et pourquoi pas une boucle ?
For i = 1 to sheets.count
if sheets(i).visible = xlsheetvisible Then
sheets(i).visible = xlsheethidden '(ou xlsheetveryhidden)
end if
next i

Cordialement
Pascal

"François" a écrit dans le message de news:
ekC$
Bonjour à tous,

Je cherche à écrire une proc permettant d'afficher toutes les
feuilles cachées d'un classeur puis de les remasquer après avoir
travaillé sur ce classeur.
En effet avant de diffuser un document, je masque souvent une feuille
base de données, des feuilles de codes, de paramètres ... qui n'ont
aucun


intérêts
pour mes destinataires mais qui en ont pour moi.
C'est une manip fréquente dans mes travaux quotidiens.

En fait, je suppose qu'il faudrait mémoriser dans un tableau (array ?)
les noms des feuilles masquées pour les re-masquer avant enregistrement.
mais .. j'y arrive pô.

Merci par avance de votre aide
François








Avatar
docm
Bonjour François.
Voici une façon de le faire:
Gérard

'####################
'Déclarer ces 2 variables dans un module
Global NomDeLafeuille() As String
Global SaProprieteVisible() As Long
'####################

Sub DemasquerLesFeuillesMasquees()

ReDim NomDeLafeuille(ThisWorkbook.Sheets.Count)
ReDim SaProprieteVisible(ThisWorkbook.Sheets.Count)

For i = 1 To ThisWorkbook.Sheets.Count
'Conserver le nom des feuilles dans la variable NomDeLafeuille()
'Conserver la valeur de la propriété .Visible dans la variable
SaProprieteVisible()
NomDeLafeuille(i) = ThisWorkbook.Sheets(i).Name
SaProprieteVisible(i) = ThisWorkbook.Sheets(i).Visible
'Mettre la propriété Visible de toutes les feuilles à Vrai
ThisWorkbook.Sheets(i).Visible = True

Next i

End Sub

Sub RemasquerLesFeuillesDemasquees()

For Each MaFeuille In Worksheets

For i = 1 To UBound(NomDeLafeuille)
If MaFeuille.Name = NomDeLafeuille(i) Then

MaFeuille.Visible = SaProprieteVisible(i)
Exit For

End If
Next
Next

End Sub

"François" wrote in message
news:#
Bonjour Papou et merci,

J'utilise :
For Each MaFeuille In Worksheets
MaFeuille.Visible = xlSheetVisible
End If
Next

pour tout afficher mais ce que je souhaite c'est dans cette procédure
mémoriser les feuilles qui ont été démasquées pour les remasquer
après avoir travaillé sur mon classeur.
Une sorte de variable publique en fait..

François
-------------------

End Sub
"Papou" a écrit dans le message news:
#
Bonjour françois
Et pourquoi pas une boucle ?
For i = 1 to sheets.count
if sheets(i).visible = xlsheetvisible Then
sheets(i).visible = xlsheethidden '(ou xlsheetveryhidden)
end if
next i

Cordialement
Pascal

"François" a écrit dans le message de news:
ekC$
Bonjour à tous,

Je cherche à écrire une proc permettant d'afficher toutes les
feuilles cachées d'un classeur puis de les remasquer après avoir
travaillé sur ce classeur.
En effet avant de diffuser un document, je masque souvent une feuille
base de données, des feuilles de codes, de paramètres ... qui n'ont
aucun


intérêts
pour mes destinataires mais qui en ont pour moi.
C'est une manip fréquente dans mes travaux quotidiens.

En fait, je suppose qu'il faudrait mémoriser dans un tableau (array ?)
les noms des feuilles masquées pour les re-masquer avant
enregistrement.



mais .. j'y arrive pô.

Merci par avance de votre aide
François












Avatar
François
Bonjour Gérard,

Ca fonctionne parfaitement.
Merci beaucoup.
2 éme étape pour moi maintenant : bien comprendre ta proc.
Je crois que je devrais pouvoir y arriver et cette utilisation de variables
globales me rendra sûrement d'autres services.

Merci encore et bonne journée
François
------------
"docm" a écrit dans le message news:

Bonjour François.
Voici une façon de le faire:
Gérard

'####################
'Déclarer ces 2 variables dans un module
Global NomDeLafeuille() As String
Global SaProprieteVisible() As Long
'####################

Sub DemasquerLesFeuillesMasquees()

ReDim NomDeLafeuille(ThisWorkbook.Sheets.Count)
ReDim SaProprieteVisible(ThisWorkbook.Sheets.Count)

For i = 1 To ThisWorkbook.Sheets.Count
'Conserver le nom des feuilles dans la variable NomDeLafeuille()
'Conserver la valeur de la propriété .Visible dans la variable
SaProprieteVisible()
NomDeLafeuille(i) = ThisWorkbook.Sheets(i).Name
SaProprieteVisible(i) = ThisWorkbook.Sheets(i).Visible
'Mettre la propriété Visible de toutes les feuilles à Vrai
ThisWorkbook.Sheets(i).Visible = True

Next i

End Sub

Sub RemasquerLesFeuillesDemasquees()

For Each MaFeuille In Worksheets

For i = 1 To UBound(NomDeLafeuille)
If MaFeuille.Name = NomDeLafeuille(i) Then

MaFeuille.Visible = SaProprieteVisible(i)
Exit For

End If
Next
Next

End Sub

"François" wrote in message
news:#
Bonjour Papou et merci,

J'utilise :
For Each MaFeuille In Worksheets
MaFeuille.Visible = xlSheetVisible
End If
Next

pour tout afficher mais ce que je souhaite c'est dans cette procédure
mémoriser les feuilles qui ont été démasquées pour les remasquer
après avoir travaillé sur mon classeur.
Une sorte de variable publique en fait..

François
-------------------

End Sub
"Papou" a écrit dans le message news:
#
Bonjour françois
Et pourquoi pas une boucle ?
For i = 1 to sheets.count
if sheets(i).visible = xlsheetvisible Then
sheets(i).visible = xlsheethidden '(ou xlsheetveryhidden)
end if
next i

Cordialement
Pascal

"François" a écrit dans le message de news:
ekC$
Bonjour à tous,

Je cherche à écrire une proc permettant d'afficher toutes les
feuilles cachées d'un classeur puis de les remasquer après avoir
travaillé sur ce classeur.
En effet avant de diffuser un document, je masque souvent une
feuille




base de données, des feuilles de codes, de paramètres ... qui n'ont
aucun


intérêts
pour mes destinataires mais qui en ont pour moi.
C'est une manip fréquente dans mes travaux quotidiens.

En fait, je suppose qu'il faudrait mémoriser dans un tableau (array
?)




les noms des feuilles masquées pour les re-masquer avant
enregistrement.



mais .. j'y arrive pô.

Merci par avance de votre aide
François