Import excel vers acess avec une partie de chaine de caractère [Résolu]

Signaler
-
Messages postés
12656
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 octobre 2020
-
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

Messages postés
12656
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 octobre 2020
703
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.
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
Messages postés
12656
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 octobre 2020
703
plutôt, alors:
DoCmd.TransferSpreadsheet acImport, 10, "onglet2" , filepath, True, nomonglet + "!A9:H15" 
merci cela fonctionne
Messages postés
12656
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 octobre 2020
703
peux-tu alors marquer la discussion comme résolue?