Import excel vers acess avec une partie de chaine de caractère

Résolu
wil2168 -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour

je souhaite sélectionner les données dans un onglet d'une feuille excel
le problème est que le nom de la feuille se compose d'une partie fixe et d'une partie variable
je n'arrive pas à demander à acces d'importer les données de l'onglet uniquement en prenant en compte la partie fixe du nom de l'onglet

le nom de ma feuille est : onglet2 (75)
onglet2 est la partie fixe
(75) est la partie variable

je souhaite importer les données uniquement en prenant en compte onglet2 qui est la partie fixe

j'ai le code ci-dessous pouvez vous m'aider à l'adapter

Private Sub import_excel_onglet_2_Click()

Dim filepath As String
Dim qty_data_file As Double

filepath = "C:\Users\HP\Documents\access_exo\import_excel_vers_access.xlsx"

'ajout data du fichier excel
DoCmd.TransferSpreadsheet acImport, 10, "test_onglet2", filepath, True, "onglet2!A9:H15"

end sub

cdt

3 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, moi j'essaierai ceci:
    Dim filepath As String, nomonglet As String, wb As excel.Workbook, ws As excel.Worksheet
    filepath = "C:\Users\HP\Documents\access_exo\import_excel_vers_access.xlsx"
    Set wb = excel.Workbooks.Open(filepath)
    For Each ws In wb.Worksheets
        If InStr(ws.Name, "onglet2") = 1 Then
            nomonglet = ws.Name
            wb.Close
            DoCmd.TransferSpreadsheet acImport, 10, nomonglet, filepath, True, "onglet2!A9:H15"
            Exit For
        End If
    Next ws

    pour lequel tu devras ajouter "Microsoft Excel nn Object Library" dans les références du projet.
    1
  2. wil2168
     
    Bonjour

    je te remercie pour ta réponse
    la partie "InStr(ws.Name, "onglet2") = 1" fonctionne bien
    pour la variable "nomonglet" elle récupère le nom de l 'onglet avec la partie fixe et la partie variable. Ceci entraine un message d'erreur à ce niveau
    DoCmd.TransferSpreadsheet acImport, 10, nomonglet, filepath, True, "onglet2!A9:H1

    ce message est du au faite que ma table porte le nom de la partie fixe uniquement
    je me pose également des questions pour la partie "onglet2!A9:H15" . elle peut engendré des erreurs egalement car "onglet2" est la partie fixe de la feuille
    1
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      plutôt, alors:
      DoCmd.TransferSpreadsheet acImport, 10, "onglet2" , filepath, True, nomonglet + "!A9:H15" 
      0
  3. wil2168
     
    merci cela fonctionne
    1
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      peux-tu alors marquer la discussion comme résolue?
      0