IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA cherche adresse donnée variable la plus proche inférieure sur colonne non triée [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 9
    Par défaut VBA cherche adresse donnée variable la plus proche inférieure sur colonne non triée
    Bonjour
    malgré de nombreux exemples sur ce forum, je n'ai pas réussi à en adapter un à mon cas. Je joins un fichier. Le but est de retrouver l'adresse de la valeur variable la plus proche inférieure de "C1" nommée Instant_t, dans la table des Hauteurs (T_Hauteurs). La fonction devrait renvoyer l'adresse de la cellule "F9" dans l'exemple du fichier joint.
    Merci
    Jacky
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Je joins un fichier
    Jamais lors d'un premier post. Voir la discussion de Pierre en entête du Forum.

    Tu peux t'aider sans doute de cette discussion, dans laquelle l'ami mercatog intervient, en l'adaptant à ton cas.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 9
    Par défaut colonne NON triée
    Citation Envoyé par MarcelG Voir le message
    Bonjour,



    Jamais lors d'un premier post. Voir la discussion de Pierre en entête du Forum.

    Tu peux t'aider sans doute de cette discussion, dans laquelle l'ami mercatog intervient, en l'adaptant à ton cas.
    j'utilise la fonction Equiv qui est bien adapté à une colonne triée mais dans la Table que j'utilise (suite d'heures incrémentées d'un temps fixe), la colonne peut avoir des heures triées (12:40, 13:35...)mais quand les heures sont réparties sur 2 jours, elles ne le sont plus (23:40, 00:35 .....) d'où ma recherche d'une fonction qui gère ce cas
    merci néanmoins pour la réponse rapide

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    (suite d'heures incrémentées d'un temps fixe)
    et
    valeur variable la plus proche inférieure de "C1" nommée Instant_t, dans la table des Hauteurs
    Tiens tiens ... Quelle coïncidence ... Je travaille en ce moment également sur un classeur où des données sont ainsi relevées à intervalles réguliers. Mais moi, c'est pour des raisons qui n'ont probablement rien à voir avec ton projet (trop long à expliquer ...je suis pêcheur).
    Mais la problématique est la même.
    Il n'y a pas d'autre solution que celle d'enregistrer en date et heure. Rien n'empêche de formater les cellules pour n'y afficher que l'heure, le tri se faisant, lui, sur l'ensemble date/heure.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour à tous,

    tes dates sont au 00/01/1900 avant minuit, au 01/01/1900 ensuite.
    Il te faut donc ajouter 1 à ta valeur cherchée si elle est inférieure à la 1ère heure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(T_Heures;EQUIV((Instant_t<$F$7)+Instant_t;T_Heures;1))
    Valable que si tu ne couvres pas plus de 24h.
    eric

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour Eriiic

    J'ignore (je n'ouvre pas de classeurs tiers) la forme sous laquelle ces données figurent sur sa feuille, tant en ce qui concerne leur valeur réelle que leur "valeur affichée" et ne sais donc pas si ce que tu proposes permettra à jacky72 de s'en sortir.
    Si oui, parfait et tant mieux
    Si non et si j'ai deviné ce qu'il traite (sinon, non), je lui parlerai de ce que j'ai mis en oeuvre sur mon propre outil pour pallier cette difficulté-là.
    Amitiés

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 9
    Par défaut Ca fonctionne
    Citation Envoyé par unparia Voir le message
    Bonjour

    et

    Tiens tiens ... Quelle coïncidence ... Je travaille en ce moment également sur un classeur où des données sont ainsi relevées à intervalles réguliers. Mais moi, c'est pour des raisons qui n'ont probablement rien à voir avec ton projet (trop long à expliquer ...je suis pêcheur).
    Mais la problématique est la même.
    Il n'y a pas d'autre solution que celle d'enregistrer en date et heure. Rien n'empêche de formater les cellules pour n'y afficher que l'heure, le tri se faisant, lui, sur l'ensemble date/heure.
    bonjour Unparia et Eriiic,
    l'indice donné par unparia est le bon ; mettre la date et l'heure pour l'instant_t recherché est la bonne solution : j'imagine qu'excel travail avec le numero de serie du jour et heure donc toujours trié, chose qu'affectionne la fonction Equiv. Le format heure (hh:mm) allège le visuel et la lecture, sans compromettre le traitement.
    Ce que je veux faire avec ce petit programme, c'est tout simplement automatiser les calculs de marée, avec la règle des douzièmes.
    Les ENTREES sont les dates/heures de marée, les hauteurs (Pleine Mer, Basse Mer), le tirant d'eau, le pied de pilote (marge de sécurité), la Sonde
    Les SORTIES : besoin en profondeur, besoin en Hauteur d'eau, la Hauteur d'eau à l'instant_t, profondeur sous quille, indication du sondeur(si décalé), heure de passage limite sur sonde
    (voir copie d'écran)
    Images attachées Images attachées  

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Août 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 9
    Par défaut Programme marée
    Citation Envoyé par unparia Voir le message
    Bonjour

    et

    Tiens tiens ... Quelle coïncidence ... Je travaille en ce moment également sur un classeur où des données sont ainsi relevées à intervalles réguliers. Mais moi, c'est pour des raisons qui n'ont probablement rien à voir avec ton projet (trop long à expliquer ...je suis pêcheur).
    Mais la problématique est la même.
    Il n'y a pas d'autre solution que celle d'enregistrer en date et heure. Rien n'empêche de formater les cellules pour n'y afficher que l'heure, le tri se faisant, lui, sur l'ensemble date/heure.
    à vouloir documenter au mieux ma réponse, j'ai oublié de vous remercier ! Voilà c'est fait , merci bien à tous et à bientôt sur le forum (quoique les marins préfèrent le vrai rhum )

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Ce que faisait automatiquement ma proposition sur ton fichier de travail (sans notion de date réelle en F).
    eric

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/05/2016, 14h49
  2. Réponses: 8
    Dernier message: 27/10/2015, 16h50
  3. Réponses: 2
    Dernier message: 28/12/2012, 14h22
  4. trouver valeur la plus proche dans une colonne
    Par niepoc dans le forum Général Python
    Réponses: 10
    Dernier message: 05/06/2009, 15h02
  5. Réponses: 10
    Dernier message: 06/03/2007, 14h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo