Lire un fichier excel sous vb

pikatchou -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
bonjour les gens

je voudrais savoir qu'elle est la ligne de commande pour lire des lignes spécifiques d'un fichier excel sous vb

merci!!!

8 réponses

  1. Dimandja
     
    Un objet Excel et Sheet:

    Dim oXL As Excel.Application
    Dim oBook As Excel.Workbook
    Dim oSheet As Excel.Worksheet
    Dim numFields As Integer
    Dim numRows As Integer
    Dim curField As Integer
    Dim curRow As Integer

    oXL = New Excel.Application
    oBook = oXL.Workbooks.Open(c:\fichier.xls)
    oXL.Visible = False

    ' compte les champs
    While Not (oBook.ActiveSheet.Cells(1, numFields + 1).value Is MyNull)
    numFields = numFields + 1
    End While

    ' compte les lignes
    While Not (oBook.ActiveSheet.Cells(numRows + 1, 1).value Is MyNull)
    numRows = numRows + 1
    End While

    ' lecture
    For curRow = 1 To numRows
    For curField = 1 To numFields
    LineIn = LineIn & oBook.ActiveSheet.Cells(curRow, curField).Value
    Next curField
    LineIn = “”
    Next curRow

    oBook.Close()
    oXL = Nothing
    34
    1. pikatchou
       
      merci de votre aide
      bonne journée!!
      0
    2. ZobyOne Messages postés 1 Statut Membre
       
      Moi aussi je cherche a lire des infos dans un fichier Excel,
      mais je debute en VB
      Quelqu'un pourrait-il m'expliquer un peu mieux?

      merci d'avance
      0
      1. WhiteFang Messages postés 2063 Statut Membre 204 > ZobyOne Messages postés 1 Statut Membre
         
        ;-)

        Pour cela, il te faut déjà bien connaître Excel, et surtout, ses objets, et aussi avoir de bonnes connaisssances en anglais...

        Ensuite, il te suffit de traduire de que tu fais sous Excel en Anglais.... Un classeur, c'est l'objet Workbooks, une feuille, Sheets, une cellule, Cells.... Etc...

        De là, utilise la logique...

        Utiliser une autre appli ? Faut créer une session, pour pouvoir utiliser ses objets... Dim AppliExcel As New Excel.Application... Là, une nouvelle session Excel est crée (pour ne pas utiliser une éventuelle session existante... Ce qui mettrais le dawa...)

        Ensuite, tout s'enchaine : AppliExcel.Workbooks.Open...

        Et l'idéal, est d'utiliser des varaibles objets, style :

        AppliExcel.Workbooks.Open(xxx)
        Set MonExcel=AppliExcel.ActiveWorkbook.sheets(1)

        Il ne te reste qu'a faire tes boucles et autres traitements !!

        MonExcel.Cells(L,C)......

        N'oublie pas,en fin :

        AppliExcel.ActiveWorkbook.Close (true ou false si tu veux enregistrer...)
        AppliExcel.Quit

        ;-)


        Wild and Free
        0
    3. amalex
       
      Je vois que le poste n'est pas tous recent mais j'essaye de faire un export de mes données excel dans un datagridview et etant debutant j'ai pris l'exemple de Dimandja mais je ne vois pas a quoi correspond MyNull ( jdois je le remplacer par null ?? ) et Linein ( faut le remplacer par Curline ???)


      Merci pour vos reponse
      0
  2. WhiteFang Messages postés 2063 Statut Membre 204
     
    ;-)

    Pour répondre au post initial :

    Dim AppliExcel As New Excel.Application
    (cela va créer une nouvelle session Excel)

    Dim NomFichier

    NomFichier=AppliExcel.GetOpenFileName xxxxx
    (où xxx sera un chemin vers un xls existant)

    AppliExcel.Workbooks.Open NomFichier

    Dim DerLne, DerCol, ClasseurActif, FeuilleActive

    Set ClasseurActif=AppliExcel.ActiveWorkbook.Name

    Set FeuilleActive=ClasseutActif.ActiveSheet.Name

    Derlne=FeuilleActive.ActiveCell.SpecialCells(XlcelltypeLastCell).Row
    DerCol=(idem, mais en récupérant).Column

    Là, tu a tout ce qu'il te faut pour lire la feuille active....

    Une boucle For, par exemple.... ;-)

    ;-)
    Wild and Free
    4
  3. baatanass
     
    merci c 'est très intérisant mais si je veux cliqué sur un bouton et le fichier excel s'ouvre comment je vais faire
    2
  4. mirza
     
    Hello

    2 solutions (je les connais mal ..)

    -soit utiliser de RecordSet et un appel à ODBC
    -soit utiliser un objetc Excel et Sheet
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. WhiteFang Messages postés 2063 Statut Membre 204
     
    ;-)

    Pour répondre aussi à Dimadja : La variable d'application :

    ActiveCell.SpecialCells(XlCellTypeLastCell).Row où Column

    t'évitera pas mal de très lourdes boucles While machin, qui ne sont pas très usités quand on fait du VB, sauf sous la torture !! ;-)))))) Le dev, le dev, fô aller à l'essentiel !! ;-) En toute amitié !! ;-)

    ;-)

    Wild and Free
    1
  7. dj_jillustre
     
    Quel est la version de VB pour ce code
    1
  8. baatanass
     
    bonjour,
    merci pour votre aide sa me donne un espoir de continué mes recherche
    pourquoi personne ne m'aide

    merci pour tous
    0
    1. derien
       
      comment fait-on pour ouvrir un fichier excel sur VB (sharp develop) avec openfile.dialog
      celui qui répond aura un bonbon
      0
      1. switch > derien
         
        Dim fd As OpenFileDialog = New OpenFileDialog()
        Dim strFileName As String

        fd.Title = "Open File Dialog"
        fd.InitialDirectory = "C:\"
        fd.Filter = "All files (*.xls*)|*.xls*|All files (*.xls*)|*.xls*"
        fd.FilterIndex = 2
        fd.RestoreDirectory = True

        If fd.ShowDialog() = DialogResult.OK Then
        strFileName = fd.FileName
        FileSelect.Text = fd.FileName
        End If
        0
    2. Ludovic1988 Messages postés 18 Statut Membre
       
      Bonjour,

      J'essaye d'appliquer ce qui est expliqué ci-dessus à mon code VB mais ca ne marche pas! lorsque je tape "excel.application" , VB mentionne une erreur et me propose d'autres syntaxes comme par exemple : " Microsoft.Office.Interop.Excel.application".

      Sur le tutoriel de développez.com, j'ai lu qu'il fallait rajouter le COM Microsoft Excel x.x. Ce que j'ai fait. Pour être précis, j'ai rajouté le COM "Microsoft Excel 15.0 Object Library". J'imagine que c'est le même que celui mentionné dans le tutoriel.

      Voilà, je ne sais pas comment corriger cette erreur.
      0