Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/02/2011, 22h21   #1
Membre régulier
 
Inscription : novembre 2010
Messages : 151
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 151
Points : 89
Points : 89
Par défaut Exporter vers Excel - Incrémenter le nom du fichier Excel

Bonsoir,

A l'aide de la macro "CopierVers", j'exporte le résultat d'une requête vers un tableau Excel.

Comment faire pour que dans le nom du fichier de copie Excel :
* soit un nombre s'incrémente, par exemple Liste_adhérents_nn.xls
* soit la date soit incluse par exemple Liste_adhérents_date.xls

Jean-Pierre
jeanpierre78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/02/2011, 23h36   #2
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 650
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 650
Points : 6 210
Points : 6 210
Envoyer un message via MSN à argyronet
Bonjour,

Les pouvoirs des macros ont leurs limites.
Tu en as atteind une.
Seul l'usage transposé en VBA te permettra de faire ce que tu veux :

Code :
1
2
3
4
5
6
7
8
9
10
11
Dim strFileName As String
Dim strDate As String
 
strDate = Format$(Now(), "yyyymmdd")
strFileName = "C:\ExportExcel\Liste_adhérents_" & strDate & ".xls"
 
If Dir(strFileName, 0) <> "" Then
    If MsgBox("On écrase le fichier existant ?", vbQuestion + vbYesNo) = vbYes Then
        DoCmd.OutputTo...
    End If
End If
Argy
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/02/2011, 15h01   #3
Membre régulier
 
Inscription : novembre 2010
Messages : 151
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 151
Points : 89
Points : 89
Bonjour,

Merci pour ta réponse rapide.

Je suis totalement incompétent en écriture de code. Je me limite à recopier ce que les autres ont développé. Ma formation Access s'est limitée à un module sur les BD relationnelles, la création de BD et de macros.

Une difficultés :
* Lorsque je recopie le code dans MS Visual Basic, j'ai un message d'erreur sur la ligne
strDate = Format$(Now(), "yyyymmdd")
au niveau de "Now".

Jean-Perre
jeanpierre78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 18h19   #4
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 650
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 650
Points : 6 210
Points : 6 210
Envoyer un message via MSN à argyronet
IL faut encadrer ce bout de code dans une procédure pilotée par un bouton (nommé dans mon exemple cmdExportExcel).

Code :
1
2
3
4
5
6
7
8
9
10
11
Private Sub cmdExportExcel_Click()
Dim strFileName                                        As String
Dim strDate                                            As String
    strDate = Format$(Now(), "yyyymmdd")
    strFileName = "C:\ExportExcel\Liste_adhérents_" & strDate & ".xls"
    If Dir(strFileName, 0) <> "" Then
        If MsgBox("On écrase le fichier existant ?", vbQuestion + vbYesNo) = vbYes Then
            DoCmd.OutputTo acOutputTable, "ListeAdhérents", acFormatXLS, strFileName, True
        End If
    End If
End Sub
Donc dans le formulaire, pose un bouton que tu nommes cmdExportExcel et tu lui affectes le code événement de la procédure ci-dessus.

Argy
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 16h16   #5
Membre régulier
 
Inscription : novembre 2010
Messages : 151
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 151
Points : 89
Points : 89
Bonjour Argy,

J'ai d'abord créé un bouton qui exécute ma requête. Puis dans le code affecté au bouton, j'ai ajouté les lignes de code que tu as définies :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub Commande283_Click()
On Error GoTo Err_Commande283_Click

    Dim stDocName As String

    stDocName = "Membres_commune (table)"
    DoCmd.OpenQuery stDocName, acNormal, acEdit

Exit_Commande283_Click:
    Exit Sub

Err_Commande283_Click:
    MsgBox Err.Description
    Resume Exit_Commande283_Click
    
Dim strFileName                                        As String
Dim strDate                                            As String
    strDate = Format$(Now(), "yyyymmdd")
    strFileName = "D:\Mes Documents\Musculation\Autocad\Muscu - Liste des membres (commune)_" & strDate & ".xls"
    If Dir(strFileName, 0) <> "" Then
        If MsgBox("On écrase le fichier existant ?", vbQuestion + vbYesNo) = vbYes Then
            DoCmd.OutputTo acOutputTable, "Membres_communes (table)", acFormatXLS, strFileName, True
        End If
    End If
End Sub
Lorsque je clique sur le bouton, la requête s'éxécute mais pas l'export des données.

Où me suis-je trompé?

Jean-Pierre
jeanpierre78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 11h12   #6
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 650
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 650
Points : 6 210
Points : 6 210
Envoyer un message via MSN à argyronet
Humm, un peu dans l'ordre des chose...
Si vous faîte un DoCmd.OpenQuery, le code continu de s'éxécuter derrière alors que vous n'avez pas fini de modifier votre requête...
Il faut :
  • soit procédé par étape
  • soit faire attendre le code tant que la requête est ouverte
  • soit créer dynamiquement la requête

Qu'effectuez-vous dans la requête "Membres_commune (table)" ?

Argy
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 11h32   #7
Membre régulier
 
Inscription : novembre 2010
Messages : 151
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 151
Points : 89
Points : 89
Bonjour,

Ma requête crée la table "Membres_communes (table)" pour extraire les membres à jour de leur cotisation pour l'année sélectionnée. Ensuite je désire exporter cette table vers Excel.

Jean-Pierre
jeanpierre78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 11h47   #8
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 650
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 650
Points : 6 210
Points : 6 210
Envoyer un message via MSN à argyronet
Pouvez-vous poster le code SQL de cette requête ?
Je vais vous modifier le code pour que vous puissiez arriver à vos fins.

Argy
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/02/2011, 11h52   #9
Membre régulier
 
Inscription : novembre 2010
Messages : 151
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2010
Messages : 151
Points : 89
Points : 89
Ci après le code SQL de la requête :

Code :
1
2
3
4
SELECT [Année] & " / " & [Année]+1 AS Saison, Membres.[Adresse_Code postal], Membres.Adresse_Ville, Membres.Genre, Membres.Nom_fam, Membres.Prénom, Date() AS Edition
FROM Membres INNER JOIN Cotisations ON (Membres.Prénom = Cotisations.Prénom) AND (Membres.Nom_fam = Cotisations.Nom_fam) AND (Membres.Genre = Cotisations.Genre)
WHERE (((Cotisations.Année)=[Formulaires]![Accueil]![Saison]) AND ((Cotisations.Cotisation)<>"Spécial"))
ORDER BY Membres.Adresse_Ville, Membres.Nom_fam, Membres.Prénom;
Jean-Pierre
jeanpierre78 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h28.


 
 
 
 
Partenaires

Hébergement Web