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 :

erreur sur une macro fichier texte


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 232
    Points : 436
    Points
    436
    Par défaut erreur sur une macro fichier texte
    Bonjour Forum!
    J'ai développé une macro qui marche super bien sur excel 2003 par contre si je veux le faire tourner sur 2007 ce message d'erreur s'affiche:
    Erreur d’exécution '94'
    utilisation incorrecte de Null
    La macro plante au niveau de cette ligne de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Enregistrement = Enregistrement & ";" & Trait0(CDbl(Requete.Fields(CompA).Value))
    est une fonction que j'ai codé me servant de remplacer des 0 par des 0.1
    Je vous remercie d'avance de votre aide chers membres de ce magnifique Forum !

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 598
    Points : 34 283
    Points
    34 283
    Par défaut
    salut,

    peut-on en savoir plus sur les valeurs et fonctions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CompA
    Requete.Fields(CompA).Value
    'et
    Trait0()
    stp ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 232
    Points : 436
    Points
    436
    Par défaut
    voila la fonction Trait0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Function Trait0(Val As Double) As Double
        If Val = 0 Then
            Trait0 = 0.01
        Else
            Trait0 = Format(Val, "0.00")
        End If
        If Trait0 = 0 Then
        Trait0 = 0.01
        End If
    End Function
    Mon fichier est un fichier texte .
    est mon compteur qui me balaie mes colonnes

    je joins a ce courriel quelque ligne de mon Fichier pour vous permettre de voir les valeurs
    Si vous voulez aussi je peux poster tout le code.

    Merci
    Fichiers attachés Fichiers attachés

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 598
    Points : 34 283
    Points
    34 283
    Par défaut
    Ok, et ce compteur, à quelle valeur y a-t-il un erreur ?
    que te donne le mode pas à pas ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 232
    Points : 436
    Points
    436
    Par défaut
    Lorsque ma macro plante dans CompA y'a la valeur 13
    sachant que dans la macro j'ai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For CompA = 3 To 17
                    Enregistrement = Enregistrement & ";" & Trait0(CDbl(Requete.Fields(CompA).Value))
                Next CompA
    Merci

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 598
    Points : 34 283
    Points
    34 283
    Par défaut
    et que vaut ton champ d'id 13 ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 232
    Points : 436
    Points
    436
    Par défaut
    Tu veux dire l'entête de ma 13 colonne justement rien de spéciale le même format que les autres entêtes.
    je t'envoies peut être l'intégralité du code?

  8. #8
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 598
    Points : 34 283
    Points
    34 283
    Par défaut
    Non pas le libellé du champ, mais bien la valeur du champs dans l'enregistrement

    que vaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Requete.Fields(CompA).Value
    je pencherai pour une valeur Null =)
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 232
    Points : 436
    Points
    436
    Par défaut
    Effectivement la valeur du champs dans l'enregistrement est "Null"
    C'est pou cela j'ai fait la fonction Trait0 pour qu'elle remplace automatiquement le 0 a priori donc il devrait pas y'avoir de problème d’ailleurs çà marche sur excel 2003
    je comprend pas .

    Merci d'avance

  10. #10
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 598
    Points : 34 283
    Points
    34 283
    Par défaut
    Attention Null =! 0

    tu ne peux pas caster en double (Cdbl()) la valeur Null

    Il te faut donc tester la valeur en amont du code avec IsNull() par exemple
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 232
    Points : 436
    Points
    436
    Par défaut
    Merci beaucoup pour cette indication jpcheck !
    Effectivement la valeur du champs dans l'enregistrement est "Null"
    Mais concretement comment je peux tester en amont sur mon code IsNull sachant que j'ai jamais utilisé .

    Merci

  12. #12
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 598
    Points : 34 283
    Points
    34 283
    Par défaut
    en utilisant l'aide en ligne tu trouves la syntaxe habituelle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If ind < 3 Then
                    LectureTemp = LectureTemp & ";" & Lecture ' si non on prends la valeur numérique
                Else
                    LectureTemp = LectureTemp & ";" & Format(CDbl(Lecture), "0.000000") ' si non on prends la valeur numérique
                End If
    se transformerait par exemple en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If Not IsNull(Lecture) Then
    If ind < 3 Then
                    LectureTemp = LectureTemp & ";" & Lecture ' si non on prends la valeur numérique
                Else
                    LectureTemp = LectureTemp & ";" & Format(CDbl(Lecture), "0.000000") ' si non on prends la valeur numérique
                End If
    End If
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 232
    Points : 436
    Points
    436
    Par défaut
    Si j'ai compris le teste IsNull fait en amont vérifie si la valeur est nulle .
    Si le teste est positif dans ce cas comment faut réparer l'erreur?
    Je comprend tjrs pas pourquoi ca marche sur 2003 sans le test IsNull et pas sur 2007?
    j'apporte la correction que tu m'a suggeré et je te dis!
    Merci

  14. #14
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2011
    Messages : 232
    Points : 436
    Points
    436
    Par défaut
    merci beaucoup jpcheck
    nous avons réussi !

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

Discussions similaires

  1. Erreur 0 sur une macro excel depuis le passage à EXCEL 2010
    Par Lutin1801 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/01/2013, 11h41
  2. [XL-2010] Impossibilité d'ouvir un fichier (enregistré avec un bug sur une macro)
    Par statista dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/01/2011, 17h44
  3. Accès SQL dans fichier excel erreur sur une ligne
    Par troubleshooting dans le forum Excel
    Réponses: 3
    Dernier message: 17/11/2009, 14h46
  4. Personnalisé Message d'Erreur sur une Macro
    Par faressam dans le forum IHM
    Réponses: 2
    Dernier message: 20/08/2007, 11h40
  5. [VBA] Menu qui pointe sur une macro contenue dans un fichier xla protégé
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/08/2007, 14h34

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