Lancer un modèle excel depuis access
thg
-
thg -
thg -
Bonjour,
Je lance une macro depuis access avec exécuter une application;
dans la ligne de commande je donne le chemin excel.exe puis espace avec le chemin du modèle modèle .xltm qui doit me permetttre de créer un nouveau classeur.
PROBLEME: j'obtiens l'ouverture du modèle lui-même mais non pas la création d'un nouveau document issu de ce modèle.
Ligne de commande utilisée:
"C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" C:\Users\utilisateur\Desktop\AdlatusMandats\AttributionMandatAdlatus2.xltm
Merci pour votre aide.
th. godel
Je lance une macro depuis access avec exécuter une application;
dans la ligne de commande je donne le chemin excel.exe puis espace avec le chemin du modèle modèle .xltm qui doit me permetttre de créer un nouveau classeur.
PROBLEME: j'obtiens l'ouverture du modèle lui-même mais non pas la création d'un nouveau document issu de ce modèle.
Ligne de commande utilisée:
"C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" C:\Users\utilisateur\Desktop\AdlatusMandats\AttributionMandatAdlatus2.xltm
Merci pour votre aide.
th. godel
A voir également:
- Lancer un modèle excel depuis access
- Liste déroulante excel - Guide
- Modèle organigramme word - Guide
- Word et excel gratuit - Guide
- Trier un tableau excel - Guide
- Modèle feuille de pointage excel gratuit - Télécharger - Tableur
22 réponses
Bonjour,
Au passage, l'extension du fichier: AttributionMandatAdlatus2.xltm
devrait-être xlsm ou xlsx ...!
Au passage, l'extension du fichier: AttributionMandatAdlatus2.xltm
devrait-être xlsm ou xlsx ...!
Bonjour,
Dans l'ordre d'ouverture du classeur il devrait être
Salutations.
Le Pingou
Dans l'ordre d'ouverture du classeur il devrait être
.... Workbooks.Add (adrexcel)au lieu de
... Workbooks.Open(adrexcel)
Salutations.
Le Pingou
Bonjour,
J'utilise les macros (prédéfinies) d'access avec un choix d'actions possibles:
- je choisis "exécuter application" (qui n'est disponible que si on demande d'afficher toutes les actions)
- ensuite j'ai une ligne de commande que je remplis avec
"C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" C:\Users\utilisateur\Desktop\AdlatusMandats\AttributionMandatAdlatus2.xltm
soit commande lancement excel, puis commande ouverture fichier.
Si j'utilise cette ouverture fichier dans le répertoire où il se trouve, j'obtiens un nouveau document avec nom du modèle initial +chiffre1 + xlsx losque je vais l'enregistrer (comme le ferait un modèle word avec document1, ou document2...)
avec le lancement via access j'obtiens l'ouverture du modèle, sous son nom (comme si j'ouvrais un modele.dot dans word).
comme ma commande dans access n'est pas issue de code VB, j'aimerais trouver la commande qui précise que je veux créer un nouveau doc et s'inclut dans la ligne donnée plus haut avec ouv. access + ouverture fichier
ou alors une ligne de code entière qui remplace complètement ma macro...
BUT: lancer un classeur excel qui utilise avec mise à jour les éléments que j'ai préparé dans access et figure dans une table créée et mise à jour à cet effet.
merci.
thg
J'utilise les macros (prédéfinies) d'access avec un choix d'actions possibles:
- je choisis "exécuter application" (qui n'est disponible que si on demande d'afficher toutes les actions)
- ensuite j'ai une ligne de commande que je remplis avec
"C:\Program Files\Microsoft Office\Office12\EXCEL.EXE" C:\Users\utilisateur\Desktop\AdlatusMandats\AttributionMandatAdlatus2.xltm
soit commande lancement excel, puis commande ouverture fichier.
Si j'utilise cette ouverture fichier dans le répertoire où il se trouve, j'obtiens un nouveau document avec nom du modèle initial +chiffre1 + xlsx losque je vais l'enregistrer (comme le ferait un modèle word avec document1, ou document2...)
avec le lancement via access j'obtiens l'ouverture du modèle, sous son nom (comme si j'ouvrais un modele.dot dans word).
comme ma commande dans access n'est pas issue de code VB, j'aimerais trouver la commande qui précise que je veux créer un nouveau doc et s'inclut dans la ligne donnée plus haut avec ouv. access + ouverture fichier
ou alors une ligne de code entière qui remplace complètement ma macro...
BUT: lancer un classeur excel qui utilise avec mise à jour les éléments que j'ai préparé dans access et figure dans une table créée et mise à jour à cet effet.
merci.
thg
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Merci pour l'information, donc pas de VBA.
Quelle version Access et Excel ?
Pouvez-vous faire une copie d'écran de la macro en mode création ?
Merci.
Salutations.
Le Pingou
Merci pour l'information, donc pas de VBA.
Quelle version Access et Excel ?
Pouvez-vous faire une copie d'écran de la macro en mode création ?
Merci.
Salutations.
Le Pingou
Bonjour,
Un exemple de procédure pour enregistrer des données Access vers Excel :
Salutations.
Le Pingou
Un exemple de procédure pour enregistrer des données Access vers Excel :
Sub EngVersExcel_ouvre_classeur()
Dim cdb As DAO.Database
Dim rstcha As DAO.Recordset
Dim strSQL As String
Dim xlapp As Excel.Application
Dim chemin As String
chemin = "C:\Users\utilisateur\Desktop\AdlatusMandats "
repclasseur = chemin & "\AttributionMandatAdlatus2.xltm "
Set xlapp = CreateObject("Excel.Application")
' partie lire data access
Set cdb = CurrentDb
strSQL = "SELECT * FROM T_InitialisationAnnees" & _
" WHERE T_InitialisationAnnees.Identification = " & Chr(34) & Form_F_InitConge.Matricule & Chr(34)
Set rstcha = cdb.OpenRecordset(strSQL)
Dim c As Byte
'partie Excel
With xlapp
.Workbooks.Add repclasseur
.Visible = True
.Range("A2:C15").Delete
'Tant que non fin du recordset
While Not rstcha.EOF
'Passer au suivant
.Range("A" & 2 + c) = rstcha.Fields(0)
.Range("B" & 2 + c) = rstcha.Fields(1)
.Range("C" & 2 + c) = rstcha.Fields(2)
rstcha.MoveNext
c = c + 1
Wend
End With
Set cdb = Nothing
Set rstcha = Nothing
Set exapp = Nothing
End Sub--
Salutations.
Le Pingou
Bonjour,
Via https://www.cjoint.com/ ou http://www.cijoint.fr/ et poster le lien.
Salutations.
Le Pingou
Via https://www.cjoint.com/ ou http://www.cijoint.fr/ et poster le lien.
Salutations.
Le Pingou
OK.
Voici la copie écran
http://www.cijoint.fr/cjlink.php?file=cj201103/cijy0acUca.doc
Merci
Cordialement
Voici la copie écran
http://www.cijoint.fr/cjlink.php?file=cj201103/cijy0acUca.doc
Merci
Cordialement
Bonjour,
Merci pour les informations.
Je vous propose de faire comme suit (je l'ai testé sans marche):
Placer la procédure dans un module et vous la déclencher depuis un bouton de commande (par événement sur clic) :
Salutations.
Le Pingou
Merci pour les informations.
Je vous propose de faire comme suit (je l'ai testé sans marche):
Placer la procédure dans un module et vous la déclencher depuis un bouton de commande (par événement sur clic) :
Sub OuvrirClasseurSelonModele()
Dim Xl As Excel.Application
Dim Classeur As Excel.Workbook
Dim Feuille As Excel.Worksheet
'Ouvre un nouveau classeur selon modèle
Set Xl = New Excel.Application
Xl.Visible = True
chemin = "C:\Users\utilisateur\Desktop\AdlatusMandats "
repclasseur = chemin & "\AttributionMandatAdlatus2.xltm "
Set Classeur = Xl.Workbooks.Add(repclasseur)
Classeur.Worksheets("Feuil3").Activate
Set Feuille = Classeur.Worksheets("Feuil3")
End Sub--
Salutations.
Le Pingou
Merci pour les lignes de code.
Mais j'obtiens message d'erreur:
Erreur compilation
Type défini par utilisateur non défini.
copie écran
http://www.cijoint.fr/cjlink.php?file=cj201103/cij3ilhp0Q.jpg
Mais j'obtiens message d'erreur:
Erreur compilation
Type défini par utilisateur non défini.
copie écran
http://www.cijoint.fr/cjlink.php?file=cj201103/cij3ilhp0Q.jpg
Merci. Franchi une étape mais problème avec la propriété Add
Désolé...
ecran1
http://www.cijoint.fr/cjlink.php?file=cj201103/cijCEheAQ2.jpg
ecran2
http://www.cijoint.fr/cjlink.php?file=cj201103/cijwNvmTDM.jpg
Salutations.
thg
Désolé...
ecran1
http://www.cijoint.fr/cjlink.php?file=cj201103/cijCEheAQ2.jpg
ecran2
http://www.cijoint.fr/cjlink.php?file=cj201103/cijwNvmTDM.jpg
Salutations.
thg
Bonjour,
Je suis vraiment désolé, j'ai laissé trainer un espace dans la ligne de code
Pendant qu'on y est faite de même à la ligne suivante entre [.xltm] et ["]
Je suis vraiment désolé, j'ai laissé trainer un espace dans la ligne de code
chemin = "C:\Users\utilisateur\Desktop\AdlatusMandats "juste à la fin, supprimer l'espace entre [S] et ["]
Pendant qu'on y est faite de même à la ligne suivante entre [.xltm] et ["]
Bonjour,
Désolé pour le manque de suivi immédiat...
Merveilleux, ça fonctionne.
2 détails :
- petit bog qui réclame à propos d'un indice (?)
copie EcranA
http://www.cijoint.fr/cjlink.php?file=cj201103/cijOeaVLIU.jpg
copie Ecran B
http://www.cijoint.fr/cjlink.php?file=cj201103/cijzGS0H0J.jpg
- 2e point: je n'obtiens plus immédiatement la mise à jour des données liées ; je dois effectuer la commande excel "données", "actualiser tout".
Peut-on - encore... - l'intégrer en fin de code ???
Avec mes remerciements pour votre patience.
thg
Désolé pour le manque de suivi immédiat...
Merveilleux, ça fonctionne.
2 détails :
- petit bog qui réclame à propos d'un indice (?)
copie EcranA
http://www.cijoint.fr/cjlink.php?file=cj201103/cijOeaVLIU.jpg
copie Ecran B
http://www.cijoint.fr/cjlink.php?file=cj201103/cijzGS0H0J.jpg
- 2e point: je n'obtiens plus immédiatement la mise à jour des données liées ; je dois effectuer la commande excel "données", "actualiser tout".
Peut-on - encore... - l'intégrer en fin de code ???
Avec mes remerciements pour votre patience.
thg
Trouvé l'erreur indice
Il s'agit du nom de la feuille3 qui a en fait été renommée "Saisie".
Et ça joue.
Merci beaucoup.
Toujours preneur d'une ligne pour:
données, actualiser tout
thg
Il s'agit du nom de la feuille3 qui a en fait été renommée "Saisie".
Et ça joue.
Merci beaucoup.
Toujours preneur d'une ligne pour:
données, actualiser tout
thg
Bonjour,
Merci pour l'information.
Ma proposition ne comporte que l'ouverture du classeur selon le modèle.
Vous avez certainement une instruction qui exporte les données d'Access vers Excel qu'il faut aussi exécuter.
De l'aide par là : https://cafeine.developpez.com/access/tutoriel/excel/
Salutations.
Le Pingou
Merci pour l'information.
Ma proposition ne comporte que l'ouverture du classeur selon le modèle.
Vous avez certainement une instruction qui exporte les données d'Access vers Excel qu'il faut aussi exécuter.
De l'aide par là : https://cafeine.developpez.com/access/tutoriel/excel/
Salutations.
Le Pingou
Bonsoir,
En fait ma liaison est résolue.
J'ai une requête création de table dans Access et mon fichier modèle dans excel conserve la table importée dans une feuille du classeur .
Il suffit de faire la mise à jour du classeur excel pour retrouver les données de la table recréée dans access avec les dernières données
D'où la seule opération à faire manuellement qui subsiste après lancement du fchier excel:
clic sur données, clic sur actualiser tout.
Et ... l'espoir d'ajouter une ligne de code qui effectue cette opération après l'ouverture de mon fichier-modèle excel.
De toute manière merci beaucoup pour votre aide.
thg
En fait ma liaison est résolue.
J'ai une requête création de table dans Access et mon fichier modèle dans excel conserve la table importée dans une feuille du classeur .
Il suffit de faire la mise à jour du classeur excel pour retrouver les données de la table recréée dans access avec les dernières données
D'où la seule opération à faire manuellement qui subsiste après lancement du fchier excel:
clic sur données, clic sur actualiser tout.
Et ... l'espoir d'ajouter une ligne de code qui effectue cette opération après l'ouverture de mon fichier-modèle excel.
De toute manière merci beaucoup pour votre aide.
thg
Bonsoir,
Si tu te mets en enregistrement de macro après avoir sélectionné une cellule du TCD tu obtiens :
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
eric
Si tu te mets en enregistrement de macro après avoir sélectionné une cellule du TCD tu obtiens :
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
eric
Bonsoir,
Je n'ai pas un tableau croisé.
J'ai un tableau tout simple d'une dizaine de ligne et une vingtaine de colonnes (champs access).
Il est défini comme tableau dans une feuille excel et conserve la liaison avec la table access.
Mais il faut demander "actualiser tout" via "le menu données pour la mise à jour dans excel
Je cherche la ligne qui "refresh" le classeur excel (pas un tableau croisé dyn.)
thg
Je n'ai pas un tableau croisé.
J'ai un tableau tout simple d'une dizaine de ligne et une vingtaine de colonnes (champs access).
Il est défini comme tableau dans une feuille excel et conserve la liaison avec la table access.
Mais il faut demander "actualiser tout" via "le menu données pour la mise à jour dans excel
Je cherche la ligne qui "refresh" le classeur excel (pas un tableau croisé dyn.)
thg
Bonjour thg,
C'est vraiment étrange, à vous lire vous avez les données qui se trouvent dans une table et un classeur Excel qui à une liaison avec cette table. Donc vous devez uniquement actualiser le classeur pour avoir les données à jour. En principe pas besoin de procédure.
Au passage,salutations eriiic
C'est vraiment étrange, à vous lire vous avez les données qui se trouvent dans une table et un classeur Excel qui à une liaison avec cette table. Donc vous devez uniquement actualiser le classeur pour avoir les données à jour. En principe pas besoin de procédure.
Au passage,salutations eriiic
Bonjour,
Tout fonctionnait (fonctionne) sans souci.
Table access, fichier excel avec liaison, création d'un modèle sur ce fichier qui conserve ses liaisons et les met à jour à chaque ouverture.
Seul désir initial:
créer un événement (procédure ou macro) sur mise à jour dans access qui lance excel et effectue toutes les opérations sans intervenir.
De façon à ce que l'utilisateur crée d'office un nouveau fichier (donc ne détruise pas le modèle)
(Ca permet de créer un décompte/facturation excel assez complexe à partir des données clients et employés de la base access; et l'utilisateur travaille a priori dans access et non dans excel)
au départ de la discussion, j'imaginais trouver une ligne de commande particulière dans la macro access qui lance un modèle excel en tant que nouveau document (au lieu d'ouvrir le modèle);
au point actuel, j'ai une procédure qui le fait mais ne met pas à jour la liaison du classeur excel sans une intervention (minime) pour obtenir mon décompte/facturation complet immédiatement avec les données voulues.
thg
Tout fonctionnait (fonctionne) sans souci.
Table access, fichier excel avec liaison, création d'un modèle sur ce fichier qui conserve ses liaisons et les met à jour à chaque ouverture.
Seul désir initial:
créer un événement (procédure ou macro) sur mise à jour dans access qui lance excel et effectue toutes les opérations sans intervenir.
De façon à ce que l'utilisateur crée d'office un nouveau fichier (donc ne détruise pas le modèle)
(Ca permet de créer un décompte/facturation excel assez complexe à partir des données clients et employés de la base access; et l'utilisateur travaille a priori dans access et non dans excel)
au départ de la discussion, j'imaginais trouver une ligne de commande particulière dans la macro access qui lance un modèle excel en tant que nouveau document (au lieu d'ouvrir le modèle);
au point actuel, j'ai une procédure qui le fait mais ne met pas à jour la liaison du classeur excel sans une intervention (minime) pour obtenir mon décompte/facturation complet immédiatement avec les données voulues.
thg
Je veux partir d'un modèle qui crée un nouveau document. D'ailleurs j'obtiens ça si je lance le fichier modèle directement; mais pas à travers access.
thg