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 :

recherche nombre 2 décimales alors qu'il en a 3 ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien R&D
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien R&D

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut recherche nombre 2 décimales alors qu'il en a 3 ?
    Bonjour,

    J'ai un soucis avec ma macro et je crois que mon cerveau n'arrive pas à trouver le bon angle pour aborder la question.

    Dans un tableau de prise de point je dois récupérer 3 valeurs de tension à 0,5s 10s et 30s.
    Initialement mes points étaient bien pris donc je filtrais et récupérais la valeur de tension. Seulement j'ai désormais des fichiers plus anciens où la prise de point n'est pas si bonne et où au lieu d'avoir mes points à 0,5 ou 10s j'ai des points aléatoires 10,013 ou 10,016 ou 10,008 enfin vous voyez l'idée.

    Sachant que je ne peux pas me fier juste à la partie entière non plus car pas assez précise

    Du coup je me demandais comment récupérer correctement mes points.

    (le temps est colonne E et la tension colonne F).

    Merci d'avance,
    Cordialement

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    c'est trop peu clair pour te répondre
    il faut déjà fort probablement tronquer ou arrondir tes valeurs pour que la valeurs réelles stockée soit celle que tu cherches, surtout si derrière tu dois faire des opérations.

    donnes des exemples de valeurs que tu as, et la valeur finale telle qu'elle devrait être utilisée pour chacun

    car, arrondiS (y'a plusieurs types), troncature, et autre manipulations, ont chacune une vocation bien précise

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien R&D
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien R&D

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut
    Oui désolé pour la clareté, A force de retourner le problème pour voir comment le prendre je me suis perdu moi même je pense.
    Mais si l'on prend l'exemple du 0.5s voilà ce que je vais avoir.
    En gras la ligne qui m'intéresse du coup car c'est le point le plus proche de 0.5. Moi je veux récupérer le 3260.5546 du coup.

    0,229 3249,2756
    0,234 3250,6108
    0,239 3252,0298
    0,339 3258,7184
    0,439 3259,6484
    0,539 3260,5546
    0,639 3261,2104
    0,739 3262,0092
    0,839 3262,5338
    0,939 3262,951

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    et pourtant rien qu'avec le B-A-BA d'Excel, une simple formule RECHERCHEV, même en VBA !

    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …

  5. #5
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Un bricolage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Sub ValeurProche()
     
     chercher = 0.5
     
     Set Rng = Feuil2.Range("A1:A20")
     
     Set c = Rng.Cells(1, 1)
     plusproche = Abs(c.Value - chercher)
     
     For j = 2 To Rng.Rows.Count
     
      diff = Abs(Rng.Cells(j).Value - chercher)
     
      If diff < plusproche Then
       plusproche = diff
       Set c = Rng.Cells(j, 1)
      End If
     
     Next
     c.Offset(, 1).Select
     MsgBox c.Offset(, 1)
     
    End Sub

  6. #6
    Membre à l'essai
    Homme Profil pro
    Technicien R&D
    Inscrit en
    Novembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien R&D

    Informations forums :
    Inscription : Novembre 2016
    Messages : 5
    Par défaut
    Citation Envoyé par Marc-L Voir le message

    Bonjour,

    et pourtant rien qu'avec le B-A-BA d'Excel, une simple formule RECHERCHEV, même en VBA !

    _________________________________________________________________________________________________________
    Je suis Paris, Nice, Bruxelles, Charlie, …
    Le recherche ne marchera pas. Il est vrai que je n'ai mis que quelques valeurs dans mon exemple mais il faut resituer dans le contexte d'un tableau d'environ 200k lignes.
    D'autant plus que sachant que mon prédécesseur a mal programmé la prise de point je veux la valeur la plus proche de 0.5, qui peut être en 0.49.

  7. #7
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Regarde quand même si le paramètre Valeur Proche de cette fonction ne serait pas ce dont tu as besoin ...

Discussions similaires

  1. [Nombre]formater le nombre de décimal après une virgule.
    Par PascalCmoa dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 09/03/2007, 10h40
  2. Définir un nombre de décimales
    Par IDE dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 11/01/2006, 17h52
  3. Comment fixer le nombre de décimal !
    Par Paul1804 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 09/01/2006, 15h12
  4. définir nombre de décimale
    Par capone dans le forum C++Builder
    Réponses: 5
    Dernier message: 08/01/2006, 14h15
  5. round avec nombre de décimale spécifiée
    Par bilb0t dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 14/04/2005, 16h44

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