Récupérer le contenu de plusieurs feuilles EXCEL

cs_krafft Messages postés 5 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 24 avril 2008 - 23 avril 2008 à 10:28
cs_krafft Messages postés 5 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 24 avril 2008 - 23 avril 2008 à 16:21
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

cs_krafft Messages postés 5 Date d'inscription samedi 9 décembre 2006 Statut Membre Dernière intervention 24 avril 2008
23 avril 2008 à 16:21
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
0
Rejoignez-nous