Calendrier automatique

  • Initiateur de la discussion kiki64
  • Date de début
K

kiki64

Guest
Bonjour,
J'ai un tableau du style: (X lignes, 2 colonnes)

Colonne 1.............................colonne 2
Pierre...................................25/05/2005
Pierre...................................30/01/2006
paul.....................................01/01/2008
marc....................................28/06/2005
marc....................................31/12/2005

Je souhaiterai voir apparaître dans un calendrier le résultat suivant:

...............05/05 06/05 ..........12/05......... 01/06 ...........01/08
Pierre.........X................................................X
Paul ................................................................................x
Marc ......................X..................X


Excusez pour la présentation, mais l'idée de mon problème ressemble fortement à cela.

Merci
 
K

KIKI

Guest
Re,
Après un premier traitement mon fichier données externes comporte environ 1500 lignes représentant environ 410 activités (plusieurs dates par activité).
Une fois copié + clic et recalcul, plantage Excel 'pas de réponse'.
@+
 

Monique

Nous a quitté
Repose en paix
Re,

Cette fois, 50 lignes par 50 lignes, jusqu'à la ligne 450
[file name=CalendKikiV5.zip size=12509]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/CalendKikiV5.zip[/file]
 

Pièces jointes

  • CalendKikiV5.zip
    12.2 KB · Affichages: 40

Hervé

XLDnaute Barbatruc
Bonsoir kiki, monique

Si je peux me permettre cette intrusion.

en rajoutant dans le code de la macro de monique :

en tout début de code :
Application.ScreenUpdating = False

puis en fin de macro :

Application.ScreenUpdating = true

aura pour effet de 'geler' temporairement l'ecran, d'ou meilleur qualité visuel et gain de temps pour le traitement de la macro.

en vous souhaitant une agréable nuit

salut
 
K

KIKI64

Guest
Bonjour et merci pour le travail réalisé hier soir,
Merci également à hervé.
La solution proposée de copier 50 lignes/50 lignes fonctionne et permet de ne pas planter le micro.
Sur ce même principe, serait il de faire quelques modifications ?
Je souhaiterai si possible que le produit fini ressemble à la feuille traitement jointe.
Pour cela, serait il possible de :
- Sur les lignes 2 et 3 de colorier dans le calendrier les plages de maintenances en fonction de la feuille plage de maintenance. En effet, pour une année donnée, toutes les activités à réaliser sont programmées à la même date (date programmées).
- De présenter le résultat du traitement des unités 1 et 2 en utilisant pour chacune des unité la moitié de la plage d’une année (soit 6 cellules).
- De reprendre l’ensembles des colonnes (hors dates) de la feuille données externes
- Le traitement une fois réalisé (c’est à dire mettre les X ou 1 dans le calendrier) faire une 'photo' pour éviter les recalculs. Cette présentation sera pour moi plus fonctionnelle et me permettra d’utiliser les filtres.
Si cela est possible je suis très intéressé et te remercie encore de l’énorme travail réalisé.
Cordialement
@+
 
K

KIKI64

Guest
difficile de perdre des Kilos [file name=KIKI_net.zip size=49815]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/KIKI_net.zip[/file]
 

Pièces jointes

  • KIKI_net.zip
    48.6 KB · Affichages: 20

Monique

Nous a quitté
Repose en paix
Bonjour,

Merci, Hervé, c'est bien plus net, comme ça.

Kiki, tu as dans ton fichier :
la mise en forme conditionnelle selon les dates de la plage de maintenance.
En plus, j'ai mis 1 couleur par trimestre, juste histoire de voir clair.
Toutes les données (sauf les dates) sont extraites.

Le coup de la photo, pas compris.
Une fois que la macro a terminé son travail, il n'y a de formules qu'en ligne 6 (plus, maintenant, dans les lignes du haut.)
Mais il te reste des données et des données à n'en plus finir.
Des données sans recalcul, mais qui peuvent ralentir un calcul que tu ferais en annexe.
[file name=CalendKikiV6.zip size=17036]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/CalendKikiV6.zip[/file]
 

Pièces jointes

  • CalendKikiV6.zip
    16.6 KB · Affichages: 31
K

KIKI64

Guest
:woohoo:
Bonsoir,
Et merci beaucoup pour cette 6éme version
Je viens de copier mes 2150 données externes + clic et après 1/2 H de traitement toujours pas de réponse d’Excel ? J’ai fait le même essai avec 500 données et cela fonctionne.
Concernant le traitement du calendrier, le mode de présentation dans la feuille traitement est très bien. Comment fait on la mise en forme ? J’ai copié/collé et mis à la même largeur les années (jusqu’en 2024).
Pour info, les dates de début de la plages de maintenances sont connues, la durée est connue donc la date de fin est la somme des 2. Si la date de début n’est pas connue, prendre (date-1) et ajouter 14mois ou 14x30jours.
Mille mercis
Cordialement
@+
 

Monique

Nous a quitté
Repose en paix
Bonjour,

Pour la mise en forme des lignes 3 et 4 à partir de la colonne H
Les 4 couleurs, 1 par trimestre, c'est du 'fait main' et ce n'est que pour se repérer plus facilement

La couleur verte de l'unité 1 en ligne 3 :
sélectionner la ligne 3 à partir de H3 puis
barre de menu - format - mise en forme conditionnelle
A gauche, choisir 'La valeur de la cellule est'
et taper :
=SOMMEPROD((MOIS(H$5)&ANNEE(H$5)=MOIS(DebUn)&ANNEE(DebUn))*1)>0
Par les 3 onglets, choisir la mise en forme
Cette formule renvoie vrai ou faux
Si le résultat est 'VRAI', tu obtiens la mise en forme choisie. (sinon, rien)

Idem pour la ligne 4 à partir de H4, mais avec cette formule :
=SOMMEPROD((MOIS(H$5)&ANNEE(H$5)=MOIS(Debde)&ANNEE(Debde))*1)>0

DebUn, c'est la plage des dates de début de l'unité Un (feuille maintenance)
DebDe, c'est la plage des dates de début de l'unité Deux

Une autre manière de l'écrire :
=SOMMEPROD((MOIS(H$5)=MOIS(DebUn))*(ANNEE(H$5)=ANNEE(DebUn))*1)>0
Si mois et année de H5 ont une correspondance de mois et année identiques (et dans la même cellule) dans la plage 'DebUn', le résultat est 1
Si 2 correspondances de mois et année identiques dans la plage 'DebUn', le résultat est 2
Formule>0 renvoie VRAI ou FAUX

Le pourquoi ça plante, je mets ça sur le dos du nb de données, surtout si tu vas jusqu'à 2024 !
J'ai essayé de simplifier la macro, mais je n'ai pas réussi.
 
K

KIKI64

Guest
Bonsoir Monique,
Mille et mille mercis pour ta précieuse aide.
Je me suis permis de rajouter 5 ans au traitement et de modifier la mise en forme conditionnelle.
En fait, 'pas de réponse' n’est pas un plantage. J’ai laissé tourner le micro et au miracle, à mon retour, le traitement avait été réalisé.
Malgré tout, le résultat final est presque parfait. La seule amélioration à apporter (pour le moment) serait d’augmenter la vitesse de traitement. J’ai modifié les copier/coller de ta macro de 50/50 à 25/25 mais le résultat et sensiblement le même.
Quelques réflexions pour essayer d’améliorer la vitesse :
Au final (après traitement), le nombre d’activités de la feuille données externes est réduit à moins de 400 activités. En fait, comme ces activités se répètent plusieurs fois sur une période de 10 ans, on arrive à avoir environ 2200 lignes dans l’onglet données externes.
Serait utile d’effectuer un pré traitement (trie avant traitement, suppression des activités non comprise dans la plage des 10 ans ???
Je reste à ton entière disposition pour creuser toutes les pistes.
Encore merci pour ta disponibilité et ton Expertise avec un grand E.
Cordialement
KIKI64
@+
[file name=CalendKikiV6_20050901193239.zip size=36282]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/CalendKikiV6_20050901193239.zip[/file]
 

Pièces jointes

  • CalendKikiV6_20050901193239.zip
    35.4 KB · Affichages: 20

Monique

Nous a quitté
Repose en paix
Bonjour,

La formule nommée 'FormTablo' est raccourcie :
=SOMMEPROD((Code=$A6)*(DATE(ANNEE(Prevu);MOIS(Prevu);1)=H$5))

Idem pour la mise en forme conditionnelle des lignes 3 et 4 :
=SOMMEPROD((H$5=DATE(ANNEE(DebUn);MOIS(DebUn);1))*1)>0
=SOMMEPROD((H$5=DATE(ANNEE(Debde);MOIS(Debde);1))*1)>0

La formule qui donne, en ligne 6, le 1er de chaque mois, est nommée 'Dat' (à partir de I6)

Je n'ai rien gagné en nb d'octets (pas perdu non plus : pile pareil), mais peut-être en vitesse.

Sinon, on peut faire un tri, en effet, et ne prendre que les données dont la date est <= 10 ans
Mais ça va alourdir.
La formule serait, pour A4 :
=SI(OU(ANNEE(I4)>Choix+10;C4='');'';C4&' - '&B4)
(Choix = la cellule D1 de la feuille de traitement)
Mais cette formule répétée plus de 2000 fois ne va rien améliorer, au contraire.

Une autre solution serait que la macro ne fasse le copié-collé que sur le nombre de lignes nécessaire
Ce nb de lignes :
=SOMMEPROD(1/NB.SI(Code;Code))
(Nombre de valeurs uniques dans la plage des codes)
Sauf que j'y connais rien en macros, je ne saurai pas faire ça.

Le fichier joint : plus de 400 000 octets rien que par les lignes vides de la feuille de traitement
(il est passé de 493 000 à 84 000 octets en supprimant les lignes vides)
[file name=CalendKikiV7.zip size=19392]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/CalendKikiV7.zip[/file]
 

Pièces jointes

  • CalendKikiV7.zip
    18.9 KB · Affichages: 35

Discussions similaires

Réponses
2
Affichages
525

Membres actuellement en ligne

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS