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

VB 6 et antérieur Discussion :

[VB6]PB d'importation d'un feuille Excel dans une MSFlexGrid


Sujet :

VB 6 et antérieur

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 2
    Points
    2
    Par défaut [VB6]PB d'importation d'un feuille Excel dans une MSFlexGrid
    Bonjour!

    Je cherche à importer une feuille Excel dans une MSFlexGrid.

    Pour cela, j'ai utilisé la démarche suivante :

    - Création sur ma form d'un controle Data (Data1) avec les propriétés suivantes :

    • - Connect Excel 8.0
      - DataBaseName maBase.xls
      - RecordsetType Table
      - DefaultType Use Jet
      - RecordSource Feuil1


    - Création d'une MSFlexGrid (grdExcel) avec la propriété suivante :
    • - DataSource Data1


    Ma MSFlexGrid contient bien la feuille Excel, MAIS j'ai un problème avec certaines colonnes.
    Si une colonne possède des cellules avec uniquement des chiffres et d'autres mélangeant les deux, un seul type de données est affichée dans la grille.

    Ex: colonne contenant :
    • 1
      2
      plus de 50
      31

    -> Seuls les chiffres seront récupérés
    -> Si ma colonne commence (ligne d'entete exclue) par de l'alphanumérique, seules les données
    alphanumériques sont affichées.
    C'est pénible !

    J'espère que qqn pourra m'aider...

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    En utilisant Jet tu auras toujours le problème car il va chercher le typage des colonnes. Dans ton cas, tu dois passer par un copier/coller d'excel vers la grille et/ou inversement

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    En fait, j'utilisais Jet car l'affichage se faisait rapidement, presque instantané.

    J'avais essayé auparavant de remplir ma grille en ouvrant le fichier Excel dans mon code et en faisant ensuite deux boucles For imbriquées (lignes et colonnes).

    Mais le traitement était incroyablement LENT !!!

    Je ne sais pas ce que tu entends par "copier/coller", il faudrait que tu m'expliques un peu +, s'il te plait.

    Merci

  4. #4
    Expert éminent
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Points : 7 962
    Points
    7 962
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim xlapp As Excel.Application, feuille As Excel.Worksheet, Plage As Excel.Range
    Set xlapp = New Excel.Application
    xlapp.Workbooks.Open "d:\user\test.xls"
    Set feuille = xlapp.ActiveSheet
    Set Plage = feuille.Range("A1").CurrentRegion
    With Me.MSHFlexGrid1
        .Cols = Plage.Columns.Count
        .Rows = Plage.Rows.Count
        .Col = 0
        .ColSel = .Cols - 1
        .RowSel = .Rows - 1
        Plage.Copy
        .Clip = Clipboard.GetText
    End With

  5. #5
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    OK, je vais essayer ça!

    Merci !

  6. #6
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Ca a l'air de marcher !

    Encore merci!

  7. #7
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    bah j'ai testé ce bout de code chez moi et ça veut pas marcher.. il me dit erreur de compilation, méthode ou membre de données introuvables...
    pourquoi que ça veut pas marcher? aurais-je oublier une librairie a inclure ou autre chose de ce genre ?

  8. #8
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Chico,

    As-tu bien inclus la librairie permettant d'utiliser Excel à travers VB? (dans le menu : Project/References -> Microsoft Excel 8.0 Object Library)

  9. #9
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    oué j'ai inclus Excel c la 9.0...

  10. #10
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Quand tu fais du pas à pas (touche F8 ), où se produit l'erreur?

  11. #11
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    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
     
    Dim xlapp As Excel.Application, feuille As Excel.Worksheet, Plage As Excel.Range
    Set xlapp = New Excel.Application
    xlapp.Workbooks.Open (Me.txt_fileExcel)
    Set feuille = xlapp.ActiveSheet
    Set Plage = feuille.Cells(1, 1).CurrentRegion
    With Me.MSF
        ==> erreur ==> .Cols = Plage.Columns.Count
        .Rows = Plage.Rows.Count
        .Col = 0
        .ColSel = .Cols - 1
        .RowSel = .Rows - 1
        Plage.Copy
        .Clip = Clipboard.GetText
    End With
    en fait il ne veux pas me trouver .Cols, .Rows, c'est comme si ça existait pas.. pourtant mas flexgrid existe c'est ça que je compren pas

  12. #12
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    As-tu essayé avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Plage = shtContinent.Range("A1").CurrentRegion

  13. #13
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    bah la il me di qu'il connais pas shtContinent... je m'en sors plus de tout ça moi.. par hasard t'a pas MSN ce serait plus simple pour parler...
    sinon tu pe me dire ce que je dois inclure exactement comme librairies parce que moi j'en ai mis quelques unes mais peut-etre que y'en a trop et que ça fait tout couiller je cpas..

  14. #14
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    C'est ma feuille Excel, désolé !

  15. #15
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    lol... bah de toute façon ça change rien il me met toujours la meme erreur sur .Cols
    bon la quand meme a un truc qui va pas

  16. #16
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Rassure-moi, quand tu tapes ton ".", il te propose bien la liste des propriétés et méthodes disponibles sur ton MSF?

    Paske là, je vois plus q'un PB de faute de frappe sur le nom de ta grille dans ton code!!

  17. #17
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    bah non justement il me les propose pas..
    quand je fais me. il me trouve la flexgrid
    mais quand je fais me.MSF. il me trouve rien pour MSF qui est le nom de ma flexgrid alor je c pas pourquoi il ve pas me trouver les propriétés..

  18. #18
    Candidat au Club
    Inscrit en
    Avril 2004
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 10
    Points : 2
    Points
    2
    Par défaut
    Bon, bah, désolé, je vois plus, là!

    Bon courage quand meme!!

  19. #19
    Membre régulier
    Inscrit en
    Avril 2004
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 104
    Points : 85
    Points
    85
    Par défaut
    c'est le binz... et les admins ils sont pas la en plus ou je sais pas quoi parce que c'est quand meme hyper important..

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

Discussions similaires

  1. Comment importer une feuille Excel dans une table Access existante?
    Par ac264 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/09/2010, 12h28
  2. importer feuille excel dans une base de données sql server
    Par abdelmajid_daosabah dans le forum ASP.NET
    Réponses: 5
    Dernier message: 05/05/2008, 13h37
  3. Importer une feuille excel dans une Form
    Par piepio dans le forum Windows Forms
    Réponses: 3
    Dernier message: 24/02/2007, 09h37
  4. Réponses: 9
    Dernier message: 30/05/2006, 17h55
  5. Importer une feuille excel dans une table Paradox ?
    Par Dalgo75 dans le forum Bases de données
    Réponses: 8
    Dernier message: 07/05/2006, 11h49

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