Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Transfert de table de Access vers Excel

5 réponses
Avatar
ledebelair
Bonjour,
Je réalise des tableaux de bord sous ACCESS et chaque jour, j'envoie dans
Excel la dernière version. Cet envoi se fait par la fonction
transferspreadsheet.
En principe, chaque jour la nouvelle table écrase la précédente. Mais
aujourd'hui au lieu d'écraser la précédente, elle ajoute un nouveau feuillet
et remplace un nom type "tableau_de_bord_garage" par "tableau_de_bord_garag1".
Si quelqu'un peut me dire comment imposer à excel de remplacer un feuillet
ou d'en ajouter un, cela m'aiderait beaucoup.
Merci par avance et bonne deuxième partie de fêtes de fin d'année.

5 réponses

Avatar
Laurent DUB
Bonjour,
ton fichier excel devait être ouvert lorsque tu as lancé ton
transferspreadsheet
dans mon cas,je regarde si le fichier est ouvert si oui msgbox et exit sub
si non, tranferspreadsheet.....
cdlt
Lr Db

"ledebelair" a écrit dans le message
de news:
Bonjour,
Je réalise des tableaux de bord sous ACCESS et chaque jour, j'envoie dans
Excel la dernière version. Cet envoi se fait par la fonction
transferspreadsheet.
En principe, chaque jour la nouvelle table écrase la précédente. Mais
aujourd'hui au lieu d'écraser la précédente, elle ajoute un nouveau
feuillet
et remplace un nom type "tableau_de_bord_garage" par
"tableau_de_bord_garag1".
Si quelqu'un peut me dire comment imposer à excel de remplacer un feuillet
ou d'en ajouter un, cela m'aiderait beaucoup.
Merci par avance et bonne deuxième partie de fêtes de fin d'année.



Avatar
ledebelair
Merci pour ta réponse.
Le fichier excel destinataire était bien fermé.
As-tu d'autres idées ?


Bonjour,
ton fichier excel devait être ouvert lorsque tu as lancé ton
transferspreadsheet
dans mon cas,je regarde si le fichier est ouvert si oui msgbox et exit sub
si non, tranferspreadsheet.....
cdlt
Lr Db

"ledebelair" a écrit dans le message
de news:
Bonjour,
Je réalise des tableaux de bord sous ACCESS et chaque jour, j'envoie dans
Excel la dernière version. Cet envoi se fait par la fonction
transferspreadsheet.
En principe, chaque jour la nouvelle table écrase la précédente. Mais
aujourd'hui au lieu d'écraser la précédente, elle ajoute un nouveau
feuillet
et remplace un nom type "tableau_de_bord_garage" par
"tableau_de_bord_garag1".
Si quelqu'un peut me dire comment imposer à excel de remplacer un feuillet
ou d'en ajouter un, cela m'aiderait beaucoup.
Merci par avance et bonne deuxième partie de fêtes de fin d'année.








Avatar
FFO
Salut à toi

J'utilise moi aussi cette procédure pour enregistrer des données dans un
document Excel
Tu as du intervenir dans ton feuillet en modifiant un élément clé nécessaire
à Access pour reconnaitre ce feuillet et d'écraser les données existantes par
les nouvelles
D'où son action de création d'un nouveau feuillet à défaut de celui qui
l'attendait et de le nommer avec le nom de ta table suivi d'un chiffre (1
pour l'exemple) car le nom brut de la table était déjà utilisé dans le
fichier Excel par celui qui existe (il ne peux y avoir 2 onglets avec le même
nom)

Si tu veux revenir à la situation normal (Ta table avec 1 feuillet intitulé
tableau_de_bord_garage) supprime le fichier Excel et laisse Access en recréer
un nouveau avec le feuillet que tu attends
Puis les transferts suivants s'intègreront comme de coutume dans ce feuillet

Mais attention de ne pas intervenir dans ce fichier de destination pour
modifier n'importe quoi au risque de reproduire l'anomalie

Espérant t'avoir éclairci le pourquoi du comment



Bonjour,
Je réalise des tableaux de bord sous ACCESS et chaque jour, j'envoie dans
Excel la dernière version. Cet envoi se fait par la fonction
transferspreadsheet.
En principe, chaque jour la nouvelle table écrase la précédente. Mais
aujourd'hui au lieu d'écraser la précédente, elle ajoute un nouveau feuillet
et remplace un nom type "tableau_de_bord_garage" par "tableau_de_bord_garag1".
Si quelqu'un peut me dire comment imposer à excel de remplacer un feuillet
ou d'en ajouter un, cela m'aiderait beaucoup.
Merci par avance et bonne deuxième partie de fêtes de fin d'année.



Avatar
LSteph
Bonsoir,

Pourquoi ne pas utiliser un mode passif et indépendant?!

Dans Access fait une requête création de table au lieu de générer un
fichier excel.

Dans excel depuis ton classeur passe par le menu données pour te
connecter à la table et alimenter ta plage de données dans la feuille.

Cordialement.

--
lSteph

Bonjour,
Je réalise des tableaux de bord sous ACCESS et chaque jour, j'envoie dans
Excel la dernière version. Cet envoi se fait par la fonction
transferspreadsheet.
En principe, chaque jour la nouvelle table écrase la précédente. Mais
aujourd'hui au lieu d'écraser la précédente, elle ajoute un nouveau feuillet
et remplace un nom type "tableau_de_bord_garage" par "tableau_de_bord_garag1".
Si quelqu'un peut me dire comment imposer à excel de remplacer un feuillet
ou d'en ajouter un, cela m'aiderait beaucoup.
Merci par avance et bonne deuxième partie de fêtes de fin d'année.



Avatar
Laurent DUB
Bonjour,
Tiens, c'est la fin de l'année.....
j'utilise ce code.
attention, je débute en vba il y a certainement des erreurs pour les
puristes
'------------------------------------------------
Dim appExcel As Excel.Application
Dim wbkCommandes As Excel.Workbook
Dim wbsCommandes As Excel.Worksheet
modele_chrono = "G:AdministrationAnalysebilanheuressemaine.xls"
With appExcel.Application
.Visible = False 'faire hyper attention car excel tourne mais pas
visible il faut aller voir ds le 'gestionnaire des taches pour le voir
.Workbooks.Open modele_chrono
.Worksheets(1).Select
End With

'le xls est sur serveur et plrs pers peuvent l'ouvrir
If appExcel.ActiveWorkbook.ReadOnly Then
appExcel.Application.DisplayAlerts = False
appExcel.ActiveWorkbook.Close
appExcel.Quit
MsgBox "Le fichier Excel est en cours d'utilisation", vbCritical
DoCmd.Close
Exit Sub
End If
'effacement des données existantes ds la feuille
appExcel.Application.Worksheets("T_export").Select

appExcel.Application.Cells.Select
appExcel.Application.Selection.ClearContents
appExcel.Application.Range("A1").Select

appExcel.Application.DisplayAlerts = False
appExcel.Application.Worksheets(1).Select
appExcel.Application.ActiveWorkbook.Save
appExcel.Workbooks.Close
appExcel.Quit
'lancement du transfert T_Export est la table
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "T_Export",
modele_chrono
set machin = nothing......
'-----------------------------------------------


cldt
Lr Db


"ledebelair" a écrit dans le message
de news:
Merci pour ta réponse.
Le fichier excel destinataire était bien fermé.
As-tu d'autres idées ?


Bonjour,
ton fichier excel devait être ouvert lorsque tu as lancé ton
transferspreadsheet
dans mon cas,je regarde si le fichier est ouvert si oui msgbox et exit
sub
si non, tranferspreadsheet.....
cdlt
Lr Db

"ledebelair" a écrit dans le
message
de news:
Bonjour,
Je réalise des tableaux de bord sous ACCESS et chaque jour, j'envoie
dans
Excel la dernière version. Cet envoi se fait par la fonction
transferspreadsheet.
En principe, chaque jour la nouvelle table écrase la précédente. Mais
aujourd'hui au lieu d'écraser la précédente, elle ajoute un nouveau
feuillet
et remplace un nom type "tableau_de_bord_garage" par
"tableau_de_bord_garag1".
Si quelqu'un peut me dire comment imposer à excel de remplacer un
feuillet
ou d'en ajouter un, cela m'aiderait beaucoup.
Merci par avance et bonne deuxième partie de fêtes de fin d'année.