Boucle permettant de récupérer valeur

Fermé
Prunett Messages postés 30 Date d'inscription jeudi 5 mars 2015 Statut Membre Dernière intervention 12 mai 2015 - Modifié par Prunett le 12/05/2015 à 19:40
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 13 mai 2015 à 06:01
Bonjour,

Après avoir calculé la moyenne des températures par jour pour chaque jour de l'année, j'aimerais reporté les valeurs dans une autre colonne mais cette fois ci pour chaque heure.

Je m'explique, j'ai déjà calculé la température moyenne pour le 1/01 sur 24h. Maintenant j'aimerais reporter cette valeur pour les 24h du 1/01 et renouveller cette procédure pour l'ensemble des jours de l'année.

Option Explicit
Option Base 1

Sub Tmaxmin_jour()
Dim Derlig As Integer, Nbre_jours As Integer
Dim lig As Integer, Jour As Integer, T_jour, T_temp, T_out
Dim tab_temp(8760) As Variant

'initialisations

    Application.ScreenUpdating = False
    'nettoyage tableau résultats
    Range("H3:L370").ClearContents
    Derlig = Columns("A").Find("*", , , , , xlPrevious).Row
    Nbre_jours = (Derlig - 1) / 24 ' prendre en compte année bissectiles
    ReDim T_out(Nbre_jours, 5) 'champ2=jour, 1=mois 3:maxi,4: mini, 5 moyenne
    
'------Mémorisation des températures maxi/mini/moyenne par jour/mois
    For lig = 2 To Derlig Step 24
        Jour = Jour + 1
        T_jour = Range(Cells(lig, "A"), Cells(lig, "B"))
        T_temp = Range(Cells(lig, "D"), Cells(lig + 23, "D"))
        T_out(Jour, 1) = T_jour(1, 1)
        T_out(Jour, 2) = T_jour(1, 2)
        T_out(Jour, 3) = Application.Max(T_temp)
        T_out(Jour, 4) = Application.Min(T_temp)
        T_out(Jour, 5) = Application.Average(T_temp)
        tab_temp(Jour) = T_out(Jour, 5)
        
    Next
'-----Restitutions des mesures
    Range("H3").Resize(UBound(T_out), 5) = T_out
    Range("O2").Resize(UBound(tab_temp)) = tab_temp
End Sub


Le problème est que j'ai seulement la première valeur (le 1/01) et cela pour l'ensemble des jours de l'année qui s'affiche dans ma nouvelle colonne.



En vous remerciant d'avance,

1 réponse

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
13 mai 2015 à 06:01
Bonjour
Le passage par le VBA n'est pas nécessaire, une simple formule suffit.
Voici une proposition avec 3 méthodes de présentation différentes (la méthode 1 est la plus logique)
https://www.cjoint.com/c/EEngmGYR9zw
A adapter à votre fichier si cela vous convient
Cdlt
0