Récupérer le contenu de plusieurs feuilles EXCEL

Signaler
Messages postés
5
Date d'inscription
samedi 9 décembre 2006
Statut
Membre
Dernière intervention
24 avril 2008
-
Messages postés
5
Date d'inscription
samedi 9 décembre 2006
Statut
Membre
Dernière intervention
24 avril 2008
-
Bonjour tout le monde,

Je vous expose mon problème. J'ai un fichier EXCEL avec plusieurs feuilles remplies de données et j'aimerais récupérer quelques données dans des tables ACCESS afin de les traiter par requêtes dans un outil. J'ai essayé de récupérer les données dans une seule feuille et cela fonctionne parfaitement.

chemin_excel = trouver_dossier_chemin(BasePath()) & "Fichier_temp.xls"
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Add
    Set xlSheet = xlBook.Worksheets.Add
    xlSheet.Name = "Detail"
    xlBook.SaveAs chemin_excel
    xlBook.Close (True)
    xlApp.quit
    Set xlBook = Nothing
    Set xlApp = Nothing
     
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Open(Chemin)
        Set xlBook2 = xlApp.Workbooks.Open(chemin_excel)


        xlBook.Sheets("Détail").Cells.AutoFilter
        xlBook.Sheets("Détail").Cells.AutoFilter Field:=16, Criteria1:="="
        xlBook.Sheets("Détail").Cells.AutoFilter Field:=8, Criteria1:="<>"
        xlBook.Sheets("Détail").Cells.Copy
        xlBook2.Sheets("Detail").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        xlBook.Close (False)
        xlBook2.Close (True)
        xlApp.quit
        Set xlBook = Nothing
        Set xlBook2 = Nothing
        Set xlApp = Nothing
       
    DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel9, "Lien_Fichier_Excel", chemin_excel, True, "Detail!"
 
Avec cela, tout fonctionne bien ! Mais je voudrais récupérer des données aussi dans la feuille "Identification" pour mettre dans une nouvelle table donc j'avais pensé mettre 
        xlBook.Sheets("Identification").Cells.AutoFilter
        xlBook.Sheets("Identification").Cells.AutoFilter Field:=2, Criteria1:="OU"
        xlBook.Sheets("Identification").Cells.Copy
        xlBook2.Sheets("Feuil1").Range("A1").PasteSpecial _
        Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Et dans la deuxième partie : DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel9, "Lien_Fichier_Excel", chemin_excel, True, "Feuil1!"

Mais j'ai une grosse erreur de mise en forme de mon fichier et même les données de la feuille "Détail" ne sont plus copiées du tout. Par contre, deux tables "Lien_Fichier_Excel" sont créées.

Quelqu'un aurait-il une piste s'il vous plait ?

Merci d'avance !

1 réponse

Messages postés
5
Date d'inscription
samedi 9 décembre 2006
Statut
Membre
Dernière intervention
24 avril 2008

C'est bon j'ai trouvé !

Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Open(Chemin)
        Set xlBook2 = xlApp.Workbooks.Open(chemin_excel)


        xlBook.Sheets("Détail").Cells.AutoFilter
        xlBook.Sheets("Détail").Cells.AutoFilter Field:=16, Criteria1:="="
        xlBook.Sheets("Détail").Cells.AutoFilter Field:=8, Criteria1:="<>"
        xlBook.Sheets("Détail").Cells.Copy
        xlBook2.Sheets("Detail").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        xlBook.Sheets("Identification").Range("A3:A58").Copy
        xlBook2.Sheets("Feuil1").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
        xlBook.Sheets("Identification").Range("B3:B58").Copy
        xlBook2.Sheets("Feuil1").Range("A2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
        xlBook.Close (False)
        xlBook2.Close (True)
        xlApp.quit
        Set xlBook = Nothing
        Set xlBook2 = Nothing
        Set xlApp = Nothing