Incrémenter une série automatique des feuilles de mon classeur

pyro13 Messages postés 5 Statut Membre -  
pyro13 Messages postés 5 Statut Membre -
Bonjour,

Je ne sais pas si j'ai bien formulé ma question. J'utilise souvent vos réponse et j'ai bcp appris grâce à CCM mais là je crois que je n'y arriverai pas tout seul...

J'ai créé un tableau simple d'emploi du temps hebdomadaire, je voudrais que de manière automatique, la feuille suivant soit la deuxième semaine de l'année, la 3ème feuille la 3ème semaine de l'année et ainsi de suite.
Aussi, je voudrais que de manière automatique encore, s'inscrive les dates du jour, du lundi au vendredi.

J'espère m'être bien fait comprendre (première question...)

Je vous remercie d'avance pour vos retours!

5 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour
    un exemple de semainier (2 feuilles uniquement avec choix de la semaine ou du mois)

    choix semaine et param^tres (feuille "saisie")dans cellules bleues

    http://www.cjoint.com/c/FAhibMg4xzy

    Edit: une petite erreur dans les n° de semaine: je regarde de suite si le système t'intéresse sinon, je mets le classeur sous le coude

     Michel
    0
    1. pyro13 Messages postés 5 Statut Membre
       
      Bonjour, merci pour ta réponse, je regarde dans la journée si cela convient.

      Merci
      0
  2. Fahora Messages postés 949 Statut Membre 68
     
    Bonjour Pyro , Michel.

    Avec tout le respect que je te dois Michel , je ne suis pas certain que tu aies compris ce que demandais Pyro.
    Pyro, corrige moi si je me trompe, tu demandes la création automatique de chaque semaine de l'année 2016, avec les jours du lundi au vendredi sur chaque feuille.
    Globalement, un total de 52 feuilles (+1 : la première du vendredi 01/01 au dimanche 03/01), pour 52 semaines.
    Il faudra pour ça, utiliser des macros. Est tu capable de le faire ?

    Cdlt
    Fahora
    0
    1. pyro13 Messages postés 5 Statut Membre
       
      Bonjour, effectivement, c'est ce que je voudrais faire!!

      Je vais uploader le fichier exemple pour que ce soit plus clair!
      Merci pour ces réponses!
      0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    SI, j'ai compris mais je lui propose un autre système comme je l'ai indiqué

    un exemple de semainier (2 feuilles uniquement avec choix de la semaine ou du mois)

    quant aux 53 feuilles le pb a déjà été traité dans le forum VBA et il faut que je le modifie pour les semaines ISO dès que je peux

     Michel
    0
    1. Fahora Messages postés 949 Statut Membre 68
       
      SI, j'ai compris. Je n'ai pas voulu t'offenser...
      0
      1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > Fahora Messages postés 949 Statut Membre
         
        C'est raté
        0
  4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour à tous,

    Voici un autre exemple en vba.

    Faire Alt F11 pour accéder à l'éditeur, inserer un UserForm, y mettre un commandbutton avec ce code:

    Option Explicit
    Dim numero As Integer
    Dim i As Integer
     Sub afficher_semaine()
    'numero = Format(Date, "ww", vbMonday, vbFirstFourDays)'recuperer numero de semaine
    Range("A1") = LundiSem(i, 2016)
    Selection.NumberFormat = "[$-F800]dddd, mmmm dd, yyyy"
    Range("A1").Select
    Selection.AutoFill Destination:=Range("A1:A7"), Type:=xlFillDefault
    Range("A1:A7").Select
    Selection.HorizontalAlignment = xlLeft
    ActiveSheet.Columns("A").AutoFit
    End Sub
    Function LundiSem(SEMAINE As Integer, Optional ANNEE As Integer) As Date
    If ANNEE = 0 Then ANNEE = Year(Date)
    LundiSem = 7 * SEMAINE + DateSerial(ANNEE, 1, 3) - _
    Weekday(DateSerial(ANNEE, 1, 3)) - 5
    End Function
    Sub CreationOnglet()
      For i = 1 To 52
      Sheets.Add.Move After:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Name = "Semaine " & i
      afficher_semaine
    Next
    End Sub
    Private Sub CommandButton1_Click()
    CreationOnglet
    End Sub
    


    0
    1. pyro13 Messages postés 5 Statut Membre
       
      Bonjour!

      Je vais essayer ça aussi, je je reviens vers vous!

      Merci!
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Voilà une version sous forme de tableau avec date et horaire sur 52 feuilles:

    Option Explicit
    Dim numero As Integer
    Dim i As Integer
     Sub afficher_semaine()
    'numero = Format(Date, "ww", vbMonday, vbFirstFourDays)'recuperer numero de semaine
    Range("B1") = LundiSem(i, 2016)
    Range("B1").NumberFormat = "[$-F800]dddd, mmmm dd, yyyy"
    Range("B1").AutoFill Destination:=Range("B1:H1"), Type:=xlFillDefault
    Range("B1:H1").HorizontalAlignment = xlLeft
    Range("A2").FormulaR1C1 = "0 heure"
    Range("A2").AutoFill Destination:=Range("A2:A26"), Type:=xlFillDefault
    ActiveSheet.Columns("A:H").AutoFit
     Range("A1:H26").Select
        ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$H$26"), , xlNo).Name = _
            "Tableau1"
        Range("A1:H27").Select
        ActiveSheet.ListObjects("Tableau1").TableStyle = "TableStyleMedium2"
    End Sub
    Function LundiSem(SEMAINE As Integer, Optional ANNEE As Integer) As Date
    If ANNEE = 0 Then ANNEE = Year(Date)
    LundiSem = 7 * SEMAINE + DateSerial(ANNEE, 1, 3) - _
    Weekday(DateSerial(ANNEE, 1, 3)) - 5
    End Function
    Sub CreationOnglet()
      For i = 1 To 52
      Sheets.Add.Move After:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Name = "Semaine " & i
      afficher_semaine
    Next
    End Sub
    Private Sub CommandButton1_Click()
    CreationOnglet
    End Sub


    0
    1. pyro13 Messages postés 5 Statut Membre
       
      Merci pour vos réponses. Je n'ai jamais utilisé VBA. Il faut que j'apprenne à m'en servir.
      0