Création d'un Calendrier en VBA

Résolu/Fermé
qwerty_213 Messages postés 27 Date d'inscription mardi 12 août 2014 Statut Membre Dernière intervention 28 mai 2023 - 18 oct. 2016 à 14:39
qwerty_213 Messages postés 27 Date d'inscription mardi 12 août 2014 Statut Membre Dernière intervention 28 mai 2023 - 21 oct. 2016 à 12:08
Bonjour,

Je suis débutant en VBA, je souhaite créer un Excel "Calendrier.xlsx" de 365 feuilles, la première feuille s'appelle "Vendredi 1 Janvier 2016" et la dernière "Samedi 31 Décembre 2016", respectivement aux journées en 2016.

Ensuite, remplir chaque jour (ou feuille) avec des profils de 24h (86400 sec) d'un autre Excel "Profils.xlsx"

J'ai réalisé un programme initial qui nomme les feuilles "Jour 1"..."Jour 365" mais ça se remplis en inverse !!!, qlqn peut-il m'aider à compléter ou d'en créer un autre qui répond au besoin cité précédemment ?

Merci d'avance


Sub Macro1()
'
' Macro1 Macro

Dim Feuille As Worksheet
Static I As Long

For I = 1 To 365
    Set Feuille = ThisWorkbook.Worksheets.Add ' La référence est posée
    Feuille.Name = "Jour " & I ' Le nom d'onglet de la nouvelle feuille est posé.
    Windows("Profils.xlsx").Activate
    Sheets("Cycles1").Select
    Range("A1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Windows("Calendrier.xlsx").Activate
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

        
 Next I

    
End Sub


A voir également:

2 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
18 oct. 2016 à 15:59
Bonjour,

comme ceci:

Sub CreationOnglet()
  Dim i As Integer
  For i = 1 To 5' a adapter
    Sheets.Add , Sheets(Sheets.Count)
    Sheets(Sheets.Count).Name = "Jour " & i
  Next
End Sub

0
qwerty_213 Messages postés 27 Date d'inscription mardi 12 août 2014 Statut Membre Dernière intervention 28 mai 2023
21 oct. 2016 à 12:08
Bonjour cs_Le Pivert

le programme marche, je l'ai réadapté pour avoir des nom de jours en fonction des dates dans l'ardre chronologiques avec prise en comte des weekend

Sub CreationOnglet()
Dim I As Date

For I = DateSerial(2016, 1, 1) To DateSerial(2016, 12, 31) ' a adapter



If Weekday(I, vbMonday) <= 5 Then
Workbooks("Profils.xlsx").Sheets("Jours_travail").Copy After:=Workbooks("Calendrier.xlsx").Worksheets(Workbooks("Calendrier.xlsx").Worksheets.Count)

Else
Workbooks("Profils.xlsx").Sheets("Jours_Weekend").Copy After:=Workbooks("Calendrier.xlsx").Worksheets(Workbooks("Calendrier.xlsx").Worksheets.Count)

End If

ActiveSheet.Name = Format(I, "dddd d mmmm yyyy")

Next I


End Sub
0