Gérer un calendrier

softimen

XLDnaute Nouveau
Bonjour ,

J'ai besoin de votre aide pour résoudre mon problème s'il vous plait que je trouve un peu compliquée pour moi :( .
Je commence par vous expliquer mon problème :

j'ai deux fichier sur le mémé classeur excel 2010 .

-le premier fichier :qui contient des données ;trajet , trajet associé et un calendrier qui est saisie automatiquement suite a la saisie des dates de circulation de ce trajet .les dates donc seront remplies dans le calendrier par des "X" pour la période de circulation.

-le deuxième fichier , contient le trajet , le trajet associé avec date d'ouverture de ce trajet .

Je voudrai si c'est possible pour le deuxième fichier ,si pour untrajet ,on a une date d'ouverture précise , alors ,il revient vers le fichier 1 et cherche ce trajet et la date de circulation qui est saisie par "X"(convertir ce X par une date pour peut faire la comparaisson) ;et supprimer dans ce calendrier le "X" qui correspend a cette date.

j’espère que j'ai bien expliqué mon souci .
Je vous joint un fichier pour mieux expliquer mon souci .
J'ai codé un truc mais ça ne fonctionne pas :(
Dans l'attente de votre aide .Je vous remercie d'avance pour vos effort
 

Pièces jointes

  • gerer calendrier.xlsm
    2.5 MB · Affichages: 36

vgendron

XLDnaute Barbatruc
Hello
en attendant la version complète allégée
VB:
Sub Gerer3()
Application.EnableEvents = False
Set FL1 = Sheets("Saisie des fermetures")
Set FL2 = Sheets("Recap Fermeture pour Ouverture")

Dim tabF1() As Variant
Dim tabF2() As Variant

With FL2
    tabF2 = .UsedRange.Offset(8, 0).Value
End With
For i = LBound(tabF2, 1) To UBound(tabF2, 1)
    If tabF2(i, 11) <> "" Then
        Trajet = tabF2(i, 1)
        DateCircul = tabF2(i, 2)
        With FL1
            Set ligne = .Columns(2).Find(Trajet, LookIn:=xlValues)
            If Not ligne Is Nothing Then
                Set colonne = .Rows(5).Find(DateCircul, LookIn:=xlFormulas)
                If Not colonne Is Nothing Then
                    .Cells(ligne.Row, colonne.Column) = ""
                End If
            End If
        End With
    End If
Next i

Application.EnableEvents = True
End Sub

dans ton fichier, feuille "Saisie des fermetures" il faut
1) taper 01/12/2017 en AH5 (format de cellule "Date")
2) tirer vers la droite jusqu'au 31/12/2018

et lancer la macro
pour chaque trajet de récap, si il y a une date d'ouverture en L, on récupère la date de circulation en C
et on efface le X de cette date de circulation dans la feuille de Saisie..
 

vgendron

XLDnaute Barbatruc
Bonjour
Non, rien à ajouter. au contraire. il y a beaucoup trop de macro pour faire et trouver des dates..

voir la PJ
les changements majeurs sont:
1) onglet 1: quand tu écris une nouvelle année dans C1, les dates du calendrier sont mises à jour automatiquement (ligne 5: que tu ne vois pas à cause de la couleur de texte)

2) quand tu tapes une date DU ou AU (colonnes S et T): un controle est fait automatiquement pour te forcer à mettre une date au bon format ET DANS le calendrier


ensuite.. la macro "remplir Calendrier": je t'invite a aller voir les commentaires dans le code
ca remplace ta macro "calendrier"

Dans la macro "Remplir Calendrier", il y a 3 cas que je n'ai pas encore traités,
Il faudrait que tu remplissses UNE ligne par TYPE de saisie qui peut arriver
tu m'as donné 6 cas de figure: il faudrait donc que tu me fasses 6 lignes (sans erreur)

Pour la macro "Gerer"
il suffit de faire un bouton pour la lancer (voir PJ)
 

Pièces jointes

  • gérer calendrier Rev5.xlsm
    111.4 KB · Affichages: 31

devimen2

XLDnaute Nouveau
Bonjour Vgendron :D,

Je m'excuse pour mon retard pour revenir vers vous.

Merci beaucoup pour votre aide et votre temps .C'est trés intéressant votre macro pour remplir le calendrier .

Sauf que j'ai essayé la macro gérer et ça ne fonctionne pas :( :( ,je sais pas c'est quoi le probléme.

Est ce que ça fonctionne sur votre PC ?

En vous remerciant d'avance :) .
 

vgendron

XLDnaute Barbatruc
Hello
non, il y avait un problème d'indice que je pensais pourtant avoir corrigé

voici
1) correction dans le remplissage (ca mettait des X en ligne 5 à la place des dates.. au lieu de mettre ca à la bonne ligne 10)
2) correction pour la macro Gérer

PS: pour le remplissage.. la macro n'est pas terminée. il faut que tu mettes des lignes exemples pour chaque cas qui peut se présenter
 

Pièces jointes

  • gérer calendrier Rev6.xlsm
    121.6 KB · Affichages: 39

devimen2

XLDnaute Nouveau
Bonjour Vgendron :D,

Merci beaucoup pour votre retour , on avance pour mon macro gérer :D .

ça fonctionne très bien pour le trajet 45689252 mais pour le trajet 123 et 98787 ça fonctionne pas :' ( .

pour le macro remplir calendrier , vous trouvez dans le fichier tout les cas possibles .

Je vous remercie énormément pour pour votre aide pour mon projet :D
 

Pièces jointes

  • Copie de gérer calendrier Rev6-7.xlsm
    105.4 KB · Affichages: 20

vgendron

XLDnaute Barbatruc
ça fonctionne très bien pour le trajet 45689252 mais pour le trajet 123 et 98787 ça fonctionne pas
Qu'est ce qui ne fonctionne pas?
si je met manuellement des X sur TOUT le calendrier et que je lance la macro Gerer.. je suis censé obtenir quoi?

Pour les cas de remplissage. j'ai l'impression qu'il en manque, et du coup. suis pas sur de tout traiter dans le code
voici ce que je comprend et comment je le comprend
1) la macro de remplissage calendrier travaille avec les colonnes K à U, plus la colonne AB
2) selon ce qui est rempli, il y a plusieurs types de régimes d'impact
3) on peut distinguer les 4 "élements" suivants
==>"Jours Semaines": du Lundi au Dimanche (colonnes 11 à 17)
* Soit rien de coché
* soit une ou plusieurs croix
==> DateQ (colonne 8) (j'ai appelé ca DateQ, mais on est bien d'accord. il n'y a pas de date. juste un "X"
* Coché
* ou pas Coché
==> DateDu et DateAU (colonnes 19 et 20) (controlées à la saisie) ==> définissent une PERIODE
*remplies TOUTES les deux ET DateDu<DateAu
* ou rien (si une des deux dates est manquante alors erreur)
==>JoursPrécis (colonne 22) (on a déjà vérifié s'il s'agissait bien de jours contenus dans le calendrier)

==> et la colonne Suppression (Colonne 28)
*Cochée = on met des SP dans le calendrier
* Pas Cochée = on met X dans le calendrier

4) maintenant. avec ces 4 éléments différents, c'est la que j'ai besoin de la liste complète des cas qui peuvent se présenter. = liste des cas qui provoquent un remplissage de la ligne sans message d'erreur
==> DateQ cochée SANS rien d'autres
*Tout le calendrier est rempli
==> DateQ cochée et un JoursSemaine coché
* seul les jours cochés sont remplis pour l'année
==>DateQ cochée ET PERIODE sans rien d'autre
* toute la période est remplie
==>DateQ coché ET Période ET JoursSemaine
* ???possible?
==> Période ET JoursSemaines (sans rien d'autre
* les jours cochés de la période sont remplis
==> Période et Jours Précis..
* Possible?
==>Jours Précis (et rien d'autre)
* seuls les jours précis sont remplis

==> Autres cas?
 

vgendron

XLDnaute Barbatruc
Hello
Voici une version 7 dans laquelle j'ai effecuté quelques changements...:-D

1) Macro Gerer: pas changé depuis la dernière version: j'attend que tu fasses tes tests que tu me précises ce qui ne va pas
2) Macro "Remplir calendrier
à partir des 4 éléments que j'ai défini (voir post précédent)
il peut y avoir 16 "cas" différents ==> Dans la feuille 3, je les ai listés et mis en face si ca provoque une erreur ou un cas à traiter
Dans la macro: j'ai traité tous ces cas. Peut etre y a t il des cas ou j'ai considéré une erreur alors qu'il ne faudrait pas ? ==>j'attend que tu me listes les cas possibles (peut etre que certains vont etre redondants)

3) Macro "Recap"
je l'ai refaite aussi.. je pense que ce sera plus rapide au niveau execution: J'ai mis pas mal de commentaires dans le code pour expliquer son fonctionnement. (il y a peut etre des ajustements à faire au niveau des colonnes S à AQ de la feuille Recap) Comme il n'y avait pas d'entete, suis pas sur d'avoir mis les bonnes infos au bon endroit.
 

Pièces jointes

  • gérer calendrier Rev7.xlsm
    186.4 KB · Affichages: 46

devimen2

XLDnaute Nouveau
Bonjour Vgendron :D

Tout d'abord ; je vous remercie énormément pour votre aide .Je m'excuse aussi pour mon retour qui n'était pas rapide comme j'étais en vacances :( .
Vraiment ; je suis très reconnaissante pour votre aide et vos efforts pour toutes les corrections que vos avez porté a mes macros :D .

Revenant maintenant à ma macro gérer calendrier ,
* ça fonctionne très bien pour le trajet n°45689252 ; il supprime les "X" de calendrier pour les dates 21/01; 28/01; 04/02; 11/02; 18/02; 25/02.; 04/03; 11/03 comme il y' a des dates d'ouvertures dans la colonne L .
CEPENDANT :
* pour le trajet n° 1234 ; ma macro gérer doit supprimer les "X" de calendrier pour 12/11; 13/11; 14/11; 15/11 ; 16/11; 19/11; 20/11; 21/11; comme il y' a une date d'ouverture dans la colonne "L".
* pour le trajet n°98787 ; ma macro gérer doit supprimer les "X" de calendrier pour les dates 22/11; 23/11; comme il y' a des dates dans la colonne L .
En fait , c'est l'esprit de ma macro gérer :D .

J’espère que j'ai bien explique :D .

Je reste à votre disposition Vgendron pour plus d'explication :) .
Dans l'attente de votre aide :) . Je vous remercie d'avance.
 

vgendron

XLDnaute Barbatruc
Hello
j'étais aussi en congés semaine dernière :-D
donc à mon tour de répondre

Dans le fichier joint :
1) Feuille "Saisie des fermetures"
J'ai mis une croix sur Q dans toutes les lignes pour avoir un calendrier completement rempli
Je n'ai PAS fusionné les lignes ==> il y a plusieurs lignes pour le meme trajet
2) Feuille Recap Fermeture pour Ouverture
quand je clique sur "Gerer".. la macro fait bien ce qui est demandé..
Regarde bien les lignes pour lesquelles il y a une Date d'ouverture en colonne L==> Ne te fies pas aux couleuers que tu as mises.. il y a un décalage entre la colonne B et la colonne L (j'ai coloré en jaune pour que tu voies le décalage)
 

Pièces jointes

  • gérer calendrier Rev7.xlsm
    180.8 KB · Affichages: 48

devimen2

XLDnaute Nouveau
Bonjour Vgendron :D

De retour :D ; j’espère que vous avez passé des bonnes vacances :D.

Merci pour votre aide ; on commence à progresser , la macro fonctionne trés bien seulement pour le trajet numéro 45689252 ; j'arrive pas à comprendre pourquoi ça fonctionne pas pour le trajet 1234 et 98787 ?
Je vous remercie aussi pour les commentaires que vous m'avez mis pour comprendre votre macro "gérer" .
 

vgendron

XLDnaute Barbatruc
pourquoi ça fonctionne pas pour le trajet 1234 et 98787 ?

Si ca fonctionne... pour le trajet 1234, sur la ligne 16 (21/11/2018) ==> il n'y a PAS de date d'ouverture en colonne L ===> le 21/11/2018 n'est pas effacé
idem pour le trajet 98787 - ligne 27 (le 22/11/2018)==> il n'y a PAS de date d'ouverture en colonne L ==> le 22/11/2018 n'est pas effacé
 

devimen2

XLDnaute Nouveau
Bonjour Vgendron :D ,

J’espère que vous allez bien !!

S'il vous plait j'ai besoin de votre aide pour la macro Recap que vous me l'avez modifié si vous rappelez :))) .

En fait , cette macro permet de récupérer des données de la feuille FL1 pour les mettre dans la feuille FL 2 .

ça fonctionne très bien sauf que , si je fais des modification dans une ligne dans la feuille FL1 , il garde en mémoire les données et donc il fait pas les modifications nécessaires au niveau de la feuille FL2 .
J'ai trouver une idée qui permet de supprimer tout le contenu avant d’insérer les nouvelles données , sauf celle la , elle supprime tout les données de la feuille FL2 or j'ai besoin de gardes des donnes dans certaines colonnes comme garde les donnees dans la colonne "L", "V","W".

J'ai besoin vraiement de votre aide : ))))
Dans l'attente de votre reponse.
Merci beaucoup .
Vous trouvez le fichier
 

Pièces jointes

  • Macro recap.xlsm
    154.4 KB · Affichages: 36

Discussions similaires

Réponses
6
Affichages
306

Statistiques des forums

Discussions
312 108
Messages
2 085 375
Membres
102 876
dernier inscrit
BouteilleMan