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 :

Renommer un fichier excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 21
    Par défaut Renommer un fichier excel
    Bonjour a tous,

    Je cherche a renommer un fichier qui a un nom qui change suivant les semaine : "ExtractionPlanCharge_20190121". Je souhaite renommer ce fichier pour pouvoir le récupérer ces données dans un autre fichier. Ce fichier est ranger dans un dossier nommé "base_article".
    Le truc c'est que je n'arrive pas a accéder au dossier dans lequel "ExtractionPlanCharge_20190121" car il est rangé dans un autre dossier que le document VBA que je réalise.

    Pour renommer,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Name "ExtractionPlanCharge_20190121" As "Base_article.CSV"
    Pour accéder au fichier :
    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
        Dim DossierBaseArticle As String, DossierBaseAS400 As String, Fichier1 As String, t As Integer
     
        DossierBaseArticle = Chemin & "Importation\Base_article\"
     
        t = 0
     
        Fichier1 = Dir(DossierBaseArticle)
     
        Do While Fichier1 <> ""
     
          t = t + 1
     
          MsgBox (Fichier1)
     
     
          Fichier1 = Dir
          Name Fichier1 As "Base_article.CSV"
        Loop
    Je n'arrive pas a renommer le fichier
    Sinon, il y a une autre solution, ouvrir le seul fichier qui est présent dans le dossier pour pouvoir importer ces données. A l'heure actuelle j'ai juste renommer le fichier à ma convenance mais je souhaite réalisé ça automatiquement.

    Merci de votre aide

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,
    Citation Envoyé par Guigui35160 Voir le message
    Je cherche a renommer un fichier qui a un nom qui change suivant les semaine : "ExtractionPlanCharge_20190121". Je souhaite renommer ce fichier pour pouvoir le récupérer ces données dans un autre fichier.
    dans ce cas, il est parfaitement inutile de renommer le fichier:
    - Chercher le fichier (avec Dir)
    - l'ouvrir avec OpenText
    - Copier les données

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 21
    Par défaut
    Citation Envoyé par Patrice740 Voir le message
    Bonjour,


    dans ce cas, il est parfaitement inutile de renommer le fichier:
    - Chercher le fichier (avec Dir)
    - l'ouvrir avec OpenText
    - Copier les données
    C'est à dire ?

    Et pour résoudre ma problématique de renommage, avez vous une solution ? Je trouve que c'est plus simple pour le code que j'utilise ensuite.

  4. #4
    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
    Pour compléter le message de Patrice ( ), il n'est pas nécessaire qu'un fichier ait l'extension "CSV" pour pouvoir l'ouvrir "comme un CSV".
    L'extension est simplement un moyen, pour l'explorateur Windows, de relier un fichier avec l'application la plus à même de l'utiliser.

    Donc, inutile de renommer ton fichier pour en extraire les données.

    - l'ouvrir avec OpenText
    Lire ceci : https://docs.microsoft.com/fr-FR/off...books.opentext

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 21
    Par défaut
    D'accord merci

    Mais du coup, comment je fais pour ouvrir le fichier car le nom change d'une semaine à l'autre ?
    Je connais le chemin du répertoire où est enregistrer mon fichier, mais pas le nom du fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dir (Chemin & "Importation\Base_article\")
    Workbooks.Open Filename:=CheminBaseArticle

  6. #6
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Bonjour,

    Je cherche a renommer un fichier qui a un nom qui change suivant les semaine : "ExtractionPlanCharge_20190121"
    Pour ma part je suis amené a ouvrir un fichier avec la date du jour (et les heures minutes secondes), ex: export-requete6-20190206091429.csv

    Voici comment je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chemin = "C:\Users\" & Environ("UserName") & "\Downloads\export-requete6-" & Year(Date) & WorksheetFunction.Text(Month(Date), "00") & WorksheetFunction.Text(Day(Date), "00") & "*.csv"
    Workbooks.Opentext Filename:=Chemin
    A adapter a ton cas

    Tu pourrais aussi gérer via une imputbox le numéro de la semaine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    semaine = inputbox("entrez la date au format aaaammjj") 'tu lui rentre 20190121
    fichier = "ExtractionPlanCharge_" & semaine")
    Workbooks.Opentext Filename:=Chemin & fichier
    edit: si tu nettoie ton répertoire chaque semaine et que "ExtractionPlanCharge_20190121.csv" est le seul fichier csv commençant par ExtractionPlanCharge_
    tu peux essayer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks.Opentext Filename:=Chemin & "ExtractionPlanCharge_*.csv"
    Edit: je suis aller un peu vite en copiant mon code, Menhir a raison c'est opentext qu'il faut utiliser et non open

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 21
    Par défaut
    Merci beaucoup pour ta réponse ! Je pense que je vais utiliser la solution 2 avec l'inputbox. Mais je me rend compte que, pour ta solution 1, j'ouvre un fichier qui n'aura pas forcément la date du jour. Cela marche quand même avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "& Year(Date) & WorksheetFunction.Text(Month(Date), "00") & WorksheetFunction.Text(Day(Date), "00") & "*.csv""
    ?

    edit: si tu nettoie ton répertoire chaque semaine et que "ExtractionPlanCharge_20190121.csv" est le seul fichier csv commençant par ExtractionPlanCharge_
    tu peux essayer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    Workbooks.Open Filename:=Chemin & "ExtractionPlanCharge_*.csv"
    Le problème quand je fais ce code avec l'étoile, mon document ne s'ouvre pas. Il y a quelque chose de spécifique à faire ?

  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 Guigui35160 Voir le message
    Mais du coup, comment je fais pour ouvrir le fichier car le nom change d'une semaine à l'autre ?
    Je connais le chemin du répertoire où est enregistrer mon fichier, mais pas le nom du fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Dir (Chemin & "Importation\Base_article\")
    Workbooks.Open Filename:=CheminBaseArticle
    Heureusement qu'on t'a dis à deux reprises que c'est OpenText et non Open qu'il fallait utiliser.
    Prends au moins la peine de lire les conseils qui te sont donnés.

    Pour récupérer le nom de fichier, il faut utiliser une variable qui va récupérer le nom de fichier fourni par le Dir().
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim nom as String
    nom = Dir(Chemin & "Importation\Base_article\*.*")
    En espérant que la variable "Chemin" contient bien un chemin valide se terminant par un "\".

  9. #9
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Citation Envoyé par Guigui35160 Voir le message
    Mais je me rend compte que, pour ta solution 1, j'ouvre un fichier qui n'aura pas forcément la date du jour. Cela marche quand même avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "& Year(Date) & WorksheetFunction.Text(Month(Date), "00") & WorksheetFunction.Text(Day(Date), "00") & "*.csv""
    ?
    Comme je l'ai écrit, c'est a adapter a ton cas, Date donne la date du jour, le code fonctionne donc sur un fichier dont le nom contient la date du jour, tu pourrais chercher a modifier date pour qu'il te donne la date du dernier lundi par exemple

  10. #10
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Citation Envoyé par Guigui35160 Voir le message
    Le problème quand je fais ce code avec l'étoile, mon document ne s'ouvre pas. Il y a quelque chose de spécifique à faire ?
    Tu peux aussi chercher (puis ouvrir) le fichier le plus récent du répertoire choisi :
    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
    ' Note : il faut activer la référence (dans Outils > Références ...) à :
    ' - Microsoft Scripting Runtime
    Option Explicit
    Option Private Module
    Sub Test()
    Dim chemin As String
      chemin = ThisWorkbook.Path   ' ou autre
      MsgBox TrouverDernier(chemin)
    End Sub
    Private Function TrouverDernier(strChemin As String) As String
    Dim oFSO As FileSystemObject           'File System Object
    Dim oRep As Scripting.Folder           'Dossier à analyser
    Dim oFiles As Scripting.Files          'Collection des fichiers du dossier
    Dim oFile As Scripting.File            'Fichier
    Dim dat As Date                        'Date fichier
      'Explorer le dossier
      On Error Resume Next
      Set oFSO = New FileSystemObject
      Set oRep = oFSO.GetFolder(strChemin)         'dossier
      Set oFiles = oRep.Files                      'fichiers
      '- traiter chaque fichier
      For Each oFile In oFiles
        If oFile.DateCreated > dat Then            'ou, selon besoin, oFile.DateLastModified
          TrouverDernier = oFile.Path
          dat = oFile.DateCreated
        End If
      Next
      On Error GoTo 0
      Set oFSO = Nothing
      Set oRep = Nothing
      Set oFiles = Nothing
      Set oFile = Nothing
    End Function

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/04/2014, 22h31
  2. Réponses: 3
    Dernier message: 21/11/2013, 14h55
  3. renommer un fichier excel
    Par Naoned005 dans le forum Macros et VBA Excel
    Réponses: 39
    Dernier message: 14/05/2012, 18h45
  4. [XL-2007] Renommer un fichier Excel par macro
    Par Yunasthar dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/08/2010, 11h05
  5. Renommer des fichiers EXCEL à partir de SAS
    Par id301077 dans le forum ODS et reporting
    Réponses: 1
    Dernier message: 21/11/2009, 13h11

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