Tableau synthétisant des cumuls horaires de pluies

Bonjour à toutes et tous,

J'exploite une station météo artisanale et simplifiée à 2200 m d'altitude sur un massif calcaire dans les Pyrénées.

Quand je dis simplifiée c'est qu'elle ne comporte qu'un thermomètre enregistreur (le classement des données enregistrées ne me pose aucun problème), et un pluviomètre enregistrant les bascules tout à fait aléatoires d'un auget, soit chaque 0,2 mm de pluie.

Je joins un classeur comportant le mois de février 2014 terminé, et le mois d'avril à finaliser.

1) la première tache fastidieuse est de sous totaliser les cumuls horaires et journaliers. Je le fais "visuellement" avec les risques d'erreurs que cela comporte, heureusement des sous totaux par colonnes m'en informent s'ils sont différent. C'est supportable !

2) par contre le report des sous totaux horaires de la colonne D vers les cases correspondantes du tableau occupant les colonnes de N à AN est extrêmement fastidieux et génère des erreurs fréquentes longues à détecter...

Vous aurez compris que mes connaissances du logiciel EXCEL sont réduites à leur plus simple expression, et que je ne connais pas suffisamment pour travailler VBA (?) ou le code, ou toute autre astuce s'écartant d'un usage basique...

Auriez vous une idée ? pour le 1) mais surtout pour le 2) !!!

Merci par avance !

C'est extrêmement simple à faire. Des formules sommeprod suffiront pas besoin de vba. Je suis sur mon téléphone. Dès mon arrivée je te le fais.

Bonsoir,

C'est extrêmement simple

Je veux bien me faire corriger, car j'ai des erreurs... ???

J'ai fait les mises en formes conditionnelles (MFC) des heures et des jours. Pour les reports sur ton tableau j'ai des erreurs.

Je te conseil de faire des copies des onglets pour tes prochains mois. Tu cliques droit sur l'onglet à dupliquer et tu crées une copie. Avec cette méthode tu pourras avoir les MFC à chaque fois.

J'ai aussi fait pour que ton tableau de recap soit mensuel en changeant juste le mois.

Voilà pour ma contribution,

J'attend les corrections ou d'autres méthodes de Engue Engue

Cordialement,

Leakim

Salut,

J'ai aussi essayé quelque chose

Je te propose un essai ci-joint. Tu cliques sur le bouton en place sur la feuille d’avril et le report se fait comme tu le désires.

Je pense qu’il y a énormément de choses à automatiser dans ton fichier, par exemple les totaux des colonnes D et E.

A toi de dire.

47essai.xlsx (69.82 Ko)

Salut Yvouille,

Je suis d'accord avec toi il y a moyen de faire pas mal de chose automatiquement...

Par contre ton doc n'a pas de macro ???

@+

Leakim

Merci beaucoup pour ces réponses rapides, mais il faut que je les digère !!!

La feuille de Leakim présente des résultats inattendus, le cumul du mois est supérieur à ce qu'il pleut sur le massif pendant 4 mois, je vais tenter de comprendre.

La feuille d'Yvouille (avril 2014 (2)) ne comporte aucune formule et est strictement la copie d'avril 2014... Ou je ne comprends pas ! Quel bouton en place ?

J'attends le complément de réponse de EngueEngue, mais vous m'avez donné du travail pour le week-end prolongé !!!

Merci encore à tous, je transpire déjà !

Bonjour,

Bonjour Leakim,

Un petit bonjour à notre ami suisse

Une alternative avec TCD à étudier par GJC...

Cdlt

Re-bonjour,

J'ai travaillé quelques heures sur un PC inconnu et j'ai dû louper quelque chose.

Juste pour le fun, voici donc un nouveau fichier avec une copie de ma première macro.

Cordialement.

21essai-bis.xlsm (60.92 Ko)

Pour 2)

En O3

=SOMMEPROD(($N3=$A$3:$A$546)*($C$3:$C$546)*(HEURE($B$3:$B$546)=O$2))

Puis on tire

Pour 1)

Même mécanisme de sommesprods

Mais je vois que leakim et yvouille se sont déjà tués à la tâche.

Je trouve aue la formule n'est pas grandement compliqué et je sais que tu as déjà fait bien plus difficile Leakim!

Sinon, que fais tu de ces données ?

Re,

J'ai remis la formule de engue engue

Et je t'ai dupliquer l'onglet pour le mois de mai.

Engue engue:

Tu peux m'expliquer là où je ma suis perdu ???

Leakim


EngueEngue a écrit :

Pour 2)

Je trouve aue la formule n'est pas grandement compliqué et je sais que tu as déjà fait bien plus difficile Leakim!

T'es gentil mais je suis en formation pour un changement de secteur et je perd très vite !!!

Leakim

Yvouille a écrit :

Re-bonjour,

J'ai travaillé quelques heures sur un PC inconnu et j'ai dû louper quelque chose.

Juste pour le fun, voici donc un nouveau fichier avec une copie de ma première macro.

Cordialement.

Bonjour !

Je planche depuis bonne heure ce matin...

La proposition d'Yvouille est la plus accessible pour moi, pour l'instant (tu parles, c'est tout prêt !!!)...

Par contre, j'ai l'habitude avec ma méthode ancestrale, de contrôler les cellules F3-G3-H3-M33 (ou 31 ou 34 selon L des mois).

La valeur doit être la même sinon il y a erreur et je la cherche.

Dans le tableau se remplissant automatiquement grâce au miracle du petit bouton (macro ???, mais je ne connais pas), F3-G3-H3 affichent 108,8 c'est le cumul mensuel réel et correct dans les 3 cellules.

Par contre la M33 affiche 108... Il manque 0,8 provenant du 20 avril où le cumul journalier dans la colonne E est de 13,6 alors que la cellule M22 porte 12,8.

Yvouille doit pouvoir réparer ça en un tour de main !

Vous m'aurez au moins automatisé la tache la plus ingrate. Reste les sous-totaux horaires et journaliers des colonnes D et E.

Il y a des pistes que je vais tenter de suivre dans vos aides respectives, mais c'est pas gagné !

EngueEngue me demandait ce que je faisais de toutes ces données.

Et bien cela:

puis nous comprenons mieux:

Encore une fois, merci à tous !

Cordialement

Bonjour,

Vu que tu préfères des macros..

En voilà une qui te fait le tout. Tu n'as qu'à la lancer en changeant le non de ta feuille dans le With

Sub toto()
    Dim DerLig As Integer, derligdate As Integer, i As Integer, j As Integer, k As Integer
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    With Sheets("avril 2014") 'ici changer le nom du sheet
'vide ta feuille
        .Range("D3:E5000").ClearContents
        .Range("D3:E5000").Borders(xlEdgeBottom).LineStyle = xlNone
        .Range("O3:AL50").ClearContents

 'trouve les dernieres lignes
        DerLig = .Range("N" & .Rows.Count).End(xlUp).Row
        derligdate = .Range("A" & .Rows.Count).End(xlUp).Row
'calcules tes sommes horaires et journalieres dans ton tableau
        For i = 3 To DerLig
            For j = 15 To 38
                For k = 3 To derligdate
                    If .Range("N" & i) = .Cells(k, 1) And .Cells(2, j) = Hour(.Cells(k, 2)) Then
                        .Cells(i, j) = .Cells(i, j) + .Cells(k, 3)
                    End If
                Next k
            Next j
        Next i

'calcule sommes journalieres
        For i = 3 To derligdate
            If .Cells(i, 1) = .Cells(i + 1, 1) Then
                sommejour = sommejour + .Cells(i, 3)
            Else
                .Cells(i, 5) = sommejour + .Cells(i, 3)
                .Cells(i, 5).Borders(xlEdgeBottom).LineStyle = xlContinuous
                sommejour = 0
            End If
        Next i

'calcule sommes horaires
        For i = 3 To derligdate
            If Hour(.Cells(i, 2)) = Hour(.Cells(i + 1, 2)) Then
                sommejour = sommejour + .Cells(i, 3)
            Else
                .Cells(i, 4) = sommejour + .Cells(i, 3)
                .Cells(i, 4).Borders(xlEdgeBottom).LineStyle = xlContinuous
                sommejour = 0
            End If
        Next i
    End With

    Application.Calculation = xlCalculationAutomatic

End Sub
EngueEngue a écrit :

Bonjour,

Vu que tu préfères des macros..

En voilà une qui te fait le tout. Tu n'as qu'à la lancer en changeant le non de ta feuille dans le With

Sub toto()
    Dim DerLig As Integer, derligdate As Integer, i As Integer, j As Integer, k As Integer
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    With Sheets("avril 2014") 'ici changer le nom du sheet
'vide ta feuille
        .Range("D3:E5000").ClearContents
        .Range("D3:E5000").Borders(xlEdgeBottom).LineStyle = xlNone
        .Range("O3:AL50").ClearContents

 'trouve les dernieres lignes
        DerLig = .Range("N" & .Rows.Count).End(xlUp).Row
        derligdate = .Range("A" & .Rows.Count).End(xlUp).Row
'calcules tes sommes horaires et journalieres dans ton tableau
        For i = 3 To DerLig
            For j = 15 To 38
                For k = 3 To derligdate
                    If .Range("N" & i) = .Cells(k, 1) And .Cells(2, j) = Hour(.Cells(k, 2)) Then
                        .Cells(i, j) = .Cells(i, j) + .Cells(k, 3)
                    End If
                Next k
            Next j
        Next i

'calcule sommes journalieres
        For i = 3 To derligdate
            If .Cells(i, 1) = .Cells(i + 1, 1) Then
                sommejour = sommejour + .Cells(i, 3)
            Else
                .Cells(i, 5) = sommejour + .Cells(i, 3)
                .Cells(i, 5).Borders(xlEdgeBottom).LineStyle = xlContinuous
                sommejour = 0
            End If
        Next i

'calcule sommes horaires
        For i = 3 To derligdate
            If Hour(.Cells(i, 2)) = Hour(.Cells(i + 1, 2)) Then
                sommejour = sommejour + .Cells(i, 3)
            Else
                .Cells(i, 4) = sommejour + .Cells(i, 3)
                .Cells(i, 4).Borders(xlEdgeBottom).LineStyle = xlContinuous
                sommejour = 0
            End If
        Next i
    End With

    Application.Calculation = xlCalculationAutomatic

End Sub

Je viens d'essayer, ça tient du miracle !!!

Cela fait 3 années de données que je me faisais à la main...

Je m'y pencherai davantage ce we.

Merci encore.

Toujours un plaisir d'aider des gens qui, eux, aident les autres dans des associations.

Bon courage, n'hésite pas à en demander davantage!

Désolé pour ces hésitations successives, le tout dans un même et seul message ...

Bonjour !

J’ai pu reprendre et terminer l’année la mise au clair des données de juillet 2013_juin 2014 grâce au code que tu m’as écrit, ça a été d’une simplicité et surtout d’une précision qui m’ont comblé !

Il reste encore quelques taches répétitives et fastidieuses et comme tu m’as proposé gentiment de te demander plus si nécessaire, j’en profite (sans en abuser j’espère !) :

1) Dans le document que je te joins, il y a 2 onglets sombres écrits en blanc, nommés RLVpl_x_jjmoisaaaa.

Ce sont les données mises au format, des 2 relevés annuels que j’effectue fin juin et fin novembre. Je les ventile ensuite par mois. Mais auparavant, je dois les ajuster sur l’heure UTC alors qu’elles sont à l’heure « windows » du jour de l’activation de l’enregistreur (Nous pouvons in tervenir dans l’heure de certaines sondes, mais pas dans d’autres). En effet, comme nous avons plusieurs sondes sur ce massif, nous avons fait le choix de toutes les aligner sur l’heure UTC puisque les données sont souvent croisées et corrélées. Donc par exemple, j’ai dû enlever 1 heure aux données du RLVpl_6_14décembre 2013, et 2 heures à celles du RLVpl_7_5juillet2014.

Quand je fais cette manipulation avec les méthodes basiques par soustraction d’une colonne d’1 heure (ou de 2) à l’heure initiale, si les évènements ont se sont produits dans la 1ere de la matinée, ils deviennent négatifs et les cellules apparaissent hachurées, sans valeur. Je reprends donc les séries en trichant pour les attribuer à la date antérieure et à l’heure UTC.

S’il existe une méthode pour automatiser cette tâche, elle me ferait éviter des erreurs.

2) Dans les feuilles mensuelles, la cellule J2 totalise les cumuls horaires (colonne D) supérieurs ou égaux à 1 mm, la cellule K2 totalise ceux supérieurs ou égaux à 5 mm, la cellule L2 totalise ceux supérieurs ou égaux à 10mm. Il existe un moyen basique d’automatiser ces calculs, pourrait-tu les intégrer dans le code que tu m’as fourni et qui figure à l’onglet « code macro » ?

Tout d'abord je ne vois pas ton fichier joint.

Ensuite, je vais te le faire mais laisse moi un peu de temps, c'est le rush au boulot.

Pour changer de fuseau horaire.. si en A1 tu as "26/11/2013 01:34" et que tu veux soustraire deux heures

=A1 - temps(2; 0; 0)

Te donnera "25/11/2013 23:34"

Bonjour, juste une petite précision, quand tu ajoute les cumuls horaires, tu veux cumuler les heures > à 1, 5, 10 mm ou cumuler les données ?

Guitouille a écrit :

Bonjour, juste une petite précision, quand tu ajoute les cumuls horaires, tu veux cumuler les heures > à 1, 5, 10 mm ou cumuler les données ?

J'ai peut-être commis une erreur dans l'énoncée:

Il s'agit d'avoir dans chaque cellule citée, le nombre de jours du mois où il a eu un cumul supérieur à 1mm, à 5mm et à 10 mm.


EngueEngue a écrit :

Tout d'abord je ne vois pas ton fichier joint.

Ensuite, je vais te le faire mais laisse moi un peu de temps, c'est le rush au boulot.

Pour changer de fuseau horaire.. si en A1 tu as "26/11/2013 01:34" et que tu veux soustraire deux heures

=A1 - temps(2; 0; 0)

Te donnera "25/11/2013 23:34"

Surtout aucun problème !!! Ne stresse pas, j'aurais scrupule en tant que retraité de charger un actif !!!

Prend le temps qu'il te faudra, tu m'as déjà bien aidé pour ce document.

Je te joins le ficheir

Toujours rien

Me revoilà,

j'ai fais une macro (avec un code bourrin je vous l'accorde ) qui cumule les jours dépassants les minimums de précipitations,

pour ton problème d'heure, tu souhaite pouvoir adapter les heures des données en ajoutant ou soustrayant une même durée à toutes ces heures ,si j'ai bien compris ?

si oui, combien, en fonction de quoi, plutôt une boite de dialogue qui te demanderait à chaque utilisation combien ajouter/enlever ??

Rechercher des sujets similaires à "tableau synthetisant cumuls horaires pluies"