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 et incrément de nom de fichier [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 35
    Par défaut Export excel et incrément de nom de fichier
    Bonjour j'ai suivi le tuto de loufab sur le formulaire de recherche multicritère qui est extrêmement bien réalisé. J'arrive au terme et j'ai un petit soucis concernant l'exportation vers Excel.

    Dans le tuto, la fonction va soit créer un nouveau fichier lorsqu'il n'en existe pas d'autre dans le répertoire, soit écrire à la suite du fichier précédent.

    Moi ce que je voudrais, c'est que lorsque l'on constate que le fichier "export.xls" existe, Access crée un nouveau fichier appelé "export_1.xls" et ainsi de suite.

    Mon problème est que j'ai déjà essayé de le faire sans incrémentation automatique comme ceci :
    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
    Function lf_Export2EXCEL(strSQL, Optional strNameFile As String)
     
     
        ' vérifie que le fichier xls n'existe pas dans le chemin
        If Len(strNameFile) = 0 Then strNameFile = "Export.xls"
     
        strNameFile = Environ("USERPROFILE") & "\Mes Documents\" & strNameFile
     
        If Len(Dir(strNameFile)) = 0 Then     ' teste si le fichier existe
     
            ' crée la requete Temp avec la SQL select
            CurrentDb.CreateQueryDef "Temp", strSQL
     
            '   Crée une sortie au format EXCEL
            DoCmd.OutputTo acOutputQuery, "Temp", acFormatXLS, strNameFile, True
            '   supprime la query Temp
            CurrentDb.QueryDefs.Delete "Temp"
     
        ElseIf Len(strNameFile) = 1 Then strNameFile = "Export_1.xls" 'le fichier existe
     
        strNameFile = Environ("USERPROFILE") & "\Mes Documents\" & strNameFile
     
        If Len(Dir(strNameFile)) = 0 Then     ' teste si le fichier existe
     
            ' crée la requete Temp avec la SQL select
            CurrentDb.CreateQueryDef "Temp", strSQL
     
            '   Crée une sortie au format EXCEL
            DoCmd.OutputTo acOutputQuery, "Temp", acFormatXLS, strNameFile, True
            '   supprime la query Temp
            CurrentDb.QueryDefs.Delete "Temp"
            End If
            End If
     
    End Function
    Avec ce code la création fonctionne parfaitement lorsqu'il n'y a pas de fichier mais il ne se passe rien lorsque le fichier "Export.xls" existe.

    Donc j'aimerais que la création de fichier si il y a déjà un fichier existe fonctionne mais en plus que le numéro s'incrémente tout seul en fonction du nom du fichier précédent.

    voila je suis ouvert à vos réponses merci d'avance à vous tous et encore merci à Loufab pour son tuto.

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2010
    Messages : 175
    Par défaut
    Bonjour,

    Ton elseIF ci dessous ne doit pas correspondre a tes attentes...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ElseIf Len(strNameFile) = 1 Then
    Len() te renvoie la longueur d'une chaine et dans ce cas, tu rentres dans la condition si ton nom de fichier est long d'un caractère

    Tu pourrais faire qqch du genre:
    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
    Function lf_Export2EXCEL(strSQL, Optional strNameFile As String)
          Dim count As Integer
     
        ' vérifie que le fichier xls n'existe pas dans le chemin
        If Len(strNameFile) = 0 Then strNameFile = "Export.xls"
     
        strNameFile = Environ("USERPROFILE") & "\Mes Documents\" & strNameFile
     
        while (Len(Dir(strNameFile)) <> 0)
               strNameFile = "Export_" & count & ".xls"
               count = count + 1
        wend
     
            ' crée la requete Temp avec la SQL select
            CurrentDb.CreateQueryDef "Temp", strSQL
     
            '   Crée une sortie au format EXCEL
            DoCmd.OutputTo acOutputQuery, "Temp", acFormatXLS, strNameFile, True
            '   supprime la query Temp
            CurrentDb.QueryDefs.Delete "Temp"
     
    End Function
    On teste une premiere fois si le fichier existe. Si oui, on change le nom et on reteste TANT que le fichier existe

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 35
    Par défaut
    Nikel tu pouvais pas mieux répondre c'est parfait tout fonctionne j'ai juste remplacer ma fonction par la tienne et ça marche parfaitement.

    Un grand merci à toi tu viens de me sauver la mise.

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

Discussions similaires

  1. Incrémentation du nom de fichier par macro
    Par Ichigo_Mick dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/11/2012, 11h10
  2. Réponses: 2
    Dernier message: 23/09/2011, 10h37
  3. [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
  4. [AC-2003] Import/export Excel et gestion des noms
    Par azertix dans le forum VBA Access
    Réponses: 3
    Dernier message: 30/11/2010, 16h51
  5. [Excel VBA]Recup du nom du fichier référencé
    Par Misha dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/10/2008, 12h04

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