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 :

Problème de Format lors d'import csv


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Octobre 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur validation

    Informations forums :
    Inscription : Octobre 2018
    Messages : 15
    Par défaut Problème de Format lors d'import csv
    Bonjour tout le monde,


    J'ai un probleme lorsque je fait un import de mon csv, en fait les nombres de type 1810400000000 sont convertis en 1,8104E+12 du cout mes calcules sont fausse.

    voici le code VB que j'utilise:

    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
    41
    42
    43
    44
    Dim dw, ds, dr, qt As Object
     
    Try
     
    dw = GetWorkbook(Handle, Workbook)
    ds = GetWorksheet(Handle, Workbook, Worksheet)
    dr = ds.Range(Range)
    qt = ds.QueryTables.Add(Connection:="TEXT;" & Path, Destination:=dr)
     
    With qt
    	.FieldNames = True
    	.RowNumbers = False
    	.FillAdjacentFormulas = False
    	.PreserveFormatting = True
    	.RefreshOnFileOpen = False
    	.RefreshStyle = 1 'xlInsertDeleteCells
    	.SavePassword = False
    	.SaveData = True
    	.AdjustColumnWidth = True
    	.RefreshPeriod = 0
    	.TextFilePromptOnRefresh = False
    	.TextFilePlatform = 437
    	.TextFileStartRow = 1
    	.TextFileParseType = 1 'xlDelimited
    	.TextFileTextQualifier = Qualifier
    	.TextFileConsecutiveDelimiter = False
    	.TextFileTabDelimiter = True
    	.TextFileSemicolonDelimiter = True
    	.TextFileCommaDelimiter = False
    	.TextFileSpaceDelimiter = False
    	.TextFileTrailingMinusNumbers = True
    End With
    qt.Refresh(False)
    Success = True
     
    Catch e As Exception
    	Success = False
    	Message = e.Message
    Finally
    	dw = Nothing
    	ds = Nothing
    	dr = Nothing 
    	qt = Nothing
    End Try

    Je sais pas quel attribut a utiliser pour que je garde un format "Nombre" de type 1810400000000

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Le code que tu montres ... n'est pas du code VBA

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ancien Etudiant
    Inscrit en
    Janvier 2019
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ancien Etudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 152
    Par défaut
    Bonjour,

    Peut-être passer le format des colonnes en défaut en format nombre avec décimalesà 0.

    Si les cellules en défaut ne sont disséminées, à part une moulinette VBA ....

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Octobre 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur validation

    Informations forums :
    Inscription : Octobre 2018
    Messages : 15
    Par défaut
    En fait meme je peut pas changer le format dans le CSV, ce code est dans l'Import file de "Blue Prisme", certainement il y'aurais un attribut a definir pour que ca donne des nombres san E+12

    Ca deviens Urgent

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Va voir là:

    https://support.office.com/fr-fr/art...rs=fr-FR&ad=FR

    Et c'est quoi le rapport avec Excel ?

    Dans ton CSV tu as quoi ? 1810400000000 ou 1,8104E+12. Parce que si c'est 1,8104E+12 dans ton CSV, Excel ne peut pas revenir à 1810400000000. De toutes façons oublie Excel. Excel est limité à 15 chiffres significatifs et tu en as déjà 13. TU ne pourras probablement pas obtenir une précision à coucher dehors.

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Octobre 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur validation

    Informations forums :
    Inscription : Octobre 2018
    Messages : 15
    Par défaut
    Dans mon CSV C'est 1810400000000 et je veux garder ce format

  7. #7
    Membre expérimenté
    Homme Profil pro
    Ancien Etudiant
    Inscrit en
    Janvier 2019
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ancien Etudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 152
    Par défaut
    au final, cet import est il réalisé dans Excel ?

    si oui voir post #3

    si non .....?

  8. #8
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Citation Envoyé par Hello27682 Voir le message
    Dans mon CSV C'est 1810400000000 et je veux garder ce format
    Dans Excel :
    S'il s'agit d'un nombre, le format n'a aucune importance, la valeur reste la même (Edit : dans la limite de 15 chiffres significatifs).
    S'il s'agit d'un numéro, comme pour tout numéro (par opposition à un nombre), il faut utiliser le format Texte, tous les formats numériques ne fournissent qu'une apparence du numéro avec un risque de perte de caractères.

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    bonjour
    j'ai deja montrer comment enregistrer une plage ou le sheets complet en csv en gardant les numero comme tel qu'il sont visible fait une revcherche dans le forum "csv avec patricktoulon pour le membre

    c'est pas compliqué tu aura ta solution

    j'en avais meme fait une petite contrib
    https://www.developpez.net/forums/d1...tite-fonction/

    DVP a un moteur de recherche servez vous en non de dieu!!
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #10
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par patricktoulon Voir le message
    j'ai deja montrer comment enregistrer ...
    Bonjour Patrick

    Si j'ai bien compris, il ne s'agit pas de les enregistrer mais de les lire avec une requête.

  11. #11
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Patrick, il faut pas lire en travers (sic), Import c'est Export !

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    ben dans ce cas la si les calculs se font en vba
    il gere ca dans les calculs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub test2()
    MsgBox "A5 = " & CDec([A5].Value)
    MsgBox "A6 = " & CDec([A6].Value)
    End Sub
    Nom : demo3.gif
Affichages : 398
Taille : 351,1 Ko
    Nom : Capture.JPG
Affichages : 534
Taille : 169,1 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #13
    Membre averti
    Homme Profil pro
    Ingénieur validation
    Inscrit en
    Octobre 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur validation

    Informations forums :
    Inscription : Octobre 2018
    Messages : 15
    Par défaut
    Hello,

    alors au finale est ce qu'il y'a un attribut a ajouter dans ma fonction pour que je lit le CSV correctement?

Discussions similaires

  1. format Date et import csv
    Par munity dans le forum Développement de jobs
    Réponses: 8
    Dernier message: 20/11/2009, 16h20
  2. [AC-2003] Nombres interprétés comme des heures lors d'import CSV
    Par -ULK- dans le forum VBA Access
    Réponses: 2
    Dernier message: 23/07/2009, 10h09
  3. Problème de caractères lors d'importation de bdd
    Par ferdi67 dans le forum Outils
    Réponses: 1
    Dernier message: 28/08/2006, 22h28
  4. [VBA-E]Problème de date lors d'importation
    Par illight dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/04/2006, 11h38

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