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 :

Lecture de données entrées dans une feuille par une macro [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 34
    Points
    34
    Par défaut Lecture de données entrées dans une feuille par une macro
    Bonjour à tous,

    J'ai un problème sur une petite macro que j'ai écrite. Il s'agit d'un algorithme de recherche d'une valeur par dichotomie (j'ai 2 valeurs, que je resserre pour finir par obtenir la bonne valeur). L'algorithme est bon (a priori), mais je n'arrive pas à rentrer toutes les valeurs numériques qui sont entrées dans ma feuille Excel. Voici le code :

    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
    24
    Public Sub CalculMasse()
     
        ' {Déclaration de toutes mes variables (Integers & Singles)} 
     
        m1 = 0
        m2 = 1000
        Worksheets("Cas 11 noeuds - 5").Activate
            Range("B38").Select
                Evoy = ActiveCell.Value
            ' {Et d'autres entrées faites de la même manière}
        Worksheets("Données").Activate
            Range("Données!B68").Select
                Eps1 = t1 * ActiveCell.Value
            ' {Et d'autres entrées de la feuille Données}
        Worksheets("Cas 11 noeuds - 5").Activate
             ' {Et encore d'autres entrées}
     
        Do While m2 - m1 > 0.001
            ' {Algorithme de dichotomie}
        Loop
     
        MsgBox m1
     
    End Sub
    En exécutant cette macro, j'obtiens une erreur 1004 : Erreur définie par l'application ou par l'objet. Je pense que ça vient de ma manière d'aller chercher les valeurs dans ma feuille Excel. A chaque fois, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Worksheets("Nom de la bonne feuille").Activate
            Range("La case").Select
                Valeur = ActiveCell.Value
    Je ne pense pas que ça soit la meilleure façon de le faire, et je pense que c'est pour ça que ça plante. Quelqu'un pourrait-il m'indiquer la bonne manière de faire ?

    Merci d'avance,

    Martin McFly

  2. #2
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Bonjour,

    Le matin je m’assois face à la table,
    Je prends la tasse sur l’objet devant moi
    je verse le café dans l’objet qui est dans ma main.

    Autant dire je verse le café dans la tasse qui est sur la table. Ben là c'est pareil ni sélection ni activate on le dit d'un bloc.

    Autant dire je verse le café dans la tasse qi est sur la table. Ben l c'est pareille ni selection ni activate on le dit d'un bloc


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Valeur =  Worksheets("Nom de la bonne feuille").Range("La case").Value
    Je sais je craque un peu, les bases de données auront ma peau

    Edit :
    Si ca ne fonctionne pas
    Utilise le mode pas a pas touche F8 pour voir la ligne avec l'erreur
    Et déclare te variable en te mettant en option explicite ca peut venir de là aussi. Voir ici pour savoir comment. pour les types de variables c'est

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 34
    Points
    34
    Par défaut
    It works, merci ! J'ai quand même gardé les Worksheets.Activate, ça me permet d'économiser les Worksheets("la bonne feuille"). ..., et en plus ça rend le truc plus lisible.

    Merci en tout cas !

    EDIT : En fait, les Worksheets.Activate ne marchent pas, il reste quand même dans la feuille associée à la macro. Donc quand je vais chercher dans une autre feuille, j'utilise effectivement ta méthode.

  4. #4
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Si ton code est dans un onglet il prendra toujours la cellule de l'onglet.
    Dans un nouveau classeur ecrit
    Bob en A1 de la feuille1 et Maurice en A1 de la feuille 2

    Dans le code de la feuille 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sub test() 
    worksheets("Feuil2").activate
    msgbox range("A1")
    end sub
    La box affiche Bob mais tu vois bien Maurice à l'écran

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

Discussions similaires

  1. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  2. Ecrire dans le code d'une feuille par macro
    Par Tomuscz dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/07/2009, 11h19
  3. Réponses: 3
    Dernier message: 02/03/2009, 12h31
  4. Macro Copier données d'une feuille vers une feuille cible
    Par La Zélie dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/09/2008, 10h01
  5. remplacer une feuille par une feuille du meme nom
    Par florent149 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/08/2006, 16h00

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