plage horaire

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
Yvouille
Passionné d'Excel
Passionné d'Excel
Messages : 8'759
Appréciations reçues : 56
Inscrit le : 6 avril 2007
Version d'Excel : 2016

Message par Yvouille » 2 juin 2014, 22:04

Salut Marcelo,

Tu n’as toujours pas vraiment répondu à ma question de savoir si le tableau de gauche – avec les colonnes brunes – avait toujours le même nombre de lignes que les deux tableaux ‘Zones de recherche’. Pour l’instant je considère que oui.

En ce qui concerne le nombre de colonnes et de lignes, j’ai maintenant effectué des essais avec un nombre de lignes entre 2 et 1500, mais j’ai considéré que le nombre de colonnes était toujours identique. Ce ne serait cependant plus un problème de modifier la macro afin que le nombre de colonnes puisse varier également. Mais d’un autre côté ça ne sert à rien non plus que j’introduise cette possibilité, si la suite de notre discussion ci-dessous aboutira sur un abandon.

Dans le fichier ci-joint, j’ai donc tenté de travailler avec des ‘Tableaux VBA’, puisque cette solution est extrêmement plus rapide que de travailler sans, comme je l’avais fait jusqu’ici. Et la période d’environ 2'560 heures mentionnée dans mon message du 27 mai est descendue à 1 heures 30 pour ton milliard de contrôles.

En d’autres mots, si tu prends les feuilles ‘Départ 2’ ou ‘Départ 3’ et que tu lances la macro depuis le bouton en place, le code dure très peu. J’ai également placé une feuille nommée ‘Départ 3 AVEC RESULTATS ANCIENS’ afin que tu puisses comparer les résultats.

Pour la feuille ‘Départ 4’, le code dure 1 à 4 secondes selon le PC utilisé.

Par contre, pour la feuille ‘Départ 1’, ça a duré 1 heures et 30 minutes environ sur un PC moyennement puissant. Mais à nouveau, je te répète que ça représente plus d’un milliard d’opérations. Réfléchi donc bien avant de cliquer sur le bouton (bon, dans le pire des cas, tu peux toujours travailler sur un autre programme pendant qu’Excel mouline).

Dans tous les cas, les colonnes brunes sont préalablement vidées en début de macro ; donc pas de souci si des données trainent par là.

Maintenant, si tu considères que ça te rendrait quand même de grands services, on peut bien continuer à travailler là-dessus. On pourrait alors revoir comment pourrait se présenter les différentes colonnes, de quelle manière tu voudrais traiter les différentes feuilles à traiter (sont-elles toutes dans le même fichier, faut-il aller les traiter dans des fichiers extérieurs, etc.).

Mais dans un tout premier temps, je voudrais savoir si tu trouves que cette heure et demi (ou moins ou plus selon ton PC) est impensable pour toi et que tu chercheras une autre solution ou si l’on persiste ici.

A te relire.

http://cjoint.com/?DFcwd2CBvB2
Yvouille

Valais de Coeur
Avatar du membre
Yvouille
Passionné d'Excel
Passionné d'Excel
Messages : 8'759
Appréciations reçues : 56
Inscrit le : 6 avril 2007
Version d'Excel : 2016

Message par Yvouille » 3 juin 2014, 07:15

Complément d’information du 3 juin au matin

Suite à mon message d’hier soir, j’ai eu une ou deux idées afin de réduire le temps de traitement de ma macro, par exemple en triant les deux bases de données à comparer de manière à pouvoir éviter une multitude de contrôles inutiles. Toutefois, je ne veux pas m’investir là-dedans avant d’avoir ton avis sur l’état actuel des choses et c’est bien entendu sans garantie de succès. Et si jamais tu es intéressé, ça risque de prendre quelques jours.

Il est également possible qu’un autre membre aurait une meilleure idée également. Veux-tu lancer une deuxième demande en parallèle ? Si oui, tu dois jouer carte sur table dès le début et indiquer tous tes souhaits dès le départ (comparaison de deux tableaux avec une fourchette de x à y, nombres de lignes et de colonnes variables, etc.).
Yvouille

Valais de Coeur
m
marcelo
Jeune membre
Jeune membre
Messages : 22
Inscrit le : 16 mai 2014
Version d'Excel : 2010

Message par marcelo » 3 juin 2014, 14:26

bonjour,

Votre implication dans mon problème est tout à votre honneur. Nous avons fini par nous comprendre et ce malgré quelques maladresses de ma part et je m'en excuse. Je souhaite que vous puissiez trouver plaisir dans cette recherche et je vous encourage à continuer dans ce sens.

Pour le nombre de lignes j'avais précisé "1440 lignes maxi dans les tableaux "résultat" et dans ceux de "zone de recherche 1 et 2" donc les 3 tableaux. Il y a en 1448, c'est parfait. Pour le nombre de colonne, pas d'extension pour le moment. On reste sur celles présentes actuellement.

Pour la feuille départ 1, j'ai réduit le nombre de ligne afin de vérifier que cela se passe bien et de ne pas attendre trop longtemps.

Certains résultats ne sont pas corrects. J'ai pris des plages et fais la recherche manuellement. J'ai vu certaines différences. est-ce normal ou ai-je fais quelque chose qu'il ne fallait pas ? Je joins le fichier afin de montrer ces anomalies.
http://www.cjoint.com/?DFdowLmaQFA

Pour les autres feuilles, cela fonctionne.

Concernant le temps d'exécution de la recherche, j'avoue cela reste long, mais n'ayant aucune alternative, cette solution est de loin la meilleure à ce jour.

Effectivement ce serait une bonne idée de séparer les deux bases de données (zone de recherche 1 & 2) si c'est de cela qu'on parle.

Le principe de votre travail reflète bien ce que je recherche. Et tout ce qui peut être intéressant, tant sur le plan analyse et de recherche, et qui permet d'améliorer son exécution, sera le bienvenu.

Cordialement.
Avatar du membre
Yvouille
Passionné d'Excel
Passionné d'Excel
Messages : 8'759
Appréciations reçues : 56
Inscrit le : 6 avril 2007
Version d'Excel : 2016

Message par Yvouille » 3 juin 2014, 15:15

Re,
Yvouille a écrit :Tu n’as toujours pas vraiment répondu à ma question de savoir si le tableau de gauche – avec les colonnes brunes – avait toujours le même nombre de lignes que les deux tableaux ‘Zones de recherche’.
Peux-tu alors répondre par oui ou par non à la question suivante : Est-ce que le tableau de gauche – qui s’étend pour l’instant de la colonne C à la colonne BD a toujours le même nombre de ligne que les deux tableaux de droite qui s’étendent pour l’instant de la colonne BF à la colonne DY ?
marcelo a écrit :Effectivement ce serait une bonne idée de séparer les deux bases de données (zone de recherche 1 & 2) si c'est de cela qu'on parle.
Il n'en a jamais été question jusqu'ici il me semble. Je t'ai dit une fois que pour simplifier les choses, je supprimais la colonne entre tes deux tableaux Zone de recherche 1 et Zone de recherche 2 mais tu ne m’as jamais demandé – il me semble – de traiter ces deux tableaux séparément. Si tu en as besoin, merci de me dire de quelle manière tu vois les choses (par exemple tu voudrais pouvoir lancer la recherche soit sur l’un soit sur l’autre de ces deux tableaux ? Et que ferais-tu alors avec les données récoltées, tu voudrais simplement pouvoir les consulter avant de les écraser avec la recherche suivante ?????).
marcelo a écrit : Il y a en 1448, c'est parfait
Il n’y a pas 1448 lignes, mais le nombre que tu désires. J’ai montré un exemple avec 1496 lignes (données inscrites jusqu’à la ligne 1500 – les 4 lignes du sommet), mais tu peux mettre 2000 lignes si tu en as l’envie.
marcelo a écrit :Certains résultats ne sont pas corrects.
Aïe !!

Tu dis avoir trouvé 8 occurrences pour la plage C11:D11 et tu les as marquées en bordeaux clair. Mon code trouve trois occurrences de plus, marquées en bordeaux sombre dans l’image ci-dessous. Si ce n’est pas correct, je ne comprends plus rien à ton attente.

A te relire.
03.06.png
Yvouille

Valais de Coeur
m
marcelo
Jeune membre
Jeune membre
Messages : 22
Inscrit le : 16 mai 2014
Version d'Excel : 2010

Message par marcelo » 3 juin 2014, 19:00

Re

Je n'avais pas les yeux en face des trous et en plus j'ai visualisé le tableau sur un 15pouces. Galère.

Concernant la question :
Peux-tu alors répondre par oui ou par non à la question suivante : Est-ce que le tableau de gauche – qui s’étend pour l’instant de la colonne C à la colonne BD a toujours le même nombre de ligne que les deux tableaux de droite qui s’étendent pour l’instant de la colonne BF à la colonne DY ? je réponds OUI..

Vous dites:
j’ai eu une ou deux idées afin de réduire le temps de traitement de ma macro, par exemple en triant les deux bases de données à comparer de manière à pouvoir éviter une multitude de contrôles inutiles.

Qu'entendez vous en triant les deux bases de données ?

J'ai lancé la macro avec 530 lignes, cela a pris 14'11". Effectivement c'est long mais je n'ai que cette possibilité. S'il y a possibilité de gain sur le temps, je suis preneur. Si j'ai été maladroit lors de la présentation du problème veuillez m'en excuser encore une fois.

Cordialement
Avatar du membre
Yvouille
Passionné d'Excel
Passionné d'Excel
Messages : 8'759
Appréciations reçues : 56
Inscrit le : 6 avril 2007
Version d'Excel : 2016

Message par Yvouille » 3 juin 2014, 20:22

Re,

Merci pour ta réponse à ma question. Ca me permet de continuer avec ce doute en moins.

Tu n’as vraiment pas les yeux en face des trous :) tu ne t’es pas rendu compte que mon avant-dernier code présentait toujours un problème et que le résultat correspondant à la plage C23:D23 n’est pas non plus correct. Dans la version 7, celle que tu m’as renvoyée, ça trouve 20 occurrences pour cette plage alors qu’il y a 29.

Après avoir creusé un peu le problème, je me suis rendu compte que mon avant dernier code manquait de précision dans la déclaration des variables et que certains cas n’étaient ainsi pas trouvés.

Dans le fichier ci-joint, les 29 occurrences de cette plage sont trouvées et j’ai complété en gris sombre ce que tu avais commencé en gris clair.

Ce serait assez compliqué à expliquer le pourquoi du comment, mais si ça t’intéresse, je peux essayer lors d’un prochain message.


En ce qui concerne le tri mentionné, ce serait juste un tri provisoire durant le traitement de la macro mais dont tu ne verrais rien en finale. Le fait de tenter cette amélioration risque cependant de me prendre pas mal de temps, jusqu’à une semaine peut-être (et toujours sans garantie d’un résultat), mais je vais m’y mettre et te tiendrai au courant dès que possible.

Amicalement.

http://cjoint.com/?DFduwmXunKX
Yvouille

Valais de Coeur
m
marcelo
Jeune membre
Jeune membre
Messages : 22
Inscrit le : 16 mai 2014
Version d'Excel : 2010

Message par marcelo » 3 juin 2014, 21:02

Re

Je ne connais rien en VBA et je demande qu'à apprendre. ::B- j'ai mis des lunettes et je vais regarder de plus prés ::D

Ok pour la suite j'attends vos conclusions. Et pour le temps gagné, bienvenue à toute proposition.

Que les chaleurs arrivent, au moins ça met du baume au cœur.

Cordialement
Avatar du membre
Yvouille
Passionné d'Excel
Passionné d'Excel
Messages : 8'759
Appréciations reçues : 56
Inscrit le : 6 avril 2007
Version d'Excel : 2016

Message par Yvouille » 7 juin 2014, 06:09

Salut,

J’ai commencé à travailler sur ton fichier, mais c’est un boulot assez conséquent et je dois malheureusement aussi aller justifier mon salaire de temps en temps. Tout ça pour te dire que je n’ai rien à te présenter de nouveau pour l’instant.

Et en plus je me retrouve au chalet pour ce week-end prolongé et je me rends compte maintenant que j’ai fait une erreur ; je n’ai pas fait suivre ton fichier actuellement en cours jusqu’à cet endroit de villégiature. Je ne vais donc pas pouvoir travailler pour toi jusqu’à mardi. N’attend donc pas de réponse de ma part jusqu’à la fin de la semaine prochaine.

Si tu devais trouver une autre solution entre-temps, ne manque pas de m’en avertir.

Désolé :?
Yvouille

Valais de Coeur
m
marcelo
Jeune membre
Jeune membre
Messages : 22
Inscrit le : 16 mai 2014
Version d'Excel : 2010

Message par marcelo » 7 juin 2014, 13:00

Bonjour Yvouille,

Je ne m'attendais pas à tant de sollicitude de votre part.

Votre participation est remarquable mais de là à sacrifier votre week-end, je n'en demande pas tant. J'en profite pour vous souhaiter un agréable week-end au chalet et que le temps soit au beau fixe. ::B-

Je ne veux pas que vous sentiez obligé de poursuivre cette recherche et je ne vous en voudrait pas si vous décidiez de renoncer.

Cela va de soit, si une solution m'est proposée, je ne manquerai pas de vous en informer et pourquoi pas faire partager cette solution.

Merci et encore bon week.

Cordialement. :D
Avatar du membre
Yvouille
Passionné d'Excel
Passionné d'Excel
Messages : 8'759
Appréciations reçues : 56
Inscrit le : 6 avril 2007
Version d'Excel : 2016

Message par Yvouille » 12 juin 2014, 15:25

Re,

Comme je te l’ai dit, j’ai eu l’idée de classer par ordre croissant les données de tes 2 tableaux de droite réunis et les comparaisons ne se font plus sur la totalité de ces données, mais uniquement sur une plage qui correspond aux cellules concernées du tableau de gauche. Ceci permet de gagner passablement de temps.

En d’autres mots, au lieu de comparer le 100 % des données de gauche avec le 100 % des données de droite, on compare le 100 % des données de gauche avec environ le 5 % des données nécessaires de droite.

Maintenant un contrôle de 1500 lignes dure par exemple moins de 10 minutes sur mon PC au travail. A voir si – avec des données plus proches de la réalité – ce gain de temps se confirme.

Il y a également nouvellement un compteur qui t’indique, en secondes, le temps d’exécution de la macro.

Comme tu as pu le constater sur cet autre fil, j’ai également obtenu de l’aide de la part de Banzai afin de résoudre le problème des occurrences non trouvées :)

A te relire.

http://cjoint.com/?DFmpxGx5pVF
Yvouille

Valais de Coeur
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message