Import dbf sur Excel

lagombe -  
 Mathieu -
Bonjour à tous,

voilà je souhaite importer une base .dbf sur Excel. Jusque là pas trop de problème, sauf que ma base fait plus de 65536 lignes et donc du coup je perds une partie de mes enregistrements... J'ai installé Query et j'ai essayé de faire des requêtes pour importer la base par morceaux sur +ieurs onglets mais ça marche pas... ou du moins je m'y prends mal... Si qq'un peut m'aider...

3 réponses

  1. aabricotier
     
    tu pourais peut etre le faire avec Ms Access
    1
  2. aabricotier
     
    Salut .

    Par DBF vous voulez dire un fichier Dbase ??
    0
    1. lagombe
       
      Exact, par fichier .dbf j'entends un fichier Dbase. Peut-être une solution?
      0
      1. aabricotier > lagombe
         
        salut

        pourquoi ne pas decouper votre fichier en d'autres fichiers dont le nombre d'enregistrement inferieur au nombre autorisé par excel

        et les importer un par un
        0
      2. lagombe > aabricotier
         
        Re,

        Ce serait une bonne idée malheureusement je ne sais pas quel logiciel fait ça sur un fichier Dbase, et j'aurais aimé pouvoir resté sur Excel avec du code VBA qui m'aurait permis de changer de feuille au dépassement de lignes...
        0
      3. Mathieu > aabricotier
         
        j'ai trouvé la réponse sur ce site : une macro VBA qui créé à la suite des feuilles pour ne pas dépasser 65536 lignes par feuilles !!!

        bonne suite !

        Attribute VB_Name = "ImportVeryBigTextFile2"

        'Importer dans un classeur un fichier texte de grande taille
        '(version 2)
        'Bernie Dietrick, mpep

        Sub LargeFileImport_v2()
        'Bernie Detrick's code for opening vary large text files in Excel
        'Dimension Variables
        Dim ResultStr As String
        Dim FileName As String
        Dim FileNum As Integer
        Dim Counter As Double

        'Ask User for File's Name
        FileName = Application.GetOpenFilename
        'Check for no entry
        If FileName = "" Then End
        'Get Next Available File Handle Number
        FileNum = FreeFile()
        'Open Text File For Input
        Open FileName For Input As #FileNum
        'Turn Screen Updating Off
        Application.ScreenUpdating = False
        'Create A New WorkBook With One Worksheet In It
        Workbooks.Add Template:=xlWorksheet
        'Set The Counter to 1
        Counter = 1
        'Loop Until the End Of File Is Reached
        Do While Seek(FileNum) <= LOF(FileNum)
        'Display Importing Row Number On Status Bar
        Application.StatusBar = "Importing Row " & Counter & _
        " of text file " & FileName
        'Store One Line Of Text From File To Variable
        Line Input #FileNum, ResultStr
        'Store Variable Data Into Active Cell
        If Left(ResultStr, 1) = "=" Then
        ActiveCell.Value = "'" & ResultStr
        Else
        ActiveCell.Value = ResultStr
        End If
        If ActiveCell.Row = 65536 Then
        'If On The Last Row Then Add A New Sheet
        ActiveWorkbook.Sheets.Add
        Else
        'If Not The Last Row Then Go One Cell Down
        ActiveCell.Offset(1, 0).Select
        End If
        'Increment the Counter By 1
        Counter = Counter + 1
        'Start Again At Top Of 'Do While' Statement
        Loop
        'Close The Open Text File
        Close
        'Remove Message From Status Bar
        Application.StatusBar = False
        End Sub
        0
  3. lagombe
     
    OK, ça fonctionne mais j'aurais aimé rester sur Excel, dans une seule appli...
    0
    1. aabricotier
       
      a partir de là, vous pouvez faire des selction sur votre table et transfere les donnees sur une page excel ('copy , cole' )
      0
      1. lagombe > aabricotier
         
        Oui, oui, j'ai bien compris... mais j'aurais aimé avoir une solution qui me permette de rester sur Excel... Existe-t-elle, ça c'est une autre question? ;-)
        0