Créé des onglets avec la date comme nom par ordre croissant

Fermé
bigsurf05 Messages postés 2 Date d'inscription mardi 22 novembre 2022 Statut Membre Dernière intervention 23 novembre 2022 - 22 nov. 2022 à 15:03
bigsurf05 Messages postés 2 Date d'inscription mardi 22 novembre 2022 Statut Membre Dernière intervention 23 novembre 2022 - 23 nov. 2022 à 12:52

Bonjour,

je me rapproche de vous car mes connaissances en vba sont limitées.

Voilà j'ai créé un userform avec 3 boutons, chaque page crée un nouvel onglet (copie d'une feuille matrice) avec comme nom une date du style "12-11-22 12h15" (je dois créer environ une dizaine de pages par mois) les onglets crées se place dans la feuille excel entre 2 balises masqués (onglets créé manuellement pour chaque mois de l'année) du style "01-11-22 00h01" et "30-11-22 23h59" chaque nouvel onglet créé du mois en cours se place devant ma première balise "01-11-22 00h01" (j'ai faits cela car je dois additionner des cellules des pages créé précédemment dans un onglet "NOV" (pour novembre) et ainsi de suite jusqu'à la fin de l'année avec la formule : =SOMME('01-11-22 00h01:30-11-22 23h59'!C3:D3)).

- je voudrais que les onglets crées soit dans l'ordre croissant( 10-01-22; 12-01-22 etc..) 

- Comment faire, dès que l'on passe au mois suivant les onglets crées se mettent à la queue leu leu  du dernier onglet du mois dernier non entre les 2 balises du mois suivant? voir image

Merci d'avance pour vos réponses.

- code vba de mes 3 boutons:

Private Sub CommandButton3_Click()
'new page vapocraqueur
Dim Actsheet As String
    Application.ScreenUpdating = False
    On Error Resume Next
    ActiveWorkbook.Sheets("Matrice").Visible = True
    ActiveWorkbook.Sheets("Matrice").Copy _
    after:=ActiveWorkbook.Sheets("01-11-22 00h01")
    ActNm = ActiveSheet.Name
    ActiveSheet.Name = Format(Now, "dd-mm-yy hh""h""nn")
    'InputBox ("Enter un nom pour cette nouvelle feuille.")
    Sheets(ActiveSheet.Name).Visible = True
    ActiveWorkbook.Sheets("Matrice").Visible = False
    Application.ScreenUpdating = True
    Range("M2").Select
    Range("M2") = "DEPRESSURISATION VERS LE VAPOCRAQUEUR"
    Unload Me
End Sub

Private Sub CommandButton4_Click()
'new page torche
Dim Actsheet As String
    Application.ScreenUpdating = False
    On Error Resume Next
    ActiveWorkbook.Sheets("Matrice").Visible = True
    ActiveWorkbook.Sheets("Matrice").Copy _
    after:=ActiveWorkbook.Sheets("01-11-22 00h01") 'ActiveWorkbook.Sheets(Sheets.Count)
    ActNm = ActiveSheet.Name
    ActiveSheet.Name = Format(Now, "dd-mm-yy hh""h""nn") 'InputBox("Enter un nom pour cette nouvelle feuille.")
    Sheets(ActiveSheet.Name).Visible = True
    ActiveWorkbook.Sheets("Matrice").Visible = False
    Application.ScreenUpdating = True
    Range("M2").Select
    Range("M2") = "DEPRESSURISATION VERS LA TORCHE"
    Unload Me
End Sub


Private Sub CommandButton5_Click()
'new page vierge
Dim Actsheet As String
    Application.ScreenUpdating = False
    On Error Resume Next
    ActiveWorkbook.Sheets("Matrice").Visible = True
    ActiveWorkbook.Sheets("Matrice").Copy _
    after:=ActiveWorkbook.Sheets("Matrice")
    ActNm = ActiveSheet.Name
    ActiveSheet.Name = Format(Now, "dd-mm-yy hh""h""nn") 'InputBox("Enter un nom pour cette nouvelle feuille.")
    Sheets(ActiveSheet.Name).Visible = True
    ActiveWorkbook.Sheets("Matrice").Visible = False
    Application.ScreenUpdating = True
    Range("M2").Select
    Range("M2") = ""
    Unload Me
End Sub


Windows / Edge 107.0.1418.52

2 réponses

Le Pingou Messages postés 12137 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 27 août 2024 1 446
22 nov. 2022 à 18:17

Bonjour,

La mise à disposition de votre fichier serait souhaitable ...(eviter de devoir construire un fichier semblable au votre)!

Merci de la mettre sur Accueil de Cjoint.com  et poster le lien.


0
Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024 14
23 nov. 2022 à 10:06

Bonjour,

Si vous voulez copier la feuille "Matrice" après la dernière feuille et que son nom soit au format date comme vous avez indiqué : 

Sub Test()
Sheets("Matrice").copy after:=Sheets(Sheets.Count)
 ActiveSheet.Name = Format(Now, "dd-mm-yy hh""h""nn")
End Sub

Bien cordialement

Will


0
bigsurf05 Messages postés 2 Date d'inscription mardi 22 novembre 2022 Statut Membre Dernière intervention 23 novembre 2022 1
23 nov. 2022 à 12:52

merci beaucoup cela m'aide beaucoup ;-)

1