Macro pour numéroter les ouvertures de page

P

Philling

Guest
J'ai un fichier excel avec plusieurs onglets. Je cherche une macro qui permet, quel que soit l'onglet, de numéroter les ouvertures. Par exemple, l'ouverture de l'onglet 1 affiche PAGE 1, l'ouverture de l'onglet 8 affiche PAGE 2 et ainsi de suite.
Le but est de permettre, après impression, de classer par ordre numérique les pages utilisées.
Par contre, la numérotation doit être définitive qu'après enregistrement des travaux. Si on ouvre un onglet et qu'on ne s'en sert pas, le n° de page ne doit pas être pris en compte.
Merci d'avance pour vos réponses.
 
P

Philling

Guest
JPH :
"Pas grave tu laisses les onglets et tu rajoutes : "


Etant donné que je n'y connais absolument rien en VB, il faudrait me préciser quelle séquence correspond aux onglets. Et peut-être aussi, l'heure de la réponse pour que je sache quelle réponse retenir.

MERCI.
 
J

JPH

Guest
voila,
Sub Marquefeuil()
Dim Mondocument As Object
Dim Ttf As Byte, Fx As Byte, Cpt As Byte

Set Mondocument = ActiveWorkbook.Worksheets
Ttf = Mondocument.Count
If Ttf > 255 Then Exit Sub
For Fx = 1 To Ttf
If Left(Mondocument(Fx).Name, 4) = "Page" Then Cpt = Cpt + 1
Next
Cpt = IIf(Cpt = 0, 1, Cpt + 1)
ActiveSheet.Name = "Page" & Cpt

' pour mettre la valeur de la page c'est ici

cells(1,1) = "Page" & Cpt ' ou ailleurs
'------------------------------------------------
' note que cells( ligne , colonne) donc la ou tu veux
' cells (1,1) = "A1", cells(10,1) = "A10", cells(1,2) = "B1", etc ...


End Sub
tu fais un copier/coller de la formule et tu renomes l'ancienne en sub AncMarquefeuil()

Cordialement
 
@

@+Thierry

Guest
Re Bonsoir,

Je regardais la télé, mais je vois que Philling n'y connait rien en VBA, et par conséquent je comprends mieux qu'il se soit si mal expliqué au point que nous quatre : Michel, JP, Zon et moi-même ayant tous compris autre chose, mais ce qui est amusant c'est que nous avons tous compris la même chose, à savoir renommer les onglets !!!

Maintenant que Philling s'est enfin expliqué, je pense que c'est beaucoup plus simple à gérer, et surtout JP, qu'il n'a plus besoin de renommer ses onglets, ce qui pourrait être assez enuyeaux, voir fatal !, à son classeur...

Donc je pense qu'on doit pûrement et simplement mettre au trash ce qui a été fait dans ce fil..... lol, Il n'y a vraiment pas besoin d'usine à gaz pour faire ceci !

Donc deux solutions pour faire ce que j'ai enfin compris de ce que veut Philling, très très simple en fait !!!

Première Solution, écrire dans les Heading de Feuilles (ma préférée)

A METTRE DANS UN MODULE STANDARD :
============================
Option Explicit
Dim Y As Byte

Sub TraceSheet()
If Left(ActiveSheet.PageSetup.CenterHeader, 4) = "PAGE" Then Exit Sub
Y = Y + 1
ActiveSheet.PageSetup.CenterHeader = "PAGE " & Y
End Sub

Sub ClearTraceSheet()
Dim X As Byte
For X = 1 To Sheets.Count
Sheets(X).PageSetup.CenterHeader = ""
Next X
Y = 0
End Sub

A METTRE DANS LE PRIVATE MODULE "ThisWorkBook"
=====================================
Private Sub Workbook_Open() 'ou bien lancer cette macro manuellement si nécessaire....
ClearTraceSheet
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
TraceSheet
End Sub

Seconde Solution, écrire dans une cellule
Oblige paramétrage de EnableEvents à false

A METTRE DANS UN MODULE STANDARD :
============================
Option Explicit
Dim Y As Byte

Sub TraceSheet()
If Left(ActiveSheet.Range("A1"), 4) = "PAGE" Then Exit Sub
Application.EnableEvents = False
Y = Y + 1
ActiveSheet.Range("A1") = "PAGE " & Y
Application.EnableEvents = True
End Sub

Sub ClearTraceSheet()
Dim X As Byte
Application.EnableEvents = False
For X = 1 To Sheets.Count
Sheets(X).Range("A1") = ""
Next X
Application.EnableEvents = True
Y = 0
End Sub

ET METTRE LES MEME INSTRUCTIONS DANS ThisWorkbook que Solution 1

Voilà, cette fois-ci, (I strongly hope... lol), on devrait être OK avec Philling...

Bonne Nuit c'est déjà Lundi

@+Thierry
 

Discussions similaires

Statistiques des forums

Discussions
312 304
Messages
2 087 070
Membres
103 453
dernier inscrit
Choupi