Afficher des prévisions dans un diagramme de Gantt

Bonjour forum,

à l'aide de Excel, j'aimerais illustrer des prévisions de vent dans des feuillets qui s'apparentent aux diagrammes de Gantt. Les prévisions sont émises 2 fois par jour (toujours à 7h00 et 19h00) et elles couvrent à partir de l'heure d'émission jusqu'à 52 heure (i.e. jusqu'au jour 3 à 4h). De plus, il arrive parfois que des amendements aux prévisions soient émis.

Le format des bulletins (fichier .text) est rigide de telle sorte que je crois qu'il peut être aisément traité dans Excel:

La première ligne d'une prévision (ou amendement) indique:

l'année, le mois, le jour et l'heure d'émission

la deuxième indique la (ou les régions) en cause:

les régions commencent toujours par un: "r"

les lignes suivantes donnent les détails de la prévision (pour la/les régions en cause)

heure du début heure de fin direction vitesse (multiple de 5)

parfois, une 5, 6 et 7 ième colonnes peuvent apparaître pour prévoir des exceptions et qui sont : lieu, direction, vitesse.

J'ai joint un fichier .text qui montre des exemples de prévisions (de format) de même qu'un fichier excel (le résultat que je désire obtenir grâce à une macro) illustrant les prévisions de chaque région dans un feuillet correspondant.

15forum-excel.txt (2.64 Ko)

Les vents dans le fichier excel sont illustrés de telle sorte que:

de 20 noeuds et moins: vert clair

25-30 noeuds: jaune clair

35-40-45: oranger

50-55-60: rouge

>60: violet.

Je suggère de consulter les 2 fichiers pour mieux comprendre. Ces 2 fichiers n'incluent que 3 jours mais en réalité, je désire traiter tout un mois à la fois.

Voilà, j'espère que mon message est clair sinon il me fera plaisir d'apporter des précisions.

Merci à l'avance

Émil

Rebonjour,

malgré les 65 lectures de mon post précédant envoyé la semaine dernière, bien peu ont regardé les fichiers joints tandis qu'aucune réplique n'a été faite. J'en déduis qu'il y a problème probablement parce qu'il est confus ou trop complexe.

Je repose le problème plus simplement en espérant enfin une réponse car de mon côté, je patauge dans une amorce de VBA qui se bute à mon inexpérience en la matière. Alors je reprend...

Chaque mois, je reçois sous forme de texte, des prévisions de vent émises minimalement 2 fois par jour pour différentes régions.

Le texte "hard coded" est toujours le même:

2014    07    02    0700         
    r04110                 
    07    13    sw    15            
    13    24    sw    25            
    24    34    sw    20            
    34    52    sw    15
    r04120                
        prévision de vents et ainsi de suite... 

La première ligne indique: Date & heure de l'émission de la prévision: an mois jour heure

La deuxième: région(s) en cause (commence toujours par r suivi de 5 chiffres)

Lignes 3 à 6 incl: périodes caractérisées par une direction et vitesse de vents

Ligne 7: prochaine région et ainsi de suite....

Remarque:

Une prévision débute toujours à l'heure émise (dans ce cas-ci 07) et se termine toujours à 52. Une prévision émise à 19H00 a son premier intervalle de prévision à 19 tandis qu'une prévision émise à 03H48 aura son premier intervalle à 24+3 (il est ainsi pour toutes les prévision émises entre 00 et 07h00).

Cependant, à chaque émission quotidienne de 7H00, l'intervalle de début revient à 7H00 (mais repoussée d'une journée). Dans tous les cas, la prévision s'arrête à l'heure: T+52.

Je fournis un nouveau fichier excel où j'ai introduit la prévision .text dans le feuillet: "Tempo".

21forum-excel4.xlsx (28.01 Ko)

Partant de cet échantillon, je cherche à illustrer les prévisions pour chaque régions dans des feuillets correspondants grâce à des diagrammes de Gantt. Les vents sont illustrés selon un code de couleur propre à la vitesse prévue.

Vert: <25 noeuds

Jaune: 25-30 noeuds

Orange: 35-40-45 noeuds

Rouge: 50-55-60 noeuds

Violet: 65 et plus

Une réponse ou des commentaires seront appréciés si mon problème demeure encore confus ou trop laborieux.

Merci

Émi

bonsoir

petite question

dans :

07 13 sw 15

13 24 sw 25

24 34 sw 20

34 52 sw 15

c'est de 7H à 13H vent 15Noeuds SW , c'est cela ?

mais de 34 à 52 cela représente quoi ???

un peu plus de détails soient la bienvenus.

Fred

Bonjour,

je vous remercie de bien vouloir me venir en aide. Vous avez raison:

07 13 sw 15 veut dire que les vents seront du sud-ouest à 15 nœuds entre 07-13 heures puis la prévision continue dans le futur,

13 24 sw 25 veut dire que les vents augmenteront à 25 nœuds du sud-ouest entre 13 et minuit,

24 34 sw 20 puis les vents diminueront au sud-ouest à 20 nœuds entre minuit et 10 heures le second jour

34 52 sw 15 finalement les vents faibliront encore au sud-ouest à 15 nœuds entre 10H00 (jour 2) et 4H00 AM du jour 3.

si d'autres précisions sont nécessaires, n'hésitez pas.

Émil

Re bonsoir

Voici une proposition a tester

Fred

19gantt.xlsm (39.25 Ko)

Bonjour,

après avoir testé la macro, j'ai noté 2 erreurs qui me semblent être récurrentes.

La première concerne les périodes de prévision auxquelles il manque une heure à chaque intervalle.

Par exemple, pour la région r04120, le premier intervalle prévu débute à 07 jusqu'à 15 heures

alors que dans le diagramme de Gantt, on a de 07 à 14.

Le deuxième bug concerne les couleurs qui ne correspondent pas aux valeurs de vent prévues pour chacune des intervalles.

Autrement, je suis ravi du résultat et de la rapidité d'exécution.

Émil

bonjour

normalement problèmes corrigés

j'ai changer les vitesses de vent pour le premier site pour vérifier les couleurs

Fred

16gantt-v002.xlsm (36.99 Ko)

Bonjour,

toutes les modifications apportées à Gant V002 ont corrigés les problèmes notés.

Enfin, j'ai testé à nouveau la dernière version avec un fichier source plus volumineux (plus de régions et plus de prévisions). Il en est ressorti 2 derniers petits pépins:

1. les 2 lignes titres: date et heure de la journée ne sont pas automatiquement ajoutées et mises à jour dans chaque feuillet.

2. le contenu des cellules (de même que leur couleur) de tous les feuillets: r..... devrait être initialement supprimé avant le traitement de la macro (présentement les nouveaux résultats s'additionnent aux anciens ce qui n'est pas désirable).

Voilà

Je vous remercie pour votre patience

Émil

bonsoir

pour la suppression des données cela est faisable rapidement

en ce qui concerne les erreurs il me faudrait le fichier test et me dire pour quelles feuilles cela ne va pas...

je pars en déplacement toute la semaine

je verrais cela le WE prochain

Cordialement

Fred


voici la version V3 avec la suppression des données au lancement de la macro sur toutes les feuilles (sauf la 1 evidemment)

Fred

41gantt-v003.xlsm (38.63 Ko)

C'est parfait,

je vais patienter jusqu'au weekend prochain et je tâcherai d'ici là de bien cerner le cas avant de répliquer.

Merci

Émil

Bonjour,

tel que convenu, j'ai testé la macro Gantt V003 avec un fichier plus complet et complexe (mois d'avril 2014).

Étant limité dans la grosseur d'un fichier (et par soucis de simplicité), le fichier joint:

ne contient que les 14 premiers jours du mois et 3 régions ce qui semble suffisant.

En réalité, une prévision peut contenir jusqu'à 11 régions distinctes. J'ai testé la macro avec 11 feuillets

représentant les 11 régions et tout a bien fonctionné.

1. En fait, la macro a bien fonctionné jusqu'au jour 13. Mais au jour 14: la macro a eu une erreur d'exécution "13"

"Incompatibilité de type" à la ligne:

 quote   debut_init = 24 * (Sheets(1).Range("C" & i) - 1) + heures + 1 

Il est possible que l'erreur origine de la variable: "heures" définit précédemment.

De toute évidence, la macro n'a pas saisi la ligne 669 du feuillet: "Tempo"

2014 4 14 25

Originalement, le fichier. text indique 2014 04 14 0025 pour: minuit 25 le 14 avril 2014.

Cependant, lorsque le fichier text est converti en excel, les zéros à gauche des séries de nombres sont

supprimés de telle sorte que l'indication des heures est absente.

J'imagine qu'une prévision émise à minuit donnerait: 0 et aurait aussi des effets indésirables

sur la macro.

2. En examinant la macro, j'ai constaté que celle-ci est en mesure de traiter un groupe de deux régions ayant la même prévision.

C'est excellent mais idéalement, il faudrait qu'elle puisse traiter jusqu'à 6 régions groupées (cas très rare mais possible).

3. Pour terminer, la macro ne change pas la date sur la première ligne d'en-tête (on remarque qu'on a

encore le mois de juin au lieu du mois d'avril). Est-il possible d'harmoniser les dates de l'entête avec les indications fournies

dans le météocode.

Voilà,

Encore un gros merci pour l'aide

Émil

Bonjour,

En attendant le retour de Fred...

J'ai constaté que la macro passe si on insère la ligne suivante :

'mettre le format de l'heure sur deux chiffres

If Len(heures) = 0 Then heures = "00" & heures

If Len(heures) = 1 Then heures = "0" & heures

En revanche je n'ai pas regardé ce que ça donne au niveau du Gantt... Tu peux déjà regarder ça donnera peut-être des idées à Fred.

Pour la première ligne de date il faut écrire en B1

=A3

en Z1 écrire

= A1 +1

en AX1 écrire

= Z1 +1 et ainsi de suite...

Pour la question 2 je n'ai pas compris.

A+

merci galopin pour le problème de l'heure...

j'avais déjà régler le problème avant d'avoir lu ta réponse...

pour ce qui est de la date j'ai commencé a faire une usine a gaz mais ta solution est bcp plus simple

je modifie le fichier avec ton idée et je met a dispo

pourquoi faire simple quand on peut faire compliquer....

le reste est fait

fred

Re bonjour

donc voici le fichier corriger a tester

juste une remarque, étant donné qu'il peut y avoir plusieurs régions concernées par une même prévision je n'ais a aucun moment testé si la feuille de la région existe bien dans le fichier... si elle n'existe pas => plantage de la macro faut-il mettre cette sécurité dans le code ou il sera certain qu'une feuille par région existera ???

Edit : il faut vérifié ce qu'il se passe a la fin du mois car avec cette nouvelle version du code pour l'optimisé un petit peu je ne récupère le mois qu'une seule fois sur la première ligne.. il faut voir ce que cela peut donner

fred

Bonjour à vous deux,

tout ceci me semble prometteur. En passant, pourriez-vous me décrire ce que fait exactement la commande: "Len"?

Concernant tes points:

faut-il mettre cette sécurité dans le code ou il sera certain qu'une feuille par région existera ???

Il est certain que les 11 feuillets représentants les 11 régions seront toujours présents dans le fichier.

il faut vérifié ce qu'il se passe a la fin du mois car avec cette nouvelle version du code pour l'optimisé un petit peu je ne récupère le mois qu'une seule fois sur la première ligne.. il faut voir ce que cela peut donner

Les fichiers sources .txt ne comportent qu'un mois de prévisions à la fois alors je n'entrevoit pas de problème ici.

Je teste à nouveau mais j'ai bon espoir que cette fois c'est la bonne!

Encore merci à vous deux!

Émil

re

Len permet de connaitre la longueur d'une chaîne de caractères

exemple si la variable toto contient : demain

len(toto) renverra 6 qui correspond au nombre de caractère.

si en revanche toto = "" (rien)

il n'y aucun caractère donc len(toto) = 0

fred

Bonjour,

j'ai testé la dernière macro proposée dans tout genre de conditions et je constate qu'elle répond très bien aux attentes.

Encore Merci

Émil

Rechercher des sujets similaires à "afficher previsions diagramme gantt"