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 :

retrouver un nom de fichier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 16
    Par défaut retrouver un nom de fichier
    Bonjour à tous,

    J'actualise tous les mois un rapport que je récuppére dans un fichier excel nommé "nom_de_mon_fichier- date d'actualisation du fichier(qui est sous le format "yyyy-mm-dd-hh-nn-ss").

    Comme je veux copier des cellules du fichier que j'automatise tous les mois et dont son nom change tous les mois dans un second fichier.

    Je voudrais savoir si qqun à une solution car je connais le jour de l'actualisation donc je n'ai pas de problème pour("yyyy-mm-dd") mais je ne connais pas l'heure exact ou il s'actualise. Et donc quand j'appelle mon fichier il ne le trouve pas.

    Voici le code du fichier que j'appel tous les mois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set structure_clients_ = Application.Workbooks.Open(Filename:="C:\Users\SJH5594\Desktop\test\structure_clients_." & Format(Now, "yyyy-mm-dd")  & ".xls")
    Si qqun à une idée je suis preneuse.

    Merci d'avance.

  2. #2
    Membre expérimenté Avatar de arosec
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Par défaut
    Bonsoir,

    Voici une fonction qui peut retourner le nom du fichier:
    (un seul fichier par jour bien sur)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub test()
      Debug.Print getPathAndFileName("c:\Users\SJH5594\Desktop\test\", "structure_clients_." & Format(Now, "yyyy-mm-dd"), "xls")
    End Sub
    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
     
    Function getPathAndFileName(strDirectory As String, strTemplateName As String, strExtension As String) As String
    Dim fso
    Dim fil
     
      Set fso = CreateObject("Scripting.FileSystemObject")
     
      'Parcourir les fichiers du dossier
      For Each fil In fso.GetFolder(strDirectory).Files
        'Si c'est un fichier Excel xls alors...
     
        If fso.GetExtensionName(fil.Name) = strExtension Then
     
          'Si le fichier correspond au mpdèle alors...
          If InStr(fil.Name, strTemplateName) > 0 Then
            'Retourner le nom du fichier et sortir de la fonction
            getPathAndFileName = fil.Path
            Exit Function
          End If
     
        End If
     
      Next fil
     
      Set fso = Nothing
     
      getPathAndFileName = ""
     
    End Function
    Cdlt

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 16
    Par défaut
    Bonjour arosec,

    Je n'ai pas très bien comprit ton code le function je dois le mettre à quel niveau.

    Merci pour ton aide

  4. #4
    Membre expérimenté Avatar de arosec
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Par défaut
    Bonsoir,

    Tu peux remplacer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set structure_clients_ = Application.Workbooks.Open(Filename:="C:\Users\SJH5594\Desktop\test\structure_clients_." & Format(Now, "yyyy-mm-dd")  & ".xls")
    Par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set structure_clients_ = Application.Workbooks.Open(Filename:=getPathAndFileName("c:\Users\SJH5594\Desktop\test\", "structure_clients_." & Format(Now, "yyyy-mm-dd"), "xls"))
    Tu peux copier la fonction dans un module:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public Function getPathAndFileName(strDirectory As String, strTemplateName As String, strExtension As String) As String
    ...
    end function
    (ajoute le mot public devant la function pour qu'elle puisse être appelée depuis n'importe ou)

    Cdlt,

  5. #5
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2014
    Messages : 16
    Par défaut
    Bonjour arosec,

    J'ai bien fait ce que tu m'as dit j'ai mit ma fonction dans un module en y ajoutant public pour qu'elle puisse être appeller n'importe ou.

    J'ai bien remplacer le code comme tu me l'as dit mais quand j'éxecute mon code il me met argument non facultatif.

    Je ne comprend pourquoi il me met cela.

    As tu une idée ?

    Merci d'avance

  6. #6
    Membre expérimenté Avatar de arosec
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Par défaut
    Bonsoir,
    Peux tu me joindre ton fichier?
    Cdlt,

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

Discussions similaires

  1. Retrouver le nom de l'utiliseur pour adapter le chemin d'un fichier
    Par teddy72000 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/02/2011, 18h47
  2. retrouver le nom du fichier modifié
    Par ikuzar dans le forum Debian
    Réponses: 1
    Dernier message: 25/08/2010, 12h19
  3. Include() : retrouver le nom du fichier inclus
    Par december dans le forum Langage
    Réponses: 2
    Dernier message: 14/06/2009, 07h12
  4. Réponses: 3
    Dernier message: 19/03/2008, 15h41
  5. [Libairie dynamique]Retrouver le nom du fichier
    Par lovecpp dans le forum Linux
    Réponses: 0
    Dernier message: 30/08/2007, 21h11

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