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 :

Trouver les coordonnées d'une cellule en fonction d'une variable double en connaissant sa valeur. [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti Avatar de eliniel
    Femme Profil pro
    Ingénieure Essais et validation
    Inscrit en
    Septembre 2014
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieure Essais et validation
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 115
    Points : 429
    Points
    429
    Par défaut Trouver les coordonnées d'une cellule en fonction d'une variable double en connaissant sa valeur.
    Bonjour à tous,
    Je cherche à faire la moyenne de valeurs situées dans un intervalle.
    Les bornes de cet intervalle change à chaque itération, donc cela donne une moyenne différente à chaque itération.

    Pour calculer la moyenne, j'utilise une formule qui a besoin des coordonnées des cellules des bornes.
    Je cherche donc les coordonnées des cellules contenant ces valeurs.

    Le but du programme est que, lorsque l'on a un intervalle, le programme fasse la moyenne des valeurs de la colonne M comprises dans cet intervalle puis la même chose pour la colonne L.
    J'arrive à obtenir les coordonnées d'un des paliers, mais pas l'autre.
    Pour changer la valeur des paliers, j'incrémente une cellule: cells(i,1) et une variable NvPal, afin que les bornes de l'intervalle soient égales au deux valeurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      'Valeur pour faire la moyenne DT
     
                     Dim NvPal as Double
                     NvPal = Min + Abs(seuil * h) 'valeur minimum du palier
     
     
                        Sheets(k).Cells(72 + h, 4).Value = i  'On veut renvoyer l'adresse de i dans la formule du DT
                        Sheets(k).Cells(72 + h, 5).Value = Cells.Find(NvPal, , xlValues).Address
                        Sheets(k).Cells(56 + h, 2).Value = "=(AVERAGE(INDIRECT(""donnees!""&ADDRESS(R[16]C[2],13)):INDIRECT(""donnees!""&ADDRESS(R[16]C[3],13))))-(AVERAGE(INDIRECT(""donnees!""&ADDRESS(R[16]C[2],12)):INDIRECT(""donnees!""&ADDRESS(R[16]C[3],12))))" 'valeur de DT
    Le problème est qu'au niveau de la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(k).Cells(72 + h, 5).Value = Cells.Find(NvPal, , xlValues).Address
    j'ai une erreur "Variable Objet ou variable de bloc with non défini".

    Mon programme étant assez lourd, y-a-t-il une meilleure méthode pour obtenir ce que je désire?
    Ingénieure essais validation

    J'essaye d'écrire du mieux que je peux.

  2. #2
    Membre éclairé Avatar de Nako_lito
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2008
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2008
    Messages : 793
    Points : 827
    Points
    827
    Par défaut
    quand on fait un "Find", il faut se préparer a l'éventualité que la valeur ne soit pas trouvée. Ce qui retourne une erreur similaire a ce que tu décris.
    - La dernière fois que j'ai testé ca fonctionnait !
    - Vous n'avez rien modifié ?
    - Non ! Je suis pas idiot non plus.
    - ....
    - Enfin si, juste le fichier .dll, mais a 4Ko, ca devait pas être important.

  3. #3
    Membre averti Avatar de eliniel
    Femme Profil pro
    Ingénieure Essais et validation
    Inscrit en
    Septembre 2014
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieure Essais et validation
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 115
    Points : 429
    Points
    429
    Par défaut
    Merci Nako,
    Mais j'ai trouvé comment résoudre mon problème sans passer par la fonction Find sur laquelle je n'avais aucun résultat depuis ce matin.
    Je vais de ce clique aller voir ton lien.

    Ma solution consiste à récolter les valeurs de bases des intervalles et d'incrémenter les coordonnées comme ci dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     'Valeur pour faire la moyenne DT
                        Sheets(k).Cells(56 + h, 2).Value = "=(AVERAGE(INDIRECT(""donnees!""&ADDRESS(" & x & ",13)):INDIRECT(""donnees!""&ADDRESS(" & i & ",13))))-(AVERAGE(INDIRECT(""donnees!""&ADDRESS(" & x & ",12)):INDIRECT(""donnees!""&ADDRESS(" & i & ",12))))"
    Ingénieure essais validation

    J'essaye d'écrire du mieux que je peux.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/01/2013, 09h01
  2. Réponses: 2
    Dernier message: 05/03/2010, 14h15
  3. Réponses: 2
    Dernier message: 03/07/2009, 14h35
  4. Nom d'une cellule en fonction d'une variable
    Par Kibald dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/12/2008, 21h47
  5. [MySQL] Changement de couleur d'une cellule en fonction d'une requete
    Par freko dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 10/07/2008, 16h56

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