Quart horaire

Bonjour,

je me tourne envers vous, pour avoir de l'aide pour faire ceci:

je souhaite avoir sur une colonne le quart horaire avec un pas de 30 min, et il doit s'afficher comme suit : 15/01/2016 06:00 etc...

et je veux seulement de 06h du matin a 20h du soir pour chaque journée pour toute l'année.

si je le fais manuellement c'est fastidieux

help me plz

voir le fichier joint merci!

170quart-horaire.xlsx (62.70 Ko)

Bonjour,

Vous pouvez mettre une formule en ajoutant à chaque ligne 1/96ème.

Bonjour,

Manuellement, écris les deux premières valeurs.

Sélectionne les deux cellules, puis à l'aide la poignée de recopie (petit carré en bas la droite de la sélection), tire vers le bas.

Gelinotte

Bonjour,

merci sa répond a une partie de mon soucie, il reste que mon quart horaire pour chaque journée il est de 06h00 a 20h00 non pas toute la journée

Bonjour,

1/4 d'heure ou demi-heure ? Tu annonces quart mais ton fichier définit des intervalles demi ?

De 6h00 à 20h00, cela fait 56 intervalles d'un quart d'heure, notés sur la borne de départ : 06:00 à 19:45.

Et tu veux lister de quelle date à quelle date ainsi ?

Bonjour,

ah désolé une erreur de ma part, je veux des intervalles de demi-heure.

et je veux bien lister du 01/01/2016 au 31/12/2016 (toute une année)

Merci bien.

Re,

Un petit délai pour fournir... une légère erreur de calcul me faisait lister jusqu'au 25 décembre 2043 !

Voilà pour faire automatiquement :

Sub ListerIntervallesHoraires()
    Const a As Integer = 2016
    Const hd As Single = 6
    Const hf As Single = 20
    Const intv As Single = 0.5
    Dim i%, j%, nih%, nj%, jour
    nih = (hf - hd) / intv
    nj = DateSerial(a, 12, 31) - DateSerial(a, 1, 1)
    Application.ScreenUpdating = False
    With ActiveSheet.Range("A2")
        .Value = DateSerial(a, 1, 1) + hd / 24
        .NumberFormat = "dd/mm/yyyy hh:mm"
        .Offset(1).Value = .Value + intv / 24
        .Offset(1).NumberFormat = "dd/mm/yyyy hh:mm"
        .Resize(2).AutoFill .Resize(nih), xlFillSeries
        jour = .Resize(nih)
        For j = 1 To nj
            For i = 1 To UBound(jour)
                jour(i, 1) = jour(i, 1) + 1
            Next i
            With .Offset(nih * j).Resize(nih)
                .Value = jour
                .NumberFormat = "dd/mm/yyyy hh:mm"
            End With
        Next j
        With .Resize(nih * (nj + 1)).Borders
            .LineStyle = xlContinuous
            .Weight = xlThin
        End With
    End With
    Application.ScreenUpdating = True
End Sub

Réutilisable en modifiant les constantes en tête de procédure :

a (=année)

hd (=heure début, unité heure)

hf (=heure fin, unité heure)

intv (=intervalle horaire, unité heure)

Macro à placer dans un module standard. Elle opère sur la feuille active, donc la lancer à partir de la feuille sur laquelle on souhaite lister ces bornes d'intervalles.

Cordialement.

Merci beaucoup

Bonjour,

Si c'était mon chiffrier, j'oserais demander une cellule de couleur au changement de date ou des couleurs alternées des plages journalières ... afin d'avoir un visuel sur le changement de jour ...

Le développement de mon encéphale ne me permet pas de proposer un code fonctionnel

Gelinotte

Bonsoir,

Deux MFC pour ça ! Tu mets comme formule conditionnelle :

=ET($A2<>"";MOD($A2;2)=0) 'couleur 1

=ET($A2<>"";MOD($A2;2)=1) 'couleur 2

Plage d'application : A2:A10300 (en gros ! tu peux couvrir plusieurs colonnes le cas échéant)

Bonjour,

First strike

Ou j'ai besoin d'aller dormir ou ça ne fonctionne pas

Gelinotte


Bonjour,

Après quelques instants de rémission ...

=ET($A2<>"";MOD(JOUR($A2);2)=0)  ' couleur1
=ET($A2<>"";MOD(JOUR($A2);2)=1)   ' couleur2

Gelinotte

Désolé, j'ai écrit vite en oubliant l'heure !

Il faut donc prendre ENT($A2) au lieu de $A2.

JOUR ne convient pas car ne fera pas la distinction entre 31 et 1 (ou 29 et 1).

Cordialement.

Bonjour,

Effectivement, ça roule impec.

J'espère que mindah trouvera cela intéressant.

Au plaisir de te relire

Gelinotte

Rechercher des sujets similaires à "quart horaire"