Avertissement si chevauchement de dates

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.

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.

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

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

Salut

Tes explications pour créer le TDC sont nickels puisque je pense l'avoir réussi . 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.

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

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.

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

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

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

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

merci

Rechercher des sujets similaires à "avertissement chevauchement dates"