Selection des feuilles

  • Initiateur de la discussion Initiateur de la discussion Mathieu
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Mathieu

Guest
Bonjour le forum,
je cherche a selectionner toutes les feuilles de mon classeur avec du code vba.
Si je créé une nouvelle macro et que je le fais a la main, je vois que le code généré selectionne les feuilles une par une, en les enumerant toutes.
Dans mon cas j'ai un grand nombre de feuilles, et ce nombre est aléatoire, cette solution n'est donc pas envisageable.
Qq un a t il une idée?
Merci,
Mathieu.
 
Bonjour Mathieu,


Cela fait 20m que je cherche, aussi bien dans les biblio que sur google, je ne trouve rien qui puisse répondre à ta demande 🙁
Est ce que Next Feuille pourrait être utiliser dans ce cas?
Cad, je selectionne la feuille 1 si elle existe, puis la 2 etc

Je surveille le post la réponse étant très intéressante
bon courage
loic.
 
Punaise ce n'est pas de café dont j'ai besoin mais d'un cerveau...
Pourquoi faire compliquer lorsque l'on peut faire simple hein ?

tiens :

Sub selectf()
Sheets.Select
End Sub


Heureusement que nous sommes vendredi ...
 
C'etait trop beau pour etre vrai...

En fait je veux selectionner les feuilles pour faire une numerotation pour tout le classeur, et non pas par onglet. Il ne faut pas selectionner les feuilles, mais les activer. Et toutes ensembles, sinon j'obtient une numerotation par onglet.
Si qq un a une idée...
Merci,
Mathieu.
 
Re,

Qu'entends-tu par numérotation du classeur ?

Pagination pour l'impression ?

Dans ce cas, si c'est ponctuel :

Tu sélectionne tous tes onglet
Mise en page
Pied de page (ou en-tête, c'est selon)
Numéro de page

Quand tu imprimes, imprime le classeur en entier et la numérotation se fera pour tout le classeur.

Si c'est ça que tu veux.

Sinon, pour t'aider, des précisions seront bienvenues.

Pour faire un pied de page par VBA, j'ai un poste aujourd'hui à ce sujet pour Mathieu.

Ah ben ! Mais c'est toi !

Alors à la place de "& Pied", c'est "....&P" ou ".....&A". Tu peux retrouver la bonne lettre en utilisant l'enregistreur de macro.

A+

Abel
 
Re Mr Abel,
en effet je me suis mal exprimé : c'est bien la pagination pour l'impression que je dois faire. Mais le nombre de pages a imprimer n'est pas constant, car ces pages sont generées par des procedures, et je peux en generer seulement deux un jour, puis 10 le lendemain.

Deja pour simplifier je créé dynamiquement un nouveau classeur dans lequel je ne met que les pages a imprimer. C'est une copie "light" du classeur d'origine.

C'est ce classeur light que je veux imprimer, mais je n'arrive pas a numeroter mes feuilles. (Sinon pour la variable en pied de page ca marche nickel, encore merci 😉

Mathieu.
 
Bonjour Mathieu,

Si tu passes par ici, voici l'équivalent en VBA des manip que je te donnais plus haut :

Application.Worksheets.Select
With ActiveSheet.PageSetup
.LeftFooter = "&P/&N" ' Page x sur n pages
.CenterFooter = ""
.RightFooter = "&D" ' Date
End With


En espérant que cela te dépanne.


Abel
 
Bonjour Abel, merci de suivre le fil, je le croyais perdu au fin fond du forum.

Le code que tu me donnes c'est ce que j'ai essayé en tout premier, mais j'obtient une numerotation par onglet.
Les apercus avant impression me donnent ce resultat:
onglet 1 : 1/5, 2/5, ....5/5
onglet 2 : 1/3, 2/3, 3/3
onglet 3 : ...
etc etc


Moi j'essaie d'avoir :
onglet 1 : 1/20, 2/20, ..., 5/20
onglet 2 : 6/20, 7/20 ...

pour qu'en imprimant mes feuilles j'obtienne une numerotation cohérante, sans avoir plusieurs feuilles portant le meme numero de page.


J'arrive a faire ca "a la main" : je selectionne les feuilles et je definis mon pied de page. Quand je regarde le code correspondant je vois qu' Excel ne selectionne pas les feuilles, mais il les active. C'est cette activation qui me bloque. Je n'arrive pas a activer plusieurs feuilles en meme temps sans ennumerer leurs noms. Etant donné que je genere moi meme ces feuilles dynamiquement en VBA je ne connais pas les noms a l'avance. D'ou mon probleme !

En tout cas merci de te pencher sur mon soucis.
Cordialement,
Mathieu.
 
Re,

Effectivement, mon code fait bien la pagination sur l'ensemble des pages à imprimer (et pas seulement les onglet) mais il ne met en page que les pages correspondantes à l'onglet 1.

Essaie le code ci-après. Pour une fois je l'ai testé et ça marche chez moi.

Sub pagination()
Application.Worksheets.Select
For Each ws In Worksheets
Sheets(ws.Name).Activate
With ActiveSheet.PageSetup
.LeftFooter = "&P/&N" ' Page x sur n pages
.CenterFooter = ""
.RightFooter = "&D" ' Date
End With
Next
Application.Worksheets.Select
ActiveWindow.SelectedSheets.PrintPreview
End Sub

A+

Abel
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
241
Retour