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.
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".
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
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
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
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