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 Word Discussion :

Trouver un fichier word en fonction de son nom [WD-2019]


Sujet :

VBA Word

  1. #1
    Candidat au Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2020
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Trouver un fichier word en fonction de son nom
    Bonjour à tous,

    Je recherche actuellement à créer une fonction dans Word qui me permettrait de trouver, dans un répertoire donné, la dernière version d'un fichier.

    Tous mes fichiers sont classés comme ceci : V01_fichier.docx

    Le numéro de version est la seule chose qui varie.

    J'ai donc testé de créer ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub dernier_scenario()
        monrep = "C:\"
        monfic = Dir(monrep & "V & MAX(00,99) & _fichier.docx")
        MsgBox "Le dernière version du fichier est " & monfic
    End Sub
    Mais ça ne marche pas, ma MsgBox ne me donne pas de valeur pour monfic. J'imagine qu'on ne peut pas utiliser la fonction MAX dans le nom d'un fichier.

    Auriez-vous une solution qui permettrai de trouver cette dernière version ?

    Merci à vous pour votre aide !

    Herme

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Hermelich Voir le message
    Bonjour,

    Une solution possible avec FileSystemeObject
    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
     
     
    Sub dernier_scenario()
     
    Dim MonRep As String
     
        MonRep = "C:\"
        MsgBox "La dernière version du fichier est " & DerniereVersion(MonRep)
     
    End Sub
     
    Function DerniereVersion(ByVal MonRep2 As String) As Integer
     
    Dim Fso As Object, Fich As Object
    Dim I As Integer, VersionEnCours As Integer
     
        Set Fso = CreateObject("Scripting.FileSystemObject")
        DerniereVersion = 0
        For Each Fich In Fso.GetFolder(MonRep2).Files
            If InStr(1, LCase(Fich.Name), "_fichier.docx", vbTextCompare) > 0 Then
               VersionEnCours = CInt(Mid(Fich.Name, 2, 2))
               If VersionEnCours > DerniereVersion Then DerniereVersion = VersionEnCours
            End If
        Next Fich
        Set Fso = Nothing
     
    End Function

  3. #3
    Candidat au Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2020
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour Eric,

    Merci pour ta réponse !

    Cependant, ce que je cherche est à ouvrir la dernière version du fichier. (Désolé si je me suis mal exprimé.)

    Cette méthode me donne le numéro de version. J'aimerai selectionner ce fichier pour pouvoir l'activer.

    Merci pour ta patience..

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Hermelich Voir le message
    Ce n'est pourtant pas ce qui est écrit dans le message d'origine.
    Sinon, il suffit de se servir de la fonction pour reconstituer le nom du fichier.

  5. #5
    Candidat au Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2020
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci bien, effectivement !

    Je vais le faire de cette manière !

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Hermelich Voir le message
    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
     
    Function DerniereVersion2(ByVal MonRep2 As String) As String
     
    Dim Fso As Object, Fich As Object
    Dim I As Integer, VersionEnCours As Integer, VersionMax As Integer
     
        Set Fso = CreateObject("Scripting.FileSystemObject")
        VersionMax = 0
        DerniereVersion2 = ""
        For Each Fich In Fso.GetFolder(MonRep2).Files
            If InStr(1, LCase(Fich.Name), "_fichier.docx", vbTextCompare) > 0 Then
               VersionEnCours = CInt(Mid(Fich.Name, 2, 2))
               If VersionEnCours > VersionMax Then
                   VersionMax = VersionEnCours
                   DerniereVersion2 = MonRep2 & Fich.Name
               End If
            End If
        Next Fich
        Set Fso = Nothing
     
    End Function

  7. #7
    Candidat au Club
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2020
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2020
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Wahou, super efficace Eric !

    Je vais continuer à bosser mon VBA et à m'entrainer. Ca marche en tout cas !!

    Je peux poursuivre mon projet, merci !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/03/2018, 00h05
  2. Créer fichier word en fonction liste
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 31/01/2015, 10h50
  3. [XL-2010] Trouver la référence de la cellule en fonction de son nom
    Par statista dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/01/2011, 14h03
  4. Réponses: 1
    Dernier message: 31/05/2006, 17h59
  5. appeler une fonction connaissant son nom (en string)
    Par Guigui_ dans le forum Général Python
    Réponses: 1
    Dernier message: 20/07/2004, 00h46

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