Bonjour tout le monde
Un problème isolé je pense. En espérant que ça parle à quelqu'un...

Voilà ce qui se passe :
J'exporte des tables d'Access vers Excel avec la commande :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, nomTable, cheminFic, True, Right(nomTable, 5)
J'ai plusieurs tables qui vont aboutir à UN fichier avec PLUSIEURS onglets (un par table).
Ensuite je travaille sur mon fichier Excel. Je peux être amené à ajouter un onglet lors de ce traitement.
Une fois que j'ai terminé, j'importe mes modifs dans Access avec la commande :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, nomTable, cheminFic, True, wks.Name
Or, lors de l'import des onglets, j'avais une erreur provoquée par le dernier paramètre lors-qu'arrivait l'import des onglets crées à la main.
Après enquête, je me suis rendu compte que ce que j'utilisais pour prendre ma feuille dans sa globalité était en fait un nom dans Excel.

Après examen de ma feuille Excel je me suis rendu compte que les onglets crées lors de l'export Access->Excel avaient tous trois noms référencés.
Voici la liste complète (je l'ai générée avec ASAP Utilities) :


Comme on peut le voir, les onglets crées à la main (00704, 00705 et 01003) n'ont pas de nom.
J'en ai donc déduit qu'Access les avait crées automatiquement lors de l'export. Et ça m'arrange bien pour mon import ensuite !
Mon souci : lorsque j'essaye de créer un nom équivalent pour les onglets crées à la main avec pour nom '00704', par exemple, il me dit que le nom n'est pas valide.
Parce que si cela avait été possible, j'aurais intercepté l'erreur puis créé en VBA le nom comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
erreur:        ' Routine de gestion d'erreur.
    If err.Number = 3011 Then
        Dim maPlage As String
        maPlage = "='" & wks.Name & "!$A$1:$" & dernCol & "$" & dernLig
        wks.Names.Add wks.Name, maPlage
        Resume
    Else
Or je rencontre la même erreur ("Nom invalide") que lorsque j'avais essayé à la main.

Mes questions :
- Est-ce que je peux demander l'import d'une feuille complète sans avoir à passer par une plage et sans avoir de nom correspondant dans Excel ?
- Pourquoi et comment Access a-t'il créé trois noms pour chaque feuille lors de l'export et à quoi correspondent-ils ?
- Pourquoi Excel ne crée-t'il pas aussi ces trois noms lorsqu'on ajoute une feuille à la main ?
- Quelles options s'offrent à moi pour pouvoir importer tous les onglets dans Access et créer les tables correspondantes si nécessaire ?

Désolé, c'est long parce que détaillé.
En espérant avoir été clair...