Selection des feuilles

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.
 
L

lo

Guest
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.
 
L

lo

Guest
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 ...
 
M

Mathieu

Guest
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.
 
A

Abel

Guest
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
 
M

Mathieu

Guest
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.
 
A

Abel

Guest
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
 
M

Mathieu

Guest
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.
 
A

Abel

Guest
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
 

Discussions similaires

Réponses
16
Affichages
569

Statistiques des forums

Discussions
312 338
Messages
2 087 397
Membres
103 536
dernier inscrit
komivi