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 :

"Cet objet ne gère pas cette propriété ou méthode" [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Points : 3
    Points
    3
    Par défaut "Cet objet ne gère pas cette propriété ou méthode"
    Bonjour,

    j'ai un petit soucis, et j'ai peur de ne pas saisir le problème logique qu'il se pose.

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    Sub optireac()
     
    With ActiveWorkbook
     
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
     
    k = 1
     
    For j = 3 To 47 Step 4
     
        For i = 1 To 8927
     
     
            If Abs(ActiveWorkbook.Exploitation.Cells(10, 4).Value - ActiveWorkbook.TUD31.Cells(i, j).Value) < 1 Then
     
            ' on compare la température de l'eau entrée par rapport à celle stockée dans la base
            ' si la différence est inférieure à 1°C, on la garde
     
            ActiveWorkbook.Calculs.Cells(k, 2).Value = ActiveWorkbook.TUD31.Cells(i, j).Value
            ' on stocke la valeur dans la feuille calcul, deuxième colonne
     
            ActiveWorkbook.Calculs.Cells(k, 1).Value = ActiveWorkbook.TUD31.Cells(i, j - 1).Value + ActiveWorkbook.TUD31.Cells(i, j - 2).Value
            ' on stocke la date dans la feuille calcul, première colonne
     
            k = k + 1
     
            End If
     
        Next i
     
    Next j
     
    End With
     
    End Sub
    J'ai un historique de données. Je veux comparer une température, par exemple 17°C, insérée dans la feuille Exploitation, cellule D10 et la comparer à cet historique (inscrit sur la feuille TUD31) en ne gardant que les valeurs qui s'en rapprochent à 1 degré près. Ceci se fait dans la feuille Calculs. Le pas de 4 pour j est lié au fait que mes données de température ne sont affichées que toutes les 4 colonnes.

    Je suppose que mon problème est lié aux types des variables, mais je ne sais pas trop comment m'en dépatouiller. Quelqu'un saurait-il m'expliquer où se situe mon erreur?

    D'avance merci!

  2. #2
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 168
    Points : 123
    Points
    123
    Par défaut
    Bonjour,

    L'erreur se trouve à quelle ligne exactement?


    Chipss

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    effectivement, j'ai omis de le préciser. C'est sur la ligne suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
     If Abs(ActiveWorkbook.Exploitation.Cells(10, 4).Value - ActiveWorkbook.TUD31.Cells(i, j).Value) < 1 Then
    J'ai testé plusieurs combinaisons sans succès, l'erreur reste la même

  4. #4
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 168
    Points : 123
    Points
    123
    Par défaut
    A la place de "Exploitation", "TUD31" et "Calculs" met sheets("Exploitation"),sheets("TUD31") et sheets("Calculs") et si ca marche toujours pas essaye sheets("Exploitation.xls")...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 60
    Points : 58
    Points
    58
    Par défaut
    Bonjour,

    L'erreur viens du fait que Abs() tout seul ne fonctionne pas. Il faut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dim MaVarTest as integer
     
    If (MaVarTest = Abs(ActiveWorkbook.Exploitation.Cells(10, 4).Value - ActiveWorkbook.TUD31.Cells(i, j).Value)) < 1 Then
    Et la ça devrait fonctionner.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Résolu!
    Ok, ça marche! C'est vraiment sympa de ta part!

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
     
    Sub optireac()
    '
     
    With ActiveWorkbook
     
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
     
    k = 1
     
    For j = 3 To 47 Step 4
     
        For i = 1 To 8927
     
     
            If Abs(ActiveWorkbook.Sheets("Exploitation").Cells(10, 4).Value - ActiveWorkbook.Sheets("TUD31").Cells(i, j).Value) < 1 Then
     
            ' on compare la température de l'eau entrée par rapport à celle stockée dans la base
            ' si la différence est inférieure à 1°C, on la garde
     
            ActiveWorkbook.Sheets("Calculs").Cells(k, 2).Value = ActiveWorkbook.Sheets("TUD31").Cells(i, j).Value
            ' on stocke la valeur dans la feuille calcul, deuxième colonne
     
            ActiveWorkbook.Sheets("Calculs").Cells(k, 1).Value = ActiveWorkbook.Sheets("TUD31").Cells(i, j - 1).Value + ActiveWorkbook.Sheets("TUD31").Cells(i, j - 2).Value
            ' on stocke la date dans la feuille calcul, première colonne
     
            k = k + 1
     
            End If
     
        Next i
     
    Next j
     
    End With
     
    End Sub
    Encore une subtilité VBA qui me dépasse, mais j'apprends! Un grand merci à toi Chipss!

    Edit: je viens de voir ta réponse JeanSairien, je vais tester ça aussi. Merci!

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

Discussions similaires

  1. Cet objet ne gère pas cette propriété ou cette methode
    Par sooprano dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 26/09/2011, 17h33
  2. [POO] [IE6] Cet objet ne gère pas cette propriété ou cette méthode
    Par sabotage dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/01/2009, 22h44
  3. Réponses: 8
    Dernier message: 05/06/2008, 15h19
  4. Cet objet ne gère pas cette propriété ou cette méthode
    Par _Michel dans le forum Visual C++
    Réponses: 2
    Dernier message: 08/11/2007, 22h06
  5. [Jscript]Cet objet ne gère pas cette propriété ou cette méthode
    Par 1tox dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 02/06/2006, 09h19

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