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

C++Builder Discussion :

Problème avec Excel


Sujet :

C++Builder

  1. #1
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut Problème avec Excel
    Bonjour à tous,

    Après avoir ouvert une liaison (OLE) avec Excel, je lis les cellules en ligne et par colonne et j'enregistre ces cellules dans une table/access dans des champs bien définis. Quand j'ouvre ma base avec Access (ou autre) Tout va bien, sauf pour les cellules contenant " l'Heure " ou " les Durées " il me renvoi une valeur décimale.

    voici le code :
    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
    45
     
    //
    // DETERMINER LA ZONE UTILE
    //
       Variant vUsedRange ;
       vUsedRange = vWorksheet.OlePropertyGet("UsedRange");
       Variant vLines;
       vLines   = vUsedRange.OlePropertyGet("Rows");
       int nLig = vLines.OlePropertyGet("Count") ;
     
     
       Variant vCell;
       for(int i = 2 ; i < nLig ; i ++)
          {
            Data_Module -> Incident -> Insert() ;
     
            vCell = vWorksheet.OlePropertyGet("Cells", i, 2);
            Data_Module -> Incident -> FieldValues["CodeDR"]      = vCell ;
     
            vCell = vWorksheet.OlePropertyGet("Cells", i, 3);
            Data_Module -> Incident -> FieldValues["DR"]          = vCell ;
     
            vCell = vWorksheet.OlePropertyGet("Cells", i, 7);
            Data_Module -> Incident -> FieldValues["Date"]        = vCell ;
     
    ///------------------------------------------------------------------
     
    /// --------- ERREURE DE CONVERTION
            vCell = vWorksheet.OlePropertyGet("Cells", i, 8);
            Data_Module -> Incident -> FieldValues["Heure"] = vCell ;
     
    /// --------- ERREURE DE CONVERTION
            vCell = vWorksheet.OlePropertyGet("Cells", i, 9);
            Data_Module -> Incident -> FieldValues["Duree"]       = vCell ;
     
    ///------------------------------------------------------------------
     
            vCell = vWorksheet.OlePropertyGet("Cells", i, 10);
            Data_Module -> Incident -> FieldValues["Type"]        = vCell ;
     
            vCell = vWorksheet.OlePropertyGet("Cells", i, 11);
            Data_Module -> Incident -> FieldValues["Cause"]       = vCell ;
     
            Data_Module -> Incident -> Post() ;
         }
    Comment s'il vous plait résoudre ce problème.

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut kmaniche:
    La je ne sais pas te repondre mais il y a des tuto qui parlent en VB de lecture/ecriture dans un classeur Excel
    Un lien sur le site:

  3. #3
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Bonjour Blondelle,

    ne seraisse pas un problème de conversion Variant -> Time par exemple.

  4. #4
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    ne seraisse pas un problème de conversion Variant -> Time par exemple.
    Peut etre.
    Une idee peut etre stupide mais ne peut tu pas exporter ta date au format txt?

  5. #5
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Bonjour,

    Peut-tu m'indiquer comment !!

  6. #6
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut kmaniche:
    Tu peu deja essayer de formater les colonnes Heure et duree en Texte dans Excel pour l'export.
    Sinon il est possible de mettre le caractere " ' " en premier exemple " '10h00 " ou " '=SOMME(B1:B4) " ce sera considere comme du texte par Excel et a l'affichage ca le " ' " ne parrait pas je ne sais pas comment se sera considere par Access il faut faire l'essai.

  7. #7
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Bonjour,

    Un indice, le format de colonne "Heure et Durée" est un Text : String

  8. #8
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738

  9. #9
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Re bonjour

    Maintenant quand j'ouvre le fichier Excel, dans les colonnes "Heure" et "Durée" j'ai bien ce que je veux, mais quand je lance une lecture des cellules j'obtiens des valeurs réels (exp: 5,1254542699779)

    Merci d'avance.

  10. #10
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Bonjour,

    OK , j'ai réussi à résoudre ce problème en modifiant le format de la cellule en "text: @" lors de l'enregistrement du fichier excel.

    Merci Blondelle.

  11. #11
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Super quel amusement Excel

  12. #12
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Surtout si on trouve la solution

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

Discussions similaires

  1. Problème avec Excel et Paradox
    Par Ninjodo dans le forum Bases de données
    Réponses: 30
    Dernier message: 05/11/2007, 07h35
  2. Problème avec excel
    Par clo85 dans le forum MATLAB
    Réponses: 2
    Dernier message: 02/07/2007, 13h54
  3. problème avec excell
    Par joooooo dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 06/05/2007, 19h13
  4. Problème avec Excel et tableau croisé dynamique
    Par françois62 dans le forum VBScript
    Réponses: 9
    Dernier message: 19/11/2006, 22h17
  5. [MFC] [CRecordset] Problème avec Excel
    Par Yellowmat dans le forum MFC
    Réponses: 4
    Dernier message: 20/07/2005, 15h24

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