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

export vers excel

10 réponses
Avatar
Jean Marc
Bonsoir,
J'ai un formulaire en mode feuille de données et j'arrive à exporter vers excel
les données qu'il contient après un tri.
Je voudrais faire la même chose une fois que ce formulaire devient un
sous-formulaire, iclu dans un form principal.
Je ne trouve pas la bonne syntaxe avec docmd.OutputTo.

Pourriez-vous me donner une piste ou me dire si peut-être je cherche à faire
quelque chose d'imossible ?

Merci bien et bonne soirée.

Jean Marc

10 réponses

Avatar
Raymond [mvp]
Bonsoir.

tu devrais pouvoir faire:
DoCmd.OutputTo acOutputForm, Forms!formprincipal!sous_formulaire.Name,
..............


--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/

Commandez gratuitement en ligne votre DVD des Webcasts TechNet et MSDN !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidŒ280628-759f-4d49-b731-c874dc037153


"Jean Marc" a écrit dans le message de news:
466c5b5c$0$5081$
| Bonsoir,
| J'ai un formulaire en mode feuille de données et j'arrive à exporter vers
excel
| les données qu'il contient après un tri.
| Je voudrais faire la même chose une fois que ce formulaire devient un
| sous-formulaire, iclu dans un form principal.
| Je ne trouve pas la bonne syntaxe avec docmd.OutputTo.
|
| Pourriez-vous me donner une piste ou me dire si peut-être je cherche à
faire
| quelque chose d'imossible ?
|
| Merci bien et bonne soirée.
|
| Jean Marc
|
|
Avatar
PO2B
Bonjour,

Ce post m'intéresse, j'en profite pour poser mon propre problème.

J'essaie actuellement de transférer les données d'un sous formulaire vers
Excel mais de la manière suivante :

Dans mon formulaire principal, je selectionne 3 champs (listes). Cette
selection me ramène les enregistrements du sous formulaire.

Je voudrais pouvoir envoyer dans un même fichier Excel, les enregistrements
remontés de la requête répétée à plusieurs reprises.

Ex : J'ai choisi 1.un équipement, 2 .le modèle, 3.le type de contrat --> Je
récupère dans mon sous formulaire les tarifs des divers éléments.
Mais je dois répéter plusieurs fois la même demande lorsqu'il y a plusieurs
equipements et les ajouter à une même liste (Fichier Excel)
La Finalité étant de réaliser un Devis.

Comment puis-je procéder au mieux. J'ai utilisé dans une macro le
"CopierVers " mais ça ne fonctionne que pour la 1ère requête....

Merci pour votre aide.

PO


"Raymond [mvp]" a écrit dans le message
de news:
Bonsoir.

tu devrais pouvoir faire:
DoCmd.OutputTo acOutputForm, Forms!formprincipal!sous_formulaire.Name,
..............


--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/

Commandez gratuitement en ligne votre DVD des Webcasts TechNet et MSDN !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidŒ280628-759f-4d49-b731-c874dc037153


"Jean Marc" a écrit dans le message de news:
466c5b5c$0$5081$
| Bonsoir,
| J'ai un formulaire en mode feuille de données et j'arrive à exporter
vers
excel
| les données qu'il contient après un tri.
| Je voudrais faire la même chose une fois que ce formulaire devient un
| sous-formulaire, iclu dans un form principal.
| Je ne trouve pas la bonne syntaxe avec docmd.OutputTo.
|
| Pourriez-vous me donner une piste ou me dire si peut-être je cherche à
faire
| quelque chose d'imossible ?
|
| Merci bien et bonne soirée.
|
| Jean Marc
|
|




Avatar
Stéphane Miqueu
PO2B a présenté l'énoncé suivant :
Bonjour,

Ce post m'intéresse, j'en profite pour poser mon propre problème.

J'essaie actuellement de transférer les données d'un sous formulaire vers
Excel mais de la manière suivante :

Dans mon formulaire principal, je selectionne 3 champs (listes). Cette
selection me ramène les enregistrements du sous formulaire.

Je voudrais pouvoir envoyer dans un même fichier Excel, les enregistrements
remontés de la requête répétée à plusieurs reprises.

Ex : J'ai choisi 1.un équipement, 2 .le modèle, 3.le type de contrat --> Je
récupère dans mon sous formulaire les tarifs des divers éléments.
Mais je dois répéter plusieurs fois la même demande lorsqu'il y a plusieurs
equipements et les ajouter à une même liste (Fichier Excel)
La Finalité étant de réaliser un Devis.

Comment puis-je procéder au mieux. J'ai utilisé dans une macro le
"CopierVers " mais ça ne fonctionne que pour la 1ère requête....

Merci pour votre aide.

PO

Bonjour,

En le faisant 'à la main', : déclarer un objet excel, créer un nouveau
document, mettre un bouton de transfert dans ta form qui remplira le
fichier excel. Ainsi tu mémorises la dernière ligne remplie et tu peux
faire ce que tu veux.

--
Ami Calmant
Stéphane

Avatar
Raymond [mvp]
Bonjour.

Dans ce cas il faut utiliser la commande DoCmd.TransferSpreadsheet en
indiquant une destination dans l'option Range et dans tableName, indiquer le
nom de la requête.

--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/

Commandez gratuitement en ligne votre DVD des Webcasts TechNet et MSDN !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidŒ280628-759f-4d49-b731-c874dc037153


"PO2B" a écrit dans le message de news:
f4j4hh$i7n$
| Bonjour,
|
| Ce post m'intéresse, j'en profite pour poser mon propre problème.
|
| J'essaie actuellement de transférer les données d'un sous formulaire vers
| Excel mais de la manière suivante :
|
| Dans mon formulaire principal, je selectionne 3 champs (listes). Cette
| selection me ramène les enregistrements du sous formulaire.
|
| Je voudrais pouvoir envoyer dans un même fichier Excel, les
enregistrements
| remontés de la requête répétée à plusieurs reprises.
|
| Ex : J'ai choisi 1.un équipement, 2 .le modèle, 3.le type de contrat -->
Je
| récupère dans mon sous formulaire les tarifs des divers éléments.
| Mais je dois répéter plusieurs fois la même demande lorsqu'il y a
plusieurs
| equipements et les ajouter à une même liste (Fichier Excel)
| La Finalité étant de réaliser un Devis.
|
| Comment puis-je procéder au mieux. J'ai utilisé dans une macro le
| "CopierVers " mais ça ne fonctionne que pour la 1ère requête....
|
| Merci pour votre aide.
|
| PO
Avatar
PO2B
Merci Stéphane,

Peux-tu me donner un peu plus d'explications car je ne vois pas comment
procéder pour arriver à ce résultat ?

Pour la création du fichier excel, OK mais pour le transfert ? Quel type de
code puis-je utiliser ?

Merci


"Stéphane Miqueu" a écrit dans le message de news:

PO2B a présenté l'énoncé suivant :
Bonjour,

Ce post m'intéresse, j'en profite pour poser mon propre problème.

J'essaie actuellement de transférer les données d'un sous formulaire vers
Excel mais de la manière suivante :

Dans mon formulaire principal, je selectionne 3 champs (listes). Cette
selection me ramène les enregistrements du sous formulaire.

Je voudrais pouvoir envoyer dans un même fichier Excel, les
enregistrements remontés de la requête répétée à plusieurs reprises.

Ex : J'ai choisi 1.un équipement, 2 .le modèle, 3.le type de contrat -->
Je récupère dans mon sous formulaire les tarifs des divers éléments.
Mais je dois répéter plusieurs fois la même demande lorsqu'il y a
plusieurs equipements et les ajouter à une même liste (Fichier Excel)
La Finalité étant de réaliser un Devis.

Comment puis-je procéder au mieux. J'ai utilisé dans une macro le
"CopierVers " mais ça ne fonctionne que pour la 1ère requête....

Merci pour votre aide.

PO

Bonjour,

En le faisant 'à la main', : déclarer un objet excel, créer un nouveau
document, mettre un bouton de transfert dans ta form qui remplira le
fichier excel. Ainsi tu mémorises la dernière ligne remplie et tu peux
faire ce que tu veux.

--
Ami Calmant
Stéphane





Avatar
Stéphane Miqueu
Merci Stéphane,

Peux-tu me donner un peu plus d'explications car je ne vois pas comment
procéder pour arriver à ce résultat ?

Pour la création du fichier excel, OK mais pour le transfert ? Quel type de
code puis-je utiliser ?

Merci



Un bout de code qui fonctionne, tu l'adapte à tes besoins ...

Dim xlApp As Excel.Application
Dim xlWkb As Excel.Workbook
Dim iX As Integer, iY As Integer

On Error Resume Next
DoCmd.Hourglass True
Set xlApp = CreateObject("Excel.application")
Set xlWkb = xlApp.Workbooks.Add
If Err.Number <> 0 Then xlWkb = xlApp.Workbooks.Add
xlWkb.RunAutoMacros xlAutoOpen
xlApp.Visible = True
xlApp.Sheets(1).Select
xlApp.Sheets(1).Name = "Trace"

[...]
iX=1
iY=1
xlApp.Cells(iX, iY) = "Mon texte ..."
[...]

DoCmd.Hourglass False

xlApp.Visible = True

Set xlWkb = Nothing
Set xlApp = Nothing
Exit Sub

ErrorHandle:
DoCmd.Hourglass False
MsgBox "Erreur " & vbLf & Err.Description
Resume Next

End Sub

--
Ami Calmant
Stéphane

Avatar
Jean Marc
"Raymond [mvp]" a écrit dans le message de
news:
Bonsoir.

tu devrais pouvoir faire:
DoCmd.OutputTo acOutputForm, Forms!formprincipal!sous_formulaire.Name,


Bonsoir,
Merci pour cette syntaxe qui fonctionne déjà sans insulte.
Mais elle me donne la totalité des enregistrements de la table. Si j'applique
une requête avec une clause where pour éditer un nombre n d'enregistrements, la
commande ci-dessus me sort quand même la totalité dans excel et non n
enregistrements.
Je bute sur ce problème.

Merci encore pour votre aide.

Jean Marc

Avatar
Raymond [mvp]
En effet, le OutputTo ne tient pas compte su le formulaire ets un formulaire
principal ou un sous-formulaire en prenant la globalité du recordset. il y a
une possibilité simple en créant une requête bis qui ne sera utilsiée que
pour l'export.
pour l'exemple,
si la source du sous-formulaire est la Requêrte3 dont le contenu est:
SELECT Table1.* FROM Table1;
il faut créer une Requête3Bis dont le contenu sera:
SELECT Table1.* FROM Table1
WHERE Table1.Numero = [Formulaires]![Formulaire1]![Numero];

et la commande OutputTo sera de ce type:
DoCmd.OutputTo acOutputQuery, "Requête3bis", acFormatXLS, "classeur1.xls",
True

(Numero est le nom du champ servant de lien père/fils).
--
@+
Raymond Access MVP http://OfficeSystem.Access.free.fr/
Pour débuter sur le forum: http://www.mpfa.info/

Commandez gratuitement en ligne votre DVD des Webcasts TechNet et MSDN !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidŒ280628-759f-4d49-b731-c874dc037153


"Jean Marc" a écrit dans le message de news:
466d7005$0$27391$
|
| Bonsoir,
| Merci pour cette syntaxe qui fonctionne déjà sans insulte.
| Mais elle me donne la totalité des enregistrements de la table. Si
j'applique
| une requête avec une clause where pour éditer un nombre n
d'enregistrements, la
| commande ci-dessus me sort quand même la totalité dans excel et non n
| enregistrements.
| Je bute sur ce problème.
|
| Merci encore pour votre aide.
|
| Jean Marc
|
|
Avatar
Jean Marc
"Raymond [mvp]" a écrit dans le message de
news: %23Svt$
En effet, le OutputTo ne tient pas compte su le formulaire ets un formulaire
principal ou un sous-formulaire en prenant la globalité du recordset. il y a
une possibilité simple en créant une requête bis qui ne sera utilsiée que
pour l'export.


J"avais essayé cette solution aussi, mais en fait elle s'avère délicate puisque
il m'arrive de sélectionner des enregistrements avec la souris, clic droit et
"filtrer par sélection".
Le plus étonnant est que si j'ouvre mon formulaire seul, en feuille de données,
l'export marche impécable avec ma sélection.
C'est uniquement en tant que sous-formulaire que ça récalcitre.
Je m'en sors donc pour l'instant de manière pas très élégante en ouvrant le
formulaire en pleine fenêtre puis en appliquant le filtre. L'export est alors
OK.
Disons que ça fait 2 clics au lieu d'un.

Je vais donc continuer mes réflexions.

Merci bien en tout cas.

Jean Marc

Avatar
PO2B
Merci pour votre aide. Je teste ces solutions.

PO


"PO2B" a écrit dans le message de news:
f4j6p2$jge$
Merci Stéphane,

Peux-tu me donner un peu plus d'explications car je ne vois pas comment
procéder pour arriver à ce résultat ?

Pour la création du fichier excel, OK mais pour le transfert ? Quel type
de code puis-je utiliser ?

Merci


"Stéphane Miqueu" a écrit dans le message de
news:
PO2B a présenté l'énoncé suivant :
Bonjour,

Ce post m'intéresse, j'en profite pour poser mon propre problème.

J'essaie actuellement de transférer les données d'un sous formulaire
vers Excel mais de la manière suivante :

Dans mon formulaire principal, je selectionne 3 champs (listes). Cette
selection me ramène les enregistrements du sous formulaire.

Je voudrais pouvoir envoyer dans un même fichier Excel, les
enregistrements remontés de la requête répétée à plusieurs reprises.

Ex : J'ai choisi 1.un équipement, 2 .le modèle, 3.le type de contrat -->
Je récupère dans mon sous formulaire les tarifs des divers éléments.
Mais je dois répéter plusieurs fois la même demande lorsqu'il y a
plusieurs equipements et les ajouter à une même liste (Fichier Excel)
La Finalité étant de réaliser un Devis.

Comment puis-je procéder au mieux. J'ai utilisé dans une macro le
"CopierVers " mais ça ne fonctionne que pour la 1ère requête....

Merci pour votre aide.

PO

Bonjour,

En le faisant 'à la main', : déclarer un objet excel, créer un nouveau
document, mettre un bouton de transfert dans ta form qui remplira le
fichier excel. Ainsi tu mémorises la dernière ligne remplie et tu peux
faire ce que tu veux.

--
Ami Calmant
Stéphane