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 :

variable et erreur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Par défaut variable et erreur
    Bonjour à tous,

    J'ai des données dans un fichier CSV que je souhaite retraité pour ce faire j'exécute le code suivant :

    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
    Dim intFic As Integer
        Dim strLigne As String, Val() As String
        Dim i As Long
        Dim Tabl1() As Integer, Tabl2() As Single
     
        i = 1
     
        intFic = FreeFile
     
        Open "XXXXX.csv" For Input As intFic
            While Not EOF(intFic)
                Line Input #intFic, strLigne
                Val = Split(strLigne, ",")
                If CSng(Val(1)) > 2.5 Then
                    ReDim Preserve Tabl1(i), Tabl2(i)
                    Tabl1(i) = 1
                    Tabl2(i) = Format(CSng(Val(0)), "0.000000")
                ElseIf CSng(Val(1)) < 2.5 Then
                    ReDim Preserve Tabl1(i), Tabl2(i)
                    Tabl1(i) = 0
                    Tabl2(i) = Format(CSng(Val(0)), "0.000000")
                End If
                i = i + 1
            Wend
        Close intFic
    Cependant le fait d'utiliser une conversion de type me modifie la valeur. écart de l'ordre 10-7 entre la valeur stockée csv et la valeur récupérée dans le Tabl2

    Y-a-t-il une autre façon de faire plus robuste ?
    Dois je utiliser un autre type de variable ?

    Merci de votre aide

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour,

    normal vu la déclaration de la variable !        Utiliser plutôt le type Currency.     Démonstration

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2010
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2010
    Messages : 338
    Par défaut
    Je connais l'astuce du currency cependant j'ai besoin de 6 décimal... par conséquent le type currency ne me convient pas.

    Je tente actuellement un Option explicit sans déclarer de type pour Tabl2 et d'utiliser CDec(Val(0)). Dès que j'ai le résultat j'indiquerai si c'est résolu

    Il y a peut être une meilleure façon de faire

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Alors via le type Double

    Currency c'est plus pour les calculs de différence …

Discussions similaires

  1. variables, CDATE, erreur de type
    Par ikoria dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/10/2009, 13h31
  2. Réponses: 14
    Dernier message: 16/07/2008, 17h05
  3. [Validation] Perte d'une variable sur erreur
    Par kindjal dans le forum Struts 2
    Réponses: 2
    Dernier message: 13/02/2008, 12h04
  4. variable initialisée erreur
    Par yvkoe dans le forum Langage
    Réponses: 18
    Dernier message: 09/11/2007, 13h26
  5. Réponses: 11
    Dernier message: 13/09/2007, 15h25

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