Avertissement si chevauchement de dates Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
p
philippe.p@
Membre fidèle
Membre fidèle
Messages : 328
Inscrit le : 16 décembre 2016
Version d'Excel : office 10

Message par philippe.p@ » 10 juillet 2017, 21:44

Sans mettre mon fichier principal, j'ai essayé ta macro uniquement avec trois nouvelles formations (ligne 27 à 32). Là le bug est toujours le même. Donc j'en déduis que le problème viens lorsqu'on ajoute des nouvelles lignes issues de mon fichier principal mais pourquoi ça bug ?????
Je te joins le fichier avec les trois formations ajoutées.
chevauchement formation avec macros v1 new.xlsm
Fichier new
(92.12 Kio) Téléchargé 7 fois
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'296
Appréciations reçues : 373
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 10 juillet 2017, 22:10

vu. Explication pour t'aider à comprendre une partie de la mécanique :
id est un pointeur de 1 à n des ident réels (ex 88923066) mis dans un dictionary
Je boucle sur le TCD pour les récupérer en A. Mon TCD se terminait par (vide) puis Total général.
Si je rencontrais l'un ou l'autre (en cas d'absence de (vide)) je quittais.
Soucis : tes ajouts se retrouvent après (vide) donc les id suivants n'étaient pas créés.
Corrigé.
Corrigé aussi le n° de ligne dans les commentaires. J'avais oublié +1 suite au décalage dû à la ligne vide supplémentaire.
chevauchement formation avec macros v1 new.xlsm
(92.63 Kio) Téléchargé 17 fois
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
p
philippe.p@
Membre fidèle
Membre fidèle
Messages : 328
Inscrit le : 16 décembre 2016
Version d'Excel : office 10

Message par philippe.p@ » 11 juillet 2017, 00:14

Super ça l'air de marcher. Merci. Je ferais des tests plus pousser en ordre de marche avec toutes les données et les macro pour voir si il n'y a pas d'interaction entre elles dans la semaine. En attendant je mets le sujet en résolu. Merci encore.

Juste une question, comment je peux importer l'onglet "TDC" dans mon fichier principal. Car dans ce cas j'ai juste ta macro à copier dans mon fichier principal que dans le cas contraire je dois tout copier les données de mon fichier principal plus toutes les macros dans le fichier où tu as fait ta macro et ton onglet "TCD3.

Cordialement, merci et bonne nuit :wink:
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'296
Appréciations reçues : 373
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 11 juillet 2017, 01:30

Bien, une bonne nouvelle, pas trop de bugs pour l'instant :-)
Après importation de la feuille TCD crée le nom dynamique plDatas,
puis clique sur le TCD, un ruban 'Outils du TCD' apparait, 'Changer la source de données' et saisir plDatas dans Tableau/Plage et valider.

Si tu préfères le créer :
Sélectionner tes données A2:Nxxx
'Insertion / TCD', choisir dans nouvelle feuille
à droite tu fais glisser le champ Identification dans la zone 'Etiquette de ligne' et à nouveau dans la zone 'Zone des valeurs'
Dans la liste déroulante de ce dernier tu as toutes les opérations que tu peux faire (laisse sur Nombre, c'est pour te montrer si un jour tu as besoin des Somme, Moyenne, etc)
Renommer la feuille "TCD"
Clic-droit sur le TCD, 'Options du TCD...' : t'assurer que son nom est bien "Tableau croisé dynamique1" sinon le renommer ou adapter la macro.
Créer le nom plDatas (niveau Classeur, pas en doublon niveau Feuille comme tu avais fait)
Fait de mémoire, j'espère n'avoir rien oublié...

Un conseil quand tu auras un fichier d'équerre : garde une copie précieusement sur un autre support (autre que clé usb)

Tu me diras combien de temps pour tes 3000 lignes pour info stp ? Et (à la louche) combien de formation par Id en moyenne.
Voir si la technique est bien choisie pour ce type de traitement
eric

PS : je viens de voir que tu as un Private Sub Worksheet_Change sur la feuille 'Liste AF à compléter par DATES'
Dans ma macro ajoute
application.enableevents = false avant la restitution des données, que tu rétablis à True à la fin.
Ca ferait ramer excel pour rien je pense
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
p
philippe.p@
Membre fidèle
Membre fidèle
Messages : 328
Inscrit le : 16 décembre 2016
Version d'Excel : office 10

Message par philippe.p@ » 11 juillet 2017, 14:33

Salut

Tes explications pour créer le TDC sont nickels puisque je pense l'avoir réussi :D . Il y a juste pour créer le nom plDatas au niveau Classeur que je ne comprends pas.
Je suis allé dans le gestionnaire de noms, j'ai fait nouveau dans le libellé nom j'ai mis

"plDatas"

et ensuite dans le champs fait référence j'ai mis

"=DECALER('Liste AF à compléter par DATES'!$A$2:$N$2;;;NBVAL('Liste AF à compléter par DATES'!$A:$A)-1;)"

mais je pense que j'ai du faire une erreur car ta macro bug avec la boite de message

"erreur d'exécution '13' incompatibilité de type"

et la ligne de code en jaune :

"formId(i - j).id = tablIdent(i, 1) ' n° de l'id"

Cordialement.
p
philippe.p@
Membre fidèle
Membre fidèle
Messages : 328
Inscrit le : 16 décembre 2016
Version d'Excel : office 10

Message par philippe.p@ » 11 juillet 2017, 15:47

C'est tout bon j'ai réussi à comprendre comment faire :D .

Pour le bug j'ai trouvé la raison c'est que dans la colonne "identification" au-lieu de chiffre j'avais des "???" à la place. J'ai supprimée les "???" et c'est tout bon.

J'avais aussi fait une erreur de saisie antre les dates début et fin où j'avais une date fin plus récente que la date début. Mais cette erreur à mon sens n'avait pas d'impacte sur ta macro.

Ces deux "petites" coquilles me font penser que je devrais faire une petite macro pour vérifier si la date début est bien positionnée avant la date fin et que j'ai bien des chiffres dans la colonne identification.

Merci encore pour tout. Ah si le temps est moins de 5 secondes pour faire le calcul sur l'ensemble des mes lignes (2500 lignes).

Cordialement.
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'296
Appréciations reçues : 373
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 11 juillet 2017, 16:41

Bon, on aurait peut-être pu faire mieux que 5s mais c'est supportable ;-)
Oui, je suis parti du principe que les données étaient correctes et ne fais aucun contrôle.
Tu peux en intégrer à cette macro puisqu'elle parcours toutes les lignes avec les principaux champs à dispo.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
p
philippe.p@
Membre fidèle
Membre fidèle
Messages : 328
Inscrit le : 16 décembre 2016
Version d'Excel : office 10

Message par philippe.p@ » 15 juillet 2017, 23:38

Bonsoir le forum et eriic,

Je ne sais pas où placer la condition "if...then" dans la macro "Sub controle()" du module3 pour qu'elle s'exécute et me donne de fait les chevauchements de dates uniquement pour les formation où dans la colonne "S" si j'ai les libellés :

- "01- Complète" ou "02- Incomplète" ou "00- Oui" ou qu'une valeur numérique s'y trouve.

Cordialement
chevauchement date avec critère sur colonne S.xlsm
Fichier test
(99.95 Kio) Téléchargé 10 fois
Avatar du membre
eriiic
Passionné d'Excel
Passionné d'Excel
Messages : 9'296
Appréciations reçues : 373
Inscrit le : 7 février 2010
Version d'Excel : 2010fr

Message par eriiic » 16 juillet 2017, 00:16

Bonjour,

déjà corrige pl_datas qui s'arrête à N au lieu de S
Ensuite essaie en ajoutant ce test :
    For lig1 = 2 To UBound(datas)
        If datas(lig1, 19) <> "" And (IsNumeric(datas(lig1, 19)) Or Val(datas(lig1, 19)) <= 2) Then
            '...
        End If
    Next lig1
    ' détection chevauchements
ça sera peut-être suffisant.
eric
En essayant continuellement, on finit par réussir.
Donc plus ça rate, plus on a de chances que ça marche.
(les Shadoks)

En plus du merci (si si, ça se fait !!!), penser à mettre en résolu. Merci
p
philippe.p@
Membre fidèle
Membre fidèle
Messages : 328
Inscrit le : 16 décembre 2016
Version d'Excel : office 10

Message par philippe.p@ » 16 juillet 2017, 15:32

Super eriic ça fonctionne. Je n'aurai pas penser à élargir la zone pl_datas :wink:

merci :D
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message
  • Chevauchement dates
    par Stéphane1981 » 5 décembre 2017, 10:29 » dans Calc
    11 Réponses
    1039 Vues
    Dernier message par James007
    6 décembre 2017, 14:35
  • Chevauchement
    par auwill » 28 janvier 2019, 17:28 » dans Excel - VBA
    12 Réponses
    265 Vues
    Dernier message par GGautier
    2 février 2019, 11:12
  • Chevauchement d'heure
    par Dominique4140 » 4 octobre 2018, 17:29 » dans Excel - VBA
    11 Réponses
    267 Vues
    Dernier message par Steelson
    6 octobre 2018, 03:55
  • chevauchement d'heures
    par dann » 14 décembre 2014, 18:42 » dans Excel - VBA
    6 Réponses
    431 Vues
    Dernier message par dann
    14 décembre 2014, 22:16
  • chevauchement de plage horaire
    par Ccver » 20 décembre 2016, 12:03 » dans Excel - VBA
    3 Réponses
    374 Vues
    Dernier message par Ccver
    21 décembre 2016, 10:38
  • Création d'alerte visuelle en cas de chevauchement
    par Am KHE » 31 mai 2017, 14:36 » dans Excel - VBA
    2 Réponses
    253 Vues
    Dernier message par Am KHE
    1 juin 2017, 10:02