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 :

VBA export sur Excel d'un champ de formulaire [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Pilotage des performances
    Inscrit en
    Novembre 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Pilotage des performances
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2015
    Messages : 41
    Points : 20
    Points
    20
    Par défaut VBA export sur Excel d'un champ de formulaire
    Bonjour à tous !

    A travers ce code j'ouvre mon fichier excel puis j'y exporte en K2 le mois sélectionné dans le forumulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'Ouvre Excel et saisie date du formulaire
        Set Xl = New Excel.Application
        Xl.Visible = True
        Set Classeur = Xl.Workbooks.Open("S:\Documents\Liberté suivi\Save\Test_Export1.xlsb")
        Range("K2").Value = Forms("F_Saisie").Controls("Lb_Mois").Value
    (il n'y a que la partie du code qui bloque)

    Cette opération fonctionne mais seulement une fois sur 2, je n'arrive pas à comprendre pourquoi.
    Si quelqu’un à les lumières x) merci

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Bonjour.

    Personnellement quand je manipule Excel je suis super spécifique. Je te suggère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set Classeur = Xl.Workbooks.Open("S:\Documents\Liberté suivi\Save\Test_Export1.xlsb")
    dim feuille as excel.worksheet:set feuille=classeur.worksheets(1) ' Je suppose que ton classeur n'a qu'une feuille ou que c'est seulement la 1ère qui t'intéresse.
    feuille.Range("K2").Value = Forms("F_Saisie").Controls("Lb_Mois").Value
    A+

  3. #3
    Membre à l'essai
    Homme Profil pro
    Pilotage des performances
    Inscrit en
    Novembre 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Pilotage des performances
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2015
    Messages : 41
    Points : 20
    Points
    20
    Par défaut
    Super, ça fonctionne à tous les coups maintenant .

    Merci beaucoup pour ton aide!!

  4. #4
    Membre à l'essai
    Homme Profil pro
    Pilotage des performances
    Inscrit en
    Novembre 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Pilotage des performances
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2015
    Messages : 41
    Points : 20
    Points
    20
    Par défaut
    Bonjour, Désolé pour le double poste :/

    Voulant aller encore plus loin dans le code je fais face à un nouveau problème
    En effet un fois l'extraction sur Excel faite, il me faudrait enregistrer-sous le fichier en question avec une partie variable dans le nom.
    Cette partie variable correspond au mois et à l'année sélectionné dans un formulaire.
    Voila le code:
    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
    Private Sub Export_Excel_Click()
     
    DoCmd.TransferSpreadsheet acExport, , "Sel_Activity_Final_Comparatif", "S:\Documents\Liberté suivi\Save\Test_Export1.xlsb", True, "Base"
     Dim Xl As excel.Application
        Dim Classeur As excel.Workbook
     
     
     
     
        'Ouvre Excel et saisie date du formulaire
           Set Xl = New excel.Application
        Xl.Visible = True
      Set Classeur = Xl.Workbooks.Open("S:\Documents\Liberté suivi\Save\Test_Export1.xlsb")
    Dim feuille As excel.Worksheet: Set feuille = Classeur.Worksheets(1)
    feuille.Range("K2").Value = Forms("F_Saisie").Controls("Lb_Mois").Value
    feuille.Range("L2").Value = Forms("F_Saisie").Controls("Annee").Value
     
     'Enregistre sous le fichier Excel de base pour le nommer en fonction des dates du formulaire
     
        ActiveWorkbook.SaveAs FileName:= _
            "S:\Documents\Liberté suivi\Save\Suivi_ELD_&feuille.Range(K2).Value&_&feuille.Range(L1).Value&.xlsb", FileFormat:=xlExcel12, _
            CreateBackup:=False
    End Sub
    C'est au niveau de la dernière partie que cela coince, l'enregistrement sous se fait 1 fois sur 2 (là encore).
    Par contre je n'arrive pas à intégrer les variables dans le titre.
    Merci par avance encore une fois !

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Bonjour.

    Je pense que c'est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     "S:\Documents\Liberté suivi\Save\Suivi_ELD_" & feuille.Range("K2").Value & "_" & feuille.Range("L1").Value & ".xlsb"
    A+

  6. #6
    Membre à l'essai
    Homme Profil pro
    Pilotage des performances
    Inscrit en
    Novembre 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Pilotage des performances
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2015
    Messages : 41
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    Je viens d'effectué la modification du code, cela fonctionne le fichier s'enregistre-sous de la façon dont je le souhaite .
    Cependant l'opération ne fonctionne toujours qu'une fois sur deux !
    Je ne comprend pas pourquoi :/

    Je vous remet le code, c'est uniquement la dernière partie de celui-ci ou apparaît un débogage une fois sur deux.

    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
    Private Sub Export_Excel_Click()
     
    DoCmd.TransferSpreadsheet acExport, , "Sel_Activity_Final_Comparatif", "S:\Documents\Liberté suivi\Save\Test_Export1.xlsb", True, "Base"
     Dim Xl As excel.Application
        Dim Classeur As excel.Workbook
     
     
     
     
        'Ouvre Excel et saisie date du formulaire
           Set Xl = New excel.Application
        Xl.Visible = True
      Set Classeur = Xl.Workbooks.Open("S:\Documents\Liberté suivi\Save\Test_Export1.xlsb")
    Dim feuille As excel.Worksheet: Set feuille = Classeur.Worksheets(1)
    feuille.Range("K2").Value = Forms("F_Saisie").Controls("Lb_Mois").Value
    feuille.Range("L2").Value = Forms("F_Saisie").Controls("Annee").Value
     
     'Enregistre sous le fichier Excel de base pour le nommer en fonction des dates du formulaire
        ActiveWorkbook.SaveAs FileName:= _
            "S:\Documents\Liberté suivi\Save\Suivi_ELD_" & feuille.Range("K2").Value & "_" & feuille.Range("L2").Value & ".xlsb"
    End Sub
    Edit: L'erreur qui apparaît 1 fois sur 2 est: " Erreur d'exécution 91 variable objet ou variable de bloc with non défini"

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Sur quelle ligne ?

  8. #8
    Membre à l'essai
    Homme Profil pro
    Pilotage des performances
    Inscrit en
    Novembre 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Pilotage des performances
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2015
    Messages : 41
    Points : 20
    Points
    20
    Par défaut
    Bonjour,

    C'est à ce niveau là que ça bloque.
    Je le re précise l'erreur n'arrive pas tout le temps, seulement une fois sur deux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveWorkbook.SaveAs FileName:= _
            "S:\Documents\Liberté suivi\Save\Suivi_ELD_" & feuille.Range("K2").Value & "_" & feuille.Range("L2").Value & ".xlsb"

  9. #9
    Invité
    Invité(e)
    Par défaut
    bonjour,
    une fois sur deux?. c'est en soit surprenant!
    Citation Envoyé par madock Voir le message
    Bonjour,

    C'est à ce niveau là que ça bloque.
    Je le re précise l'erreur n'arrive pas tout le temps, seulement une fois sur deux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveWorkbook.SaveAs FileName:= _
            "S:\Documents\Liberté suivi\Save\Suivi_ELD_" & feuille.Range("K2").Value & "_" & feuille.Range("L2").Value & ".xlsb"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Classeur.SaveAs FileName:= _
            "S:\Documents\Liberté suivi\Save\Suivi_ELD_" & feuille.Range("K2").Value & "_" & feuille.Range("L2").Value & ".xlsb"

  10. #10
    Membre à l'essai
    Homme Profil pro
    Pilotage des performances
    Inscrit en
    Novembre 2015
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Pilotage des performances
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2015
    Messages : 41
    Points : 20
    Points
    20
    Par défaut
    C'est bon ça fonctionne !!!
    Super merci beaucoup c'était tout bête

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

Discussions similaires

  1. problem lors de l'export sur EXCEL
    Par caracas dans le forum Débuter
    Réponses: 2
    Dernier message: 16/04/2009, 12h40
  2. Export sur Excel - Longueur de champ
    Par eddyG dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/11/2007, 21h01
  3. exportation sur excel problème de formatage
    Par Alexandre Sahli dans le forum Access
    Réponses: 12
    Dernier message: 05/09/2006, 17h56
  4. [VBA] exportation vers excel - filtres automatiques?
    Par Christophe93250 dans le forum Access
    Réponses: 10
    Dernier message: 06/01/2006, 16h36
  5. Erreur d'exportation vers Excel : Trop de champs definis
    Par deglingo37 dans le forum Access
    Réponses: 3
    Dernier message: 15/06/2005, 17h30

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