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 Excel} Probleme de Programmation


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut {Macro Excel} Probleme de Programmation
    Voila j'ai realiser une amacro avec l'aide de ouskel et tonton fred

    http://www.developpez.net/forums/sho...d.php?t=347494

    mais j'ai un soucis
    lors de la verification de l'ordre des operations ben rien ne marche
    je ne sais pas du tout comment implanter les solutions fournis par ouskel ou tonton fred

    je fournis le fichier avec toutes les macros


    si quelqu'un peut me donner un coup de main merci
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Bonjour Thomas,

    Le probleme est simple:
    -tu n'as declare aucune variable
    -tu n'as pas affecte certaines d'entre elles (NoCol, ValPréc...)

    Tu devrais commencer par placer en haut de ton module (avant la premiere procedure)
    Cela te mettra une erreur de compilation a chaque fois qu'une variable ne sera pas declaree. Cela te permettrai en outre d'eviter des choses comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CompareVals = ";" & ValPréc & ";" & ValSaisie & ";"
    If Chrono Like "*" & CompreVals & "*" Then MsgBox "C'est ok"
    Lis bien ca et ca pour mieux comprendre.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    bonjour tonton

    merci pour l'astuce et les liens
    je vais y jeter un coup d'oeil


    mon erreur intervient a cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ValPréc = Cells(i - 1, NoCol).Value
    et je ne vois pas pk?

  4. #4
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Deux possibilites:
    -l'accent (normalement on evite, mais je ne sais pas si c'est une "coutume" ou pour eviter des erreurs, de toute facon j'en ai pas sur mon clavier )
    -la non declaration (lis le premier lien pour ca, c'est un resume tres bien fait)

    Quand tu as une erreur, dire a quelle ligne c'est bien mais avec le nom de l'erreur c'est mieux

    Bonne lecture

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 208
    Par défaut
    ValPréc = Cells(i - 1, NoCol).Value

    Erreur d'éxecution'1004':
    Erreur définie par l'application ou par l'objet

    désolé de pas avoir preciser


    Voila le code que j'ai taper pour faire la verification chronologique


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub verification()
     
    Chrono = ";MF 135 U;MM 71135 U;MM 31762/40;MF 345 U;MM 71791/40;MM 71791/50;MPA 1;PA 71155;MF 50 U;MM 71150 U;MF 160 U;MM RH 71160 U;MM 71160 U;MM 71718/60;MF 360 U;MM 71791/60;MF 370 U;MM 71791/70;MF 175 U;MF 180 U;MF 135 1U;MF 31787;MM 1732 P45;MF 40 U;MF 8150 U;MF 60 U;MF 8160 U;MF 8160 USP;MF 8360 U;MF 8170 U;MF 8370 U;MF 940 U;"
    ValPréc = Cells(ActiveCell.Row - 1, "C").Value
    ValSaisie = Cells(ActiveCell.Row, "C").Value
    CompareVals = ";" & ValPréc & ";" & ValSaisie & ";"
    If Chrono Like "*" & CompareVals & "*" Then MsgBox "C'est ok"
     
    End Sub

  6. #6
    Membre émérite
    Inscrit en
    Avril 2007
    Messages
    667
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2007
    Messages : 667
    Par défaut
    Pas de problemes, pour celle la c'etait facile a voir mais c'est pour les suivantes ca risque de se corser

    Lorsque tu ne declares pas de variable, Excel le fait tout seul dans le type Variant.
    Lors de cette declaration automatique ou d'une declaration explicite, la variable est initialise a 0 (pour une variable numerique).

    Donc cells(i - 1, NoCol) envoie vers la cellule de coordonnees (-1, 0), qui n'existe pas, donc erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ValPréc = Cells(ActiveCell.Row - 1, "C").Value
    ValSaisie = Cells(ActiveCell.Row, "C").Value
    Pour les erreur de syntaxe, la touche F1 est aussi tres utile, elle te dirait que pour la methode cells il faut des integer en arguments, contrairement a la methode range qui n'accepte que des string.

    Vraiment, ajoute option explicit, lis la faq de silkyroad concernant les variables, lis la faq programmer efficacement en VBA Excel

    Sinon ca va etre tres tres long...

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu as quelles valeurs dans i et dans NoCol ? Déroule ta macro au pas par pas pour le savoir, ou utilises
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Debub.print "i = " & i
    Debub.print "NoCol = " & NoCol
    et tu affiche la fenêtre Exécution -> Editeur VB -> Affichage -> fenêtre Exécution

    Edit
    Mais je vois que tonton fred t'a donné l'explication

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

Discussions similaires

  1. macro excel - Probleme Refedit
    Par pepito3364 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/06/2015, 08h19
  2. {VBA Excel}Probleme de programmation
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/09/2007, 15h56
  3. {VBA Excel}probleme de programmation
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/06/2007, 14h24
  4. [VBA-excel]Probleme de macro pour creer un graphique.
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/07/2006, 15h42
  5. Excel:probleme pour transformer du texte en nombre par macro
    Par pcheval dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/11/2005, 22h18

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