IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Export excel définition du nom du fichier aves un module [AC-2007]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 311
    Par défaut Export excel définition du nom du fichier aves un module
    Bonjour,

    Actuellement, lorsque j'effectue un export via une requète vers Excel le nom de mon fichier est figé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strXLFile = "d:\bases extincteurs\Access 2007\essaiexport.xls"
    Maintenant je voudrais pouvoir le nommer comme je veux via un petit formulaire.

    Je bloque sur deux points :

    J'ai posé la condition AcDialog, comment dois je faire pour redémarrer mon code
    Et L'utilisation du champ NomExcel de mon formulaire fichier excel pour ma variable NameExcel et strXfile.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Dim strXLFile As String, NameExcel As String
     
    'Ouvre le formulaire de saisie du nom du fichier en windowmode attente de saisie
                                        DoCmd.OpenForm ("fichier excel"), WindowMode:=acDialog
                                        NameExcel = [fichier excel]!NomExcel
                                            'Si aucune nom de fichier, je sors message d'alerte
                                                If Nz(Me.NomExcel, "") = "" Then
     
                                                DoCmd.OpenForm ("message nom fichier obligatoire")
                                                Exit Sub     ' Sortie de la routine
                                                'Sinon, en fonction de la case cochée, j'ouvre un formulaire
                                                Else
                                                End If
    'Ouvre l'application Excel
    Set xlApp = CreateObject("Excel.Application")
    xlApp.Visible = True
     
    ' Nom complet du fichier excel
                                   strXLFile = "d:\bases extincteurs\Access 2007\" & NameExcel ".xls"
    Merci d'avance de votre aide

    Marcopololo

  2. #2
    Membre éclairé Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 311
    Par défaut
    J'ai progressé.

    Tout d'abord la fonction ACdialog n'a semble t-il pas besoin d’être relancée.

    J'ai corrigé la ligne suivante dans la syntaxe de la variable strXFile et cela fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strXLFile = "d:\bases extincteurs\Access 2007\" & NameExcel & ".xls"
    Par contre je n'arrive pas à définir ma variable NameExcel, je l'ai actuellement remplacée par pour tester.

    Elle provient d'un champ de formulaire mais j'ai beau essayé et j'ai toujours une valeur nulle, malgré un essai de l'enregistrer dans une table.

    Ais je le droit de nommer ma variable de type string de cette manière ?
    Elle provient d'un champ de mon formulaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NameExcel = Me.NomExcel
    A priori cela ne fonctionne pas.

    Merci de votre aide

    Marcopololo

  3. #3
    Membre éclairé Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 311
    Par défaut
    Alors je crois avoir trouvé la cause de mon problème, c'est que je fais appel à un champ de formulaire qui n'est pas le même que celui qui l'utilise.

    Ce qui veut dire qu'il faut mettre en oeuvre une variable globale.

    J'ai trouvé quelques éléments mais je bloque sur les emplacements à mettre ces éléments :

    Formulaire F1 avec un champ nommé ch1

    Formulaire F2 dans lequel je veux utiliser ch1 de F1 comme variable (var1) et l'utiliser pour définir le nom de mon fichier. var1=ch1

    Si quelqu'un pouvait m'indiquer ou je dois inscrire mes variables globales et quel type je dois associé à mes variables ?

    Merci d'avance

    Marcopololo

  4. #4
    Membre éclairé Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 311
    Par défaut
    Je ne sais pas si je suis dans la bonne direction en espérant que quelq'un pourra me le confirmer mais j'ai créé un module de classe que j'ai appelé xportxl.

    Il se compose de deux variables

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Option Compare Database
     
    Public xlname As String
    Public xldossier As String
    Ensuite c'est la que j'ai un peu de mal. Si je comprend bien il faut que j'appelle en tête de formulaire ce module pour que le formulaire utilisant cette variable sans l'avoir créer puisse l'utiliser à son tour.

    Je vais continuer à chercher mais si quelqu'un maitrise, je suis preneur

    Merci d'avance

    Marcopololo

  5. #5
    Membre éclairé Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 311
    Par défaut
    Je suis quelque peu embrouillé. J'ai lu les tutos concernant les modules.
    Alors si l'on pouvait m'éclaircir un peu les idées.

    1) Est il préférable d'utiliser des variables privées ou public dans les modules. Si je veux utiliser elles ci pour récupérer la valeur du champ de F1 pour F2 ?
    2) Dans la création du module si private, la structure de mon module est identique sauf à rajouter les propriétés GEt et LET ?
    3) Ensuite je n'ai plus qu'à appeler ma variable privée dans mon formulaire, dois je la mettre dans le général derrière option explicit ?
    4) Doit elle être déclarée dans mes deux formulaires ?

    Voilà je crois que j'en ai fini avec mes questions. Je vais continuer, en espérant que l'on pourra m'aider et pour ma part à trouver des réponses en me creusant la cervelle.

    Voilà ce que j'ai fait.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Option Compare Database
    Option Explicit
     
    Private mstrXlname As String                'Nom du fichier Excel
    Private mstrXlchemin As String             'Nom du chemin de sauvegarde
     
     
    ' Propriété fichier
    Property Let Xlname(strXlname As String)
       mstrXlname = strXlname
    End Property
    Property Get Xlname() As String
        Xlname = mstrXlname
    End Property
     
    ' Propriété Chemin
    Property Let Xlchemin(strXlchemin As String)
        mXlchemin = strXlchemin
    End Property
    Property Get Xlchemin() As String
        Xlchemin = mstrXlchemin
    End Property
    Merci d'avance

    Marcopololo

  6. #6
    Membre Expert
    Homme Profil pro
    tripatouilleur de code pour améliorer mon quotidien boulistique
    Inscrit en
    Février 2008
    Messages
    946
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : tripatouilleur de code pour améliorer mon quotidien boulistique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2008
    Messages : 946
    Par défaut
    Bonjour

    Je ne maitrise pas du tout les modules de classes.

    Par contre, j'aurais tendance à utiliser une table de paramètre (Utilisations possibles d'une table de paramètres) : vous y stocker le nom que vous voulez donner à votre fichier excel, et au moment de l'export / création vous allez chercher ce nom dans cette table.

    Bonne continuation

    Pierre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/02/2013, 21h08
  2. [AC-2003] Exporter vers Excel - Incrémenter le nom du fichier Excel
    Par jeanpierre78 dans le forum IHM
    Réponses: 8
    Dernier message: 22/02/2011, 11h52
  3. [1.x] export excel erreur à l'ouverture du fichier
    Par jherbaux dans le forum Symfony
    Réponses: 1
    Dernier message: 16/10/2010, 12h37
  4. Réponses: 1
    Dernier message: 02/12/2009, 18h04
  5. Export etat-word Pb nom de fichier
    Par Sam 069 dans le forum Access
    Réponses: 2
    Dernier message: 05/05/2006, 14h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo