Onglets par plages horaire

Résolu
Bonjour,

Je voudrais faire une macro qui ouvre mon classeur sur le bon onglet suivant la plage horaire.
De 6h00 à 12h00 ouvre l'onglet matin
De 12h00 à 20h00 ouvre l'onglet apres-midi
De 20h00 à 6h00 le lendemain matin ouvre l'onglet nuit

Merci pour vos connaissances, car les miennes ne sont pas assez suffisante pour résoudre ce probléme.
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. slt je ne vois pas trop l'interret de ta macro ! :)
    à mon avie en un clic tu pourrais l'ouvrir plus rapidement qu'une macro
    bon j'ais un tout petit peu de connaissance ca devrais faire un truc du genre

    sub public ouvreonglet()

    Dim temps As Date
    Dim matinmin As Variant
    Dim matinmax As Date
    Dim apresmidimin As Variant
    Dim apresmidimax As Variant
    Dim nuitmin As Variant
    Dim nuitmax As Variant
    temps = Time

    matinmin = "06:00:00"
    matinmax = "12:00:00"
    apresmidimin = "12:00:00"
    apresmidimax = "20:00:00"
    nuitmin = "20:00:00"
    nuitmax = "06:00:00"

    If temps >= matinmin And temps < matinmax Then
    Sheets("matin").Activate
    ElseIf temps >= apresmidimin And temps < apresmidimax Then
    Sheets("apres-midi").Activate
    ElseIf temps >= nuitmin And temps < nuitmax Then
    Sheets("nuit").Activate
    End If

    end sub

    j'ais créer des varaible pour les horraires je trouve ca plus visible si tu veus les changer
    1. ca fonctionne, merci beaucoup de m'avoir accordé un peu de votre temps bonne fetes de fin d'année a vous et vos proches.
      1. A priori cela ne fonctionne pas pour la nuit, j'ai changé la variable 6:00:00 par 05:59:59 mais toujours pas.
        Sub ouvreonglet()

        Dim temps As Date
        Dim matinmin As Variant
        Dim matinmax As Date
        Dim apresmidimin As Variant
        Dim apresmidimax As Variant
        Dim nuitmin As Variant
        Dim nuitmax As Variant
        temps = Time

        matinmin = "06:00:00"
        matinmax = "12:00:00"
        apresmidimin = "12:00:00"
        apresmidimax = "20:00:00"
        nuitmin = "20:00:00"
        nuitmax = "05:59:59"

        If temps >= matinmin And temps < matinmax Then
        Sheets(" planning matin").Activate
        ElseIf temps >= apresmidimin And temps < apresmidimax Then
        Sheets(" planning am").Activate
        ElseIf temps >= nuitmin And temps < nuitmax Then
        Sheets("planning nuit").Activate
        End If

        End Sub
        1. j'ai trouvé en cherchant un peu. Merci à dy pour son soutien.

          Sub ouvreonglet()

          Dim temps As Date
          Dim matinmin As Variant
          Dim matinmax As Date
          Dim apresmidimin As Variant
          Dim apresmidimax As Variant
          Dim nuitmin As Variant
          Dim nuitmax As Variant
          Dim nuit1min As Variant
          Dim nuit1max As Variant
          temps = Time

          matinmin = "06:00:00"
          matinmax = "12:00:00"
          apresmidimin = "12:00:00"
          apresmidimax = "20:00:00"
          nuitmin = "20:00:00"
          nuitmax = "23:59:59"
          nuit1min = "00:00:00"
          nuit1max = "05:59:59"

          If temps >= matinmin And temps < matinmax Then
          Sheets(" planning matin").Activate
          ElseIf temps >= apresmidimin And temps < apresmidimax Then
          Sheets(" planning am").Activate
          ElseIf temps >= nuitmin And temps < nuitmax Then
          Sheets(" planning nuit").Activate
          ElseIf temps >= nuit1min And temps < nuit1max Then
          Sheets(" planning nuit").Activate

          End If

          End Sub