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 :

MACRO - Sélection d'une valeur obéissant à des règles


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Janvier 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant SAP

    Informations forums :
    Inscription : Janvier 2019
    Messages : 7
    Par défaut MACRO - Sélection d'une valeur obéissant à des règles
    Hello tout le monde,
    J'ai une problématique que je dois résoudre sur Excel, j'ai une extraction brute SAP "Extract brute" qui est dynamique (nombre de données change à chaque extraction). J'ai construit un template avec un 2ème onglet utilisateur "Onglet utilisateur" où je reprends et modifie des données de l'extract brute.

    Dans l'onglet technique, j'ai des données physico-chimiques d'une liste d'agents. Si pour une même instance (même agent) j'ai plusieurs pressions de vapeur qui lui sont associés, j'ai autant de lignes que de pressions de vapeurs. Chaque pression de vapeur correspond à un degré de température.

    Dans l'onglet utilisateur, je ne rapatrie qu'une seule instance (ligne) qui correspond à une pression de vapeur obéissant aux règles suivantes:
    1/ Prendre la valeur de Pvap à 25°C si elle existe
    2/ Prendre la valeur de Pvap à 20°C si elle existe
    3/ Si aucune des valeurs ci-dessus n'existe, prendre une valeur de Pvap dans le range [18°C ; 30°C].
    4/ Si pour une même substance plusieurs Pvap existe dans ce range, prendre la plus proche de 25°C
    5/ Si aucune donnée disponible dans le range, ne pas mettre de Pvap

    La colonne Q et R correspondent respectivement à la pression de vapeur et la température associée. La spécification (colonne F) est l'identifiant de l'agent chimique.
    J'ai fait plusieurs essais avec des formules, des SI imbriqués et des recherchev honnêtement je sèche car il y a toujours le même problème, vu que je n'ai pas le même nombre de lignes entre les 2 onglets (vu que j'enlève les doublons et je ne rapatrie qu'une seule ligne), il faut sélectionner la bonne valeur de Pvap (quand il y a plusieurs pour une même spécification) et passer à la ligne suivante pour continuer le traitement.

    Je me tourne vers vous les connaisseurs VBA pour savoir s'il existe une solution à mon problème grâce à une macro. Ci-joint le fichier avec les 2 onglets, il y a juste une petite macro pour rapatrier les lignes sans doublons dans l'onglet utilisateur.

    Merci d'avance pour votre aide!
    Bonne journée
    Fichiers attachés Fichiers attachés

  2. #2
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 10
    Par défaut fonction matricielle
    Bonjour,
    Je pense que tu peux trouver une solution avec les fonctions matricielles.
    T'es tu renseigné sur ces fonctions?

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant SAP
    Inscrit en
    Janvier 2019
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant SAP

    Informations forums :
    Inscription : Janvier 2019
    Messages : 7
    Par défaut
    Bonjour Al3x300,

    J'ai une petite idée sur le calcul matriciel par contre je ne pense pas que ça marche pour des données dynamiques. Vu que tu n'auras pas le même nombre de lignes à chaque extract, il faudra faire des boucles pour parcourir toutes les lignes qui ont la même spécification (chemical ID en colonne F) et sélectionner la bonne valeur qui obéit aux règles mentionnées.

    Cette formule en calcul matriciel te permet d'avoir la valeur la plus proche de 25 °C par exemple mais sur une sélection que tu définis alors que dans l'utilisation normal, pour déterminer la plage sur laquelle il faut chercher, il faut prendre toutes les lignes qui ont le même chemical ID et faire la sélection de la pression de vapeur selon les règles que j'avais mentionné.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =INDEX(I11:I13;EQUIV(MIN(ABS(K11-I11:I13));ABS(K11-I11:I13);0))

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/02/2008, 11h19
  2. modifier une valeur dans des variables
    Par bombjack91 dans le forum VB.NET
    Réponses: 3
    Dernier message: 29/06/2007, 08h14
  3. [VB-Excel]Trier une valeur comprennant des lettres et des chiffres
    Par DomBourti dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2006, 21h51
  4. Réponses: 29
    Dernier message: 15/05/2006, 15h15
  5. Sélection d' une valeur max depuis 2 tables
    Par ipeteivince dans le forum Requêtes
    Réponses: 4
    Dernier message: 13/05/2005, 17h37

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