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

Macros et VBA Excel Discussion :

Exporter un fichier Excel en .txt avec choix de l'emplacement


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juin 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2011
    Messages : 11
    Par défaut Exporter un fichier Excel en .txt avec choix de l'emplacement
    Bonjour,

    J'ai un fichier Excel qui sert de base pour l'importer après traitement dans un CRM.
    J'aimerais ouvrir la fenêtre "Enregistrer sous" et que le format de fichier se positionne automatiquement sur ".txt".
    Malheureusement, la méthode que j'emploie ouvre bien la fenêtre "Enregistrer sous", mais positionne le format sur le dernier format utilisé, par exemple ".xlsx" ou ".txt". Donc, aucune certitude que le bon format soit choisi.

    J'en perd mon latin, mon grec et j'avale ma langue.
    Ma reconnaissance éternelle à celle ou celui qui pourra me sauver !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Nom = Chemin & nomWS & "-export" & ".txt"
    Set REP = Application.FileDialog(msoFileDialogSaveAs)
    With REP
        .AllowMultiSelect = False
        .InitialFileName = Nom
        If .Show = -1 Then
            nouvWB.SaveAs Filename:=Nom, _
                                      FileFormat:=xlTextWindows, _
                                      CreateBackup:=False
                                      '.SelectedItems(1)
        End If
    End With
    J'ai essayé avec ".SelectedItems(1)" à la place de la variable "Nom", ai retiré le .txt, rien n'y fait ...

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Regardes du coté de la propriété Filters.

    Comme cet exemple : https://excel.developpez.com/faq/?pa...cel#FileDialog

    Philippe

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour
    exporter avec choix de dossier?
    le soucis c'est que quand tu l'enregistre avec l'enregistreur de macro tu a le nom en dur et voir meme avec une variable tu n'a pas l'interface pour faire ce choix

    mais si mai si

    ce n'est pas application dialog qu'il te faut c'est Application.GetSaveAsFilename(......)

    qui te permet d'avoir la fenetre "enregistrer sous" sauf que ca ne le fait pas mais te donne le chemin complet avec le nom que tu a tapé


    exemple
    fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function enregistrer_sous2(Ext) As String
        enregistrer_sous2 = ""
        fname = Application.GetSaveAsFilename(InitialFileName:=Environ("userprofile") & "\Desktop", filefilter:=" text Files (*.txt), *.txt", Title:="ENREGISTREMENT DE LA feuille")
        If fname <> False Then enregistrer_sous2 = fname
    End Function
    utilisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sub test()
    chemin =enregistrer_sous2
     ActiveWorkbook.SaveAs Filename:= chemin".............
    end sub
    ne pas oublier de taper l'extention
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juin 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2011
    Messages : 11
    Par défaut
    Merci à tous les trois.
    Je vais expérimenter la piste de Patrick Toulon plus en avant, mais les premiers essais ne sont malheureusement pas concluant.

    @ Patrick Toulon : le fichier s'exporte bien avec l'extension .txt ... mais en gardant les macros ! ça à l'air d'un faux txt mais bien d'un vrai xlsm ... Bien entendu, c'est un premier essai et je dois approfondir. J'ai espoir
    @ Philippe JOCHMANS : Excel promet beaucoup. Filters ne fonctionne malheureusement pas avec FileDialog(msoFileDialogSaveAs
    @ Menhir : "FilterIndex = 11" (c'est lext .txt) est accepté par FileDialog(msoFileDialogSaveAs) ... mais sauvegarde bel et bien selon la dernière extension utilisée !

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par hanophil Voir le message
    @ Menhir : "FilterIndex = 11" (c'est lext .txt) est accepté par FileDialog(msoFileDialogSaveAs) ... mais sauvegarde bel et bien selon la dernière extension utilisée !
    C'est normal : un FileDialog influe uniquement sur le NOM du fichier qu'il permet de sélectionner.
    Ca n'a aucun impacte sur le SaveAs. Pour ça, il faut utiliser l'option FileFormat de SaveAs.

    D'ailleurs, dans ton code, je ne vois pas pourquoi tu utilises FileDialog alors que le contenu de Nom est fixé dès le départ et que tu l'utilises dans le SaveAs sans l'avoir modifié par les items sélectionnés dans FileDialog.
    Regarde l'exemple de l'aide Microsoft : https://msdn.microsoft.com/fr-fr/VBA...property-excel

    A mon avis, tu devrais plutôt utiliser GetSaveAsFilename qui est plus simple d'emploi.
    https://msdn.microsoft.com/library/2...ice.15%29.aspx

  7. #7
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juin 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2011
    Messages : 11
    Par défaut
    Bonjour Menhir !
    Plusieurs missions m'ont empêcher de finaliser ce fil.
    Je cherche à placer mes collègues dans un cocon de soie du confort de Dieu ...
    1. C'est à dire que je leur propose un nom de fichier extrait du nom de la feuille ET la possibilité de modifier ce nom au dernier moment.
    2. Le format de fichier est déjà positionné sur ".txt"

    Les deux en même temps, dans leur environnement connu et transparent, sinon c'est la panique. Certains ne savent pas ce que veut dire "placer un fichier à la racine d'un dossier").
    Donc, j'essaye les deux. En même temps. Hop !

    Mais j'arrive pas car ou bien je propose le nom (FileDialog) et le format ne s'impose pas, ou le format s'impose, mais alors le nom est forcé (GetSaveAsFilename)...

  8. #8
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par hanophil Voir le message
    Mais j'arrive pas car ou bien je propose le nom (FileDialog) et le format ne s'impose pas, ou le format s'impose, mais alors le nom est forcé (GetSaveAsFilename)...
    Je ne vois pas en quoi le nom est forcé dans un GetSaveAsFilename.
    Relis mon post précédent et le lien que j'ai donné sur cette méthode.

  9. #9
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Juin 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2011
    Messages : 11
    Par défaut
    Merci Menhir ...
    Mes collègues doivent entrer à la volée des noms, prénoms, etc. dans cette feuille Excel.
    Les données sont traitées et un mot de passe est attribué à chaque membre de la BdD.
    Le bouton "exporter" déclencha une macro qui tourne bien : création d'un nouveau fichier, récupération des données préparées et sauvegarde de la feuille en .txt

    Toute cette opération évite à mes collègues de traiter chaque personne une à une et faire des erreurs inhérentes au traitement humain.
    Le classeur avec macro permet de garder les données en archive. Donc, suivant les services, les utilisateurs pourront créer autant de feuilles qu'ils souhaitent. Seule la feuille active sera exportée.
    Le nom du fichier exporté est construit à partir du nom de la feuille active.

    Mais je veux quand même laisser à mes collègues la possibilité de modifier le nom du fichier final dans la fenêtre de dialogue avant de sauver l'extraction positionner automatiquement en .txt. Et c'est là-dessus que je bute.

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/11/2017, 18h34
  2. [XL-2010] exporter un fichier excel avec double quotes
    Par Melvine dans le forum Excel
    Réponses: 1
    Dernier message: 06/03/2014, 23h32
  3. Réponses: 3
    Dernier message: 05/02/2013, 21h08
  4. Réponses: 1
    Dernier message: 30/11/2011, 16h54
  5. [AC-2003] Import Excel vers Access avec choix du répertoire et du fichier *.xls
    Par jeanpierre78 dans le forum IHM
    Réponses: 12
    Dernier message: 19/10/2011, 12h14

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