XL 2010 VBA - Sélection par base de temps

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Twing83

XLDnaute Junior
Bonjour,

Voici mon petit problème du jour et que je ne sais pas du tout comment aborder.

J'ai un fichier XLS avec 3 colonnes contenant des données (Date, Num et FC) et j'aimerai dans une quatrième colonne (Résultat) mettre automatiquement un caractère (X par exemple) si la ligne répond à certaines conditions.
Mes conditions sont les suivantes :
- je renseigne dans une cellule la valeur de FC recherchée : fc
- je renseigne dans une cellule une base de temps en secondes : n
Je cherche donc à mettre un X pour chaque fc depuis la plus ancienne date à la plus récente au pas de n secondes (mes données réelles ne sont pas stricto-sensu au pas de 1s, il me faut donc récupérer la date la plus proche si lce n'est pas pile-poil n-1 + n).
En vous remerciant par avance.
 

Pièces jointes

Solution
Re,

Décidément quand ça veut pas, ça veut vraiment pas 😡. Vais faire la sieste moi ! 😴.
Une dernière version qui accepte les durées supérieures à 60 secondes.
=SI(C8<>B$2;"";SI(MOD(ARRONDI(24*60*60*(A8-INDEX(A:A;EQUIV(B$2;C:C;0)));0);$B$4)=0;"X";""))
Bonjour vgendron,

Merci pour cette proposition qui effectivement fonctionne très bien dans mon exemple de fichier, mais...(il y a toujours un mais, la vie serait tellement plus simple autrement... 😊 ).

Comme je le mentionne dans ma demande d'aide, je cherche la première valeur (la plus ancienne), et en partant de celle-ci toutes les valeurs suivantes avec le pas de temps renseigné en $B4.

Dans ta formule "=SI(ET(C8=$B$2;MOD(SECONDE(A8);$B$4)=0);"X";"")" on affecte un X à toutes les dates ayant 0 en unité des secondes, ce n'est pas exactement ce que je recherche.

Si ma date de début avait été par exemple 06/09/2021 11:55:09 l'occurence suivante que je souhaite marquer serait 06/09/2021 11:55:19 avec n =10 ou 06/09/2021 11:55:21 avec n =12.

Petite précision et non des moindres, ma base de temps (n) n'est pas limité à 60s, mes fichiers de données couvrent une période de 24H, je souhaite donc pouvoir marquer les échantillons toutes 1s à 3600s (de manière totalement libre donc...) suivant mon besoin de granularité...
 
Dernière édition:
Re,
Si ma date de début avait été par exemple 06/09/2021 11:55:09 l'occurence suivante que je souhaite marquer serait 06/09/2021 11:55:19 avec n =10 ou 06/09/2021 11:55:21 avec n =12.

J'ai supprimé mon précédent message car la formule était fausse, essayez ce qui suit :

On change la fonction en D8 pour celle-ci :
=SI(C8<>B$2;"";SI(MOD(SECONDE(SI(C8<>B$2;"";A8-INDEX(A:A;EQUIV(B$2;C:C;0))));B$4)=0;"X";""))

Oubliez, c'est faux aussi. Voir ci-dessous version v2.
 
Dernière édition:
Re,


J'ai supprimé mon précédent message car la formule était fausse, essayez ce qui suit :

On change la fonction en D8 pour celle-ci :
=SI(C8<>B$2;"";SI(MOD(SECONDE(SI(C8<>B$2;"";A8-INDEX(A:A;EQUIV(B$2;C:C;0))));B$4)=0;"X";""))
@mapomme,
Effectivement c'est mieux, ça corrige ce que j'ai reporté au #4.👍
Par contre ça ne fonctionne qu'avec un pas max de 60s mais pas au-delà...
 
Re,

Décidément quand ça veut pas, ça veut vraiment pas 😡. Vais faire la sieste moi ! 😴.
Une dernière version qui accepte les durées supérieures à 60 secondes.
=SI(C8<>B$2;"";SI(MOD(ARRONDI(24*60*60*(A8-INDEX(A:A;EQUIV(B$2;C:C;0)));0);$B$4)=0;"X";""))
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
722
  • Question Question
Microsoft 365 Macro de recherche
Réponses
20
Affichages
2 K
Réponses
13
Affichages
1 K
Retour