Bonjour à tous,
j'aimerai savoir s'il est possible d'ordonner par un code les feuilles d'un classeur.
J'aimerai par exemple que la feuille en 1ere position soit la feuille nommée "Janv", la 2eme "Fev"...
D'avance, merci pour votre aide!
Bonjour à tous,
j'aimerai savoir s'il est possible d'ordonner par un code les feuilles d'un classeur.
J'aimerai par exemple que la feuille en 1ere position soit la feuille nommée "Janv", la 2eme "Fev"...
D'avance, merci pour votre aide!
bonjour.
les feuille sont deja creer ou est ce que tu ve les creer?
Non les feuilles sont déjà crées et nommées.
Merci!
quels sont les nom des feuilles :
- janv
févr
mars
avr
mai
juin
juil
août
sept
oct
nov
déc
:
oui, entre autre.
il y d'autres noms aussi...
tiens voilà un peu de code
dis nous si tu comprends pas fonctionnement...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 ' ' Fonction de test existance feuille dans classeur courant ' Function FeuilleExiste(stFeuille As String) On Error GoTo ErrFeuil Debug.Print Sheets(stFeuille).Name FeuilleExiste = True Exit Function ErrFeuil: FeuilleExiste = False End Function ' ' Procdedure de tri des feuilles "Mensuelles" ' Sub triFeuille() Dim i As Integer Dim tMois(1 To 12) As String 'Une premiére boucle pour vérifier les noms des feuillses For i = 1 To 12 tMois(i) = Format(DateSerial(2005, i, 1), "mmm") ' Sheets.Add ' CODE DE TEST Pour créer les feuilles... ' ActiveSheet.Name = tMois(i) While Not FeuilleExiste(tMois(i)) And tMois(i) <> "" tMois(i) = InputBox("Feuille du mois : " & i & " Inexistante corrigez son nom ", "Erreu", tMois(i)) Wend If tMois(i) = "" Then MsgBox "Abandon opérateur", vbCritical Exit Sub End If Next ' La boucle de déplacement... For i = 2 To 12 Sheets(tMois(i)).Move after:=Sheets(tMois(i - 1)) Next End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 Option Explicit Dim macoll As New Collection Sub ajcoll(x As String) If macoll.Count = 0 Then macoll.Add (x) Exit Sub End If If x < macoll(1) Then macoll.Add Item:=x, before:=1 Exit Sub End If If x > macoll(macoll.Count) Then macoll.Add Item:=x, after:=macoll.Count Exit Sub End If Dim boucle As Integer For boucle = 1 To macoll.Count - 1 If x > macoll(boucle) And x < macoll(boucle + 1) Then macoll.Add Item:=x, after:=boucle Exit Sub End If Next boucle End Sub Sub trionglet(nomclass As String) Dim u As String Dim v As String Dim boucle As Integer Dim rebouc As Integer Dim monclass As Workbook Windows(nomclass).Activate For boucle = 1 To Sheets.Count ajcoll (Sheets(boucle).Name) Next boucle For rebouc = 1 To macoll.Count - 1 For boucle = 1 To macoll.Count - 1 u = macoll(boucle) v = macoll(boucle + 1) Sheets(u).Move before:=Sheets(v) Next boucle Next rebouc End Sub
Un rien plus simple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Public Sub ClasserFeuille() On Error Resume Next ThisWorkbook.Worksheets("decembre").Move , ThisWorkbook.Worksheets("janvier") ThisWorkbook.Worksheets("novembre").Move , ThisWorkbook.Worksheets("janvier") ThisWorkbook.Worksheets("octobre").Move , ThisWorkbook.Worksheets("janvier") ThisWorkbook.Worksheets("septembre").Move , ThisWorkbook.Worksheets("janvier") ThisWorkbook.Worksheets("aout").Move , ThisWorkbook.Worksheets("janvier") ThisWorkbook.Worksheets("juillet").Move , ThisWorkbook.Worksheets("janvier") ThisWorkbook.Worksheets("juin").Move , ThisWorkbook.Worksheets("janvier") ThisWorkbook.Worksheets("mai").Move , ThisWorkbook.Worksheets("janvier") ThisWorkbook.Worksheets("avril").Move , ThisWorkbook.Worksheets("janvier") ThisWorkbook.Worksheets("mars").Move , ThisWorkbook.Worksheets("janvier") ThisWorkbook.Worksheets("fevrier").Move , ThisWorkbook.Worksheets("janvier") End Sub
Merci beaucoup à tous, ca marche nickel!
Bonne fin de journée!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager