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

Access Discussion :

Export formulaire vers access en vba


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 52
    Points : 30
    Points
    30
    Par défaut Export formulaire vers access en vba
    Bonjour a tous,

    j'ai vu quelques tutos sur les exports vers Excel, mais 'ai des soucis lors de l'export de mon formulaire qui est en feuille de données vers un fichier Excel.


    Ici, il rempli bien le .xls, mais il ne prend pas en compte mes fonctions qui modifient le texte inséré.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    DoCmd.TransferSpreadsheet acExport, _ 
                        acSpreadsheetTypeExcel9, _ 
                        "nom de mon Form", _ 
                        CurrentProject.Path & "\interlocuteurs.xls", _ 
                        True
    Sinon j'ai essayé aussi :

    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
     
    'Création du fichier .xls et ouverture de la feuille
    Set appexcel = CreateObject("Excel.Application")
    appexcel.Visible = True
    Set wbexcel = appexcel.Workbooks.Open(CurrentProject.Path & "\interlocuteurs.xls")
    appexcel.Sheets("Feuil1").Select
     
    Let ligne = 2
     
    Debut de boucle
    appexcel.Cells(ligne, 1) = Forms!Mon_form!mon_champ1
    appexcel.Cells(ligne, 2) = Forms!Mon_form!mon_champ2
    ...
    ligne = ligne +1
    Fin de boucle
    Mais le probleme c'est qu'il affiche que la premiere ligne du formulaire et je ne sais pas comment lui faire afficher les lignes suivantes...

    Si vous avez une idée qui m'aiderait....

    Merci !!

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 52
    Points : 30
    Points
    30
    Par défaut access export form vers Excel
    En attendant un code plus "pro" voila une alternative :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    'On ouvre le formulaire
    DoCmd.OpenForm "interlocuteur_sf_clone"
     
    'Création du fichier .xls et ouverture de la feuille
    Set appexcel = CreateObject("Excel.Application")
    Set wbexcel = appexcel.Workbooks.Open(CurrentProject.Path & "\interlocuteurs.xls")
    appexcel.Sheets("Feuil1").Select
     
    'cree un recordset sur la base SQL du formulaire :
    Let SQLform = Form_interlocuteur_sf_clone.RecordSource
    Set rst = CurrentDb.OpenRecordset(SQLform)
     
    'Va au dernier enregistrement du recordset pour que...
    rst.MoveLast
    '...counter soit égal au nombre d'enregistrement
    Let counter = rst.RecordCount
     
    'On remplit le tableau .xls a partir de la 2eme ligne
    Let ligne = 2
    'Tant que le nbre de ligne-2 est diff. de counter, on remplit
    While Not counter = (ligne - 2)
        appexcel.Cells(ligne, 1) = Forms!interlocuteur_sf_clone.nom.Value
        appexcel.Cells(ligne, 2) = Forms!interlocuteur_sf_clone.nom_prenom.Value
        appexcel.Cells(ligne, 3) = Forms!interlocuteur_sf_clone.type_interloc.Value
        appexcel.Cells(ligne, 4) = Forms!interlocuteur_sf_clone.ville.Value
        appexcel.Cells(ligne, 5) = Forms!interlocuteur_sf_clone.pays_vf.Value
        appexcel.Cells(ligne, 6) = Forms!interlocuteur_sf_clone.indicatif.Value
        appexcel.Cells(ligne, 7) = Forms!interlocuteur_sf_clone.tel.Value
        appexcel.Cells(ligne, 8) = Forms!interlocuteur_sf_clone.fax.Value
        appexcel.Cells(ligne, 9) = Forms!interlocuteur_sf_clone.mobil.Value
        appexcel.Cells(ligne, 10) = Forms!interlocuteur_sf_clone.email.Value
        appexcel.Cells(ligne, 11) = Forms!interlocuteur_sf_clone.metier.Value
        appexcel.Cells(ligne, 12) = Forms!interlocuteur_sf_clone.produit.Value
        appexcel.Cells(ligne, 13) = Forms!interlocuteur_sf_clone.Responsable_de_mission.Value
        appexcel.Cells(ligne, 14) = Forms!interlocuteur_sf_clone.date_entree.Value
        appexcel.Cells(ligne, 15) = Forms!interlocuteur_sf_clone.date_asso.Value
        appexcel.Cells(ligne, 16) = Forms!interlocuteur_sf_clone.statut.Value
        appexcel.Cells(ligne, 17) = Forms!interlocuteur_sf_clone.lang.Value
        appexcel.Cells(ligne, 18) = Forms!interlocuteur_sf_clone.asste.Value
        'appexcel.Cells(ligne, 19) = formulaire.Fields(18)
     
        'Permet d'éviter un message d'erreur quand il n'y a plus d'enregistrement
        If Not counter = (ligne - 1) Then
            'On passe a l'enregistrement suivant du formulaire
            DoCmd.GoToRecord , interlocuteur_sf_clone, acNext
        End If
     
        'On incremente ligne pour passer a la ligne suivante dans le tableau
        Let ligne = ligne + 1
    Wend
     
    'Ferme le formulaire:
    DoCmd.Close acForm, "interlocuteur_sf_clone"
    'Rend visible le fichier .xls
    appexcel.Visible = True

  3. #3
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Exporter un formulaire en mode de données revient à exporter un recordset (une table ou une requête filtrée ou non).

    Pour les méthodes d'exports : as-tu lu mon tutoriel ? (lien dans ma signature)

    Ici, il rempli bien le .xls, mais il ne prend pas en compte mes fonctions qui modifient le texte inséré.
    Peux-tu être plus explicite ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 52
    Points : 30
    Points
    30
    Par défaut access export excel
    salut cafeine,

    j'ai bien vu ton tuto !!

    mais le probleme que j'avais , c'est que je dans mon recordset ne figurent que des données "transitoire" parce qu'elles sont modifiés par une fonction . je m'explique:

    une personne parle francais anglais et italien.
    dans le champs "langue" de cette personne elle aura "abd" qui fait référence dans une table T_lang
    a = francais
    b= anglais
    c= espagnol
    d= italien, etc....

    Donc dans mon recordset j'ai que abd et non pas les langues correspondantes...

    Par contre j'ai voulu mettre une InputBox pour que l'utilisateur saisisse le nom du fichier qui va se creer, mais il me dit que le fichier est introuvable alors que je veux le creer ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    Dim appexcel As Excel.Application
    Dim wbexcel As Excel.Workbook
     
    Set appexcel = CreateObject("Excel.Application")
    nom_xls = InputBox("Veuillez donner un nom au fichier :", "Titre")
    Set wbexcel = appexcel.Workbooks.Open(CurrentProject.Path & "\" & nom_xls & ".xls")
    appexcel.Sheets("Feuil1").Select
    Merci !

  5. #5
    Membre averti Avatar de solaar
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 607
    Points : 314
    Points
    314
    Par défaut
    Salut!
    j'ai lu le code de fabrice518, et ma beaucoup apporté.
    mais pour avoir tout les éléments du formulaire et non celui de la premier ligne il faut une petite modif.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     'Permet d'éviter un message d'erreur quand il n'y a plus d'enregistrement
        If Not counter = (ligne - 1) Then
            'On passe a l'enregistrement suivant du formulaire
            DoCmd.GoToRecord acDataForm , interlocuteur_sf_clone, acNext
        End If
    le acDataForm.

    Merci fabrice518 ton code ma aidé,

Discussions similaires

  1. [AC-2010] Exporter formulaire vers access en gardant la mise en forme
    Par debdev dans le forum IHM
    Réponses: 2
    Dernier message: 16/06/2015, 14h17
  2. [AC-2007] Export d' Excel vers Access avec VBA depuis Access
    Par rabihm81 dans le forum VBA Access
    Réponses: 1
    Dernier message: 09/06/2009, 15h56
  3. VBA Export Excel vers Access
    Par rabihm81 dans le forum VBA Access
    Réponses: 2
    Dernier message: 26/05/2009, 13h54
  4. Réponses: 2
    Dernier message: 16/03/2009, 15h57
  5. Réponses: 1
    Dernier message: 10/09/2008, 16h41

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