Extraction conditionnelle un peu compliquée

Anthax, tu dis :

Anthax a écrit :

la formule sort TOUS les points pour lesquels il existe une localisation X heures avant ou après... Or moi je ne veux que celles toutes les X heures à partir de minuit...

Hors quand je t'ai signalé qu'il me semblait que ton fichier comportait des erreurs, tu m'as répondu :

Anthax a écrit :

Non, non, ça marche bien ! Ce ne sont pas des erreurs : il faut bien garder ces points puisque il y a une localisation qui a été faite 2 heures plus tôt !

Il faut garder tous les points pour lesquels il existe une localisation 2h après OU 2h avant !

Tu vois ce que je veux dire ?

Donc .... il faudrait savoir !

A te relire

Nad

3sterilisation.zip (58.76 Ko)

Ok... Je comprends que ce n'était pas clair !

Dans ma tête, tant que l'on gardait l'autre infos (avec la formule =IF(MOD(...)=0;1;0)) pour croiser ensuite les données, dans ce cas, OUI, pour cette colonne il fallait garder TOUS les points pour lesquels il existe une loc X heures avant ou après... !

Désolé pour cette confusion !

Re à nouveau

Je viens de retester avec le fichier de base que tu avais envoyé et qui comportait les résultats attendus ; les réponses sont identiques.

Es-tu sûr d'avoir activé les macros ?

Nad

Et là, je me tape la honte !

En effet, avec les macros activées, ça marche super bien !

Comment je fais pour essayer ça sur mon fichier complet ? Car là, je suis dépassé, je ne sais pas ce que vous avez fait avec cette histoire de macros. Comment dois-je procéder ?

Re

Je t'ai envoyé un Message.

Nad

Bonjour à tous,

Attention : on parle d'un fichier de 220000 lignes, il faut donc modifier cette ligne:

dlg = Range("A65536").End(xlUp).Row

par

dlg = Range("A2").End(xlDown).Row

Pour alléger le traitement, je suis revenu au filtre mais problème ...

à voir.

https://www.excel-pratique.com/~files/doc2/Chevreuil2.xls

Bonne journée

Claude.

Bonjour Claude

Effectivement, non seulement il faut modifier la recherche de dernière ligne, mais également déclarer les Dim en Long

Je regarde ton fichier.

Merci beaucoup de ton aide

Bien amicalement

Nad

re,

Nad, dans mon fichier précédent, la syntaxe pour mettre en dur n'est pas bonne ou je ne

sais pas l'écrire.

une solution panachée filtre + boucle qui me parait fonctionner.

https://www.excel-pratique.com/~files/doc2/Copie_de_Chevreuil3.xls

Claude.

édit: et pour compléter, on enchaine un 2ème filtre.

https://www.excel-pratique.com/~files/doc2/Chevreuil4.xls

Si j'ai bien compris.

Bonsoir Claude

Ta méthode me plait. Reste à tester si elle est plus rapide. Ce serait génial car vu le nombre de lignes du fichier original ! (actuellement 220 000 mais il peut y en avoir plus).

Amicalement

Nad

Bon, il parait que Claude a une méthode qui marcherait bien ?

Je te redonne le fichier, mais cette fois il y a toutes les colonnes, tel que celui sur lequel je travaille...

Il y a un peu moins de lignes, c'est tout !

https://www.excel-pratique.com/~files/doc2/Chevreuils.xlsm

Je n'ai mis que les titres pour les 2 dernières colonnes : idéalement,

  • l'avant dernière permettrait de garder TOUS les points pour lesquels il existe une autre localisation à X heures d'intervalle (pour un même chevreuil, bien-sûr).
  • la dernière colonne permettrait de filtrer pour n'avoir que ceux qui corresponde à ce premier critère (intervalle à X heures), mais qui se calent en plus sur un planning qui commencerait à partir de minuit.

Je ne suis pas certain d'être clair... Nad, toi qui commence à être familière avec mon problème, est-ce que tu voies comment préciser ma demande ?

En tous cas, merci de vous creuser la tête comme ça !

Bonjour

Pour que ce soit plus clair :

Colonne R = 1 quand le Decimal_Time est divisible par l'heure cherchée (MOD)

Colonne S = 1 quand le Decimal_Time est divisible par l'heure cherchée (MOD) ET quand l'intervalle entre 2 Decimal_Time est égal à l'heure cherchée ET pour un même DEERUID (SUMPRODUCT)

Claude, par rapport à ce que tu as déjà fait, la colonne R est en plus et la colonne S est bonne.

Anthax, il y a possibilité de créer une nouvelle feuille pour chaque intervalle d'heure demandé comme on ne peut avoir qu'une seule feuille qui changerait ses résultats suivant l'heure demandée. Que préfères-tu ?

Amicalement

Nad

Bonjour à tous,

Anthax,Nad,

Sur le forum, je n'arrive pas à ouvrir les fichiers .xlsx ni .xlsm,

Je dois être mal configuré depuis mon PC récent.

Si on pouvait m'expliquer la démarche pour configuration.

Bonne journée

Claude.

Nad-Dan a écrit :

Bonjour

Pour que ce soit plus clair :

Colonne R = 1 quand le Decimal_Time est divisible par l'heure cherchée (MOD)

Colonne S = 1 quand le Decimal_Time est divisible par l'heure cherchée (MOD) ET quand l'intervalle entre 2 Decimal_Time est égal à l'heure cherchée ET pour un même DEERUID (SUMPRODUCT)

En fait, idéalement (j'ai honte d'être si exigeant !), ce serait :

Colonne R = 1 quand le Decimal_Time est divisible par l'heure cherchée (MOD)

Colonne S = 1 s'il existe, pour un même DEERUID, un autre décimal Time tel que l'intervalle entre les 2 Decimal_Time est égal à l'heure cherchée (SUMPRODUCT)

Colonne T = R x S

Nad-Dan a écrit :

Anthax, il y a possibilité de créer une nouvelle feuille pour chaque intervalle d'heure demandé comme on ne peut avoir qu'une seule feuille qui changerait ses résultats suivant l'heure demandée. Que préfères-tu ?

Amicalement

Nad

J'ai peur que créer une nouvelle feuille à chaque fois me produise un fichier bien trop gros en finale... Je préfère copier les résultats et les exporter à chaque fois ! Donc une feuille qui changerait à chaque fois sera bien suffisant !

Merci beaucoup !

Quant à la procédure pour ouvrir les fichiers xlsm, je ne saurais pas te guider... Je travaille avec la version 2007 de la suite Microsoft Office. Est-ce que ça vient de là ? Je sais que pour ouvrir les fichiers 2007 avec la version 2003, il faut télécharger un pack de compatibilité. A essayer !

Rappel en passant : quand on regarde s'il existe pour un même DEERUID une localisation à T = t + X (heure recherchée), il faut aussi regarder à T = t - X !

Ceci afin de ne pas exclure la dernière localisation d'une série !

Bonne fin de journée à vous : j'ai 8 heures de décalage avec vous, et je pars donc au travail : je suis là-dessus toute la journée !

Il existe effectivement un pack de compatibilité : téléchargeable par exemple ICI

Sinon Anthax il te faut enregistrer avec l'ancien format : Fichier/Enregistrer sous => Type de fichier : Excel 97-2003 (.xls)

Le résultat est le même si on ouvre un .xlsx avec le pack de compatibilité, que si on ouvre un .xls que tu as "dégradé"

A savoir perte de certaines fonctionnalités qui ne sont disponibles que sous 2007 (certaines MFC, ou graphiques,...)

Edit : mais Claude dit avoir 2007 ??

Oui, mais le hic, c'est que quand j'enregistre mon fichier sous le format 2003, pour une raison que j'ignore, le fichier devient plus gros et je ne peux plus l'uploader !

Il faudrait que je réduise encore le nombre de ligne...

Claude ? Tu veux mon fichier en format 2003 ou bien le pack de compatibilité suffit ?

Re

Anthax, j'ai envoyé le fichier par mail à Claude. Il a 2007, c'est juste qu'il ne peut ouvrir les .xlsx ou .xslm en téléchargement.

Nad

Ok, merci !

En attendant de voir ce que Claude est en train de faire, je vais essayer de mettre en place ta macro sur mon fichier total, pour voir le temps que ça prend...

Je te tiens au courant !

Re

OK, mais fait attention à tes heures ! Tu sais, celles qui affichent par exemple 7:00 et quand tu les revalides elles passent à 8:00

Nad

Je n'avais pas oublié !

J'y ai pensé toute la nuit !!!

lol

Rechercher des sujets similaires à "extraction conditionnelle peu compliquee"