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 :

Enregistrer une copie renommée d'un .txt [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Par défaut Enregistrer une copie renommée d'un .txt
    Bonjour à tous,

    J'ai ce 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
     'date du jour dans la cellule AK8
        Range("AK8").Value = Format(Date, "dd mmmm yyyy")
     
        'permet la creation du fichier txt
    Open "C:\Users\GAE\Desktop\Test\Test.txt" For Output As #1
     
        For I = 1 To 10000
            Concaténation = Cells(I, 1)
            For j = 1 To 34
                Concaténation = Concaténation & ";" & Cells(I, j)
            Next j
            Print #1, Concaténation
        Next I
    Name "C:\Users\GAE\Desktop\Test\Test.txt" As "C:\Users\GAE\Desktop\Test" & Range("AK8").Value & ".txt"
    Close #1
    Je ne comprends pas pourquoi cette ligne ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Name "C:\Users\GAE\Desktop\Test\Test.txt" As "C:\Users\GAE\Desktop\Test" & Range("AK8").Value & ".txt"
    J'ai un code erreur 55 fichier déjà ouvert

    Le but de ce code est d'ouvrir le fichier test vide le remplir le renommer avec la date du jour et l'enregistrer au même endroit.
    Il faut que le fichier Test vierge reste et que ce soit une copie qui s'enregistre

    J'ai également essayé avec une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Function NomSansExtension(ByVal NomDoc As String) As String
     
     
        NomSansExtension = Format(Date, "jjmmyyyy")
     
     
    End Function
    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
     
     
    Dim CheminCompletExport As String
     
     Open "C:\Users\GAE\Desktop\Test\Test.txt" For Output As #1
     
        For I = 1 To 10000
            Concaténation = Cells(I, 1)
            For j = 1 To 34
                Concaténation = Concaténation & ";" & Cells(I, j)
            Next j
            Print #1, Concaténation
        Next I
         With ActiveDocument
     
     
              CheminCompletExport = "C:\Users\GAE\Desktop\Test" & NomSansExtension(.Name) & ".txt"
     
     
        End With
     
     
     
    End Sub
    Dans ce cas l'erreur est sur le (.Name)

    Merci pour votre aide.

  2. #2
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 203
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Name déplace un fichier non ouvert, sinon plantage

    essaye de modifier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Name "C:\Users\GAE\Desktop\Test\Test.txt" As "C:\Users\GAE\Desktop\Test" & Range("AK8").Value & ".txt"
    Close #1
    en

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Close #1
    Name "C:\Users\GAE\Desktop\Test\Test.txt" As "C:\Users\GAE\Desktop\Test" & Range("AK8").Value & ".txt"

  3. #3
    Membre Expert
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 298
    Par défaut
    Il est possible de mettre la date directement dans le nom du fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Open "C:\Users\GAE\Desktop\Test" & Range("AK8").Value & ".txt" For Output As #1
     ...
    Stéphane

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Par défaut
    ToTotiti2008
    Cela fonctionne (en partie)

    Effectivement je n'ai plus le problème mais cela à supprimé le fichier Test et rien ne l'a remplacé sur le dossier.
    Mais si je relance la fonction alors il me dit qu'un fichier avec ce nom existe déjà.

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Par défaut
    Raccourcix
    le fichier ne s'enregistre nul part il est possible d'ouvrir un fichier qui n'existe pas ?

  6. #6
    Membre Expert
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 298
    Par défaut
    Citation Envoyé par sorbetframboise Voir le message
    Raccourcix
    le fichier ne s'enregistre nul part il est possible d'ouvrir un fichier qui n'existe pas ?
    Je dirai, heureusement

    Voir
    https://docs.microsoft.com/fr-fr/off...open-statement
    "Si le fichier spécifié par pathname n'existe pas, il est créé à l'ouverture d'un fichier pour le mode Append, Binary, Output ou Random."

    Stéphane

  7. #7
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 249
    Par défaut
    tototiti2008
    Effectivement le dossier s'enregistre sur le bureau j'ai fait une petite erreur d'inattention.

    Mais du coup si l'utilisateur lance la macro 2 fois dans la même journée le second ne peux pas s'enregistrer car il existe un document du même nom, il ne crée pas automatiquement un date du jour (02)

    Raccourcix
    Ta solution fonctionne merci pour le tuyau mais si l'utilisateur lance la macro 2 fois dans la même journée la seconde fois ça ne créer pas de fichier ça ouvre l'ancien j'ai donc une perte d'information.

    Merci pour votre aide !

  8. #8
    Membre Expert
    Avatar de tototiti2008
    Homme Profil pro
    Formateur/développeur
    Inscrit en
    Octobre 2008
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Formateur/développeur

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 203
    Billets dans le blog
    2
    Par défaut
    En regardant ton code, le fichier déplacé se trouve sur ton bureau
    Name déplace le fichier, pour le copier tu peux envisager FileCopy, par exemple

    https://docs.microsoft.com/fr-fr/off...copy-statement

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

Discussions similaires

  1. [XL-2013] Enregistrer une copie et la renommer
    Par Qfornezzo1 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 01/07/2019, 16h00
  2. Réponses: 4
    Dernier message: 03/07/2008, 16h46
  3. Enregistrer une copie d'un workbook
    Par PiliSql dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/04/2008, 13h44
  4. Réponses: 8
    Dernier message: 30/10/2007, 10h20
  5. enregistrer une donnee dans un fichier txt
    Par zorglub88 dans le forum MFC
    Réponses: 33
    Dernier message: 27/01/2006, 15h13

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