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

  1. #1
    Membre actif Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    mars 2014
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : mars 2014
    Messages : 541
    Points : 282
    Points
    282

    Par défaut Enregistrer fichier dans plusieurs répertoires

    Bonjour le Forum
    Je souhaiterais enregistrer, a l'enregistrement ou fermeture, un fichier word dans plusieurs sous-dossiers répartis dans un répertoire.

    Je vous explique mon schéma
    - Ouverture du fichier : je scanne un répertoire et ses sous-répertoires pour trouver tous les fichiers du méme nom
    - J'enregistre ces cibles dans une ou plusieurs variables
    - A l'enregistrement/fermeture du fichier : un pop-up me demande de confirmer l'écrasement des cibles contenues dans les variables précédentes.
    - Écrasement ou non des cibles.
    - Enregistrement du fichier dans le dossier ou je l'ai ouvert.....

    Je décris la procédure car je ne suis pas a l'aise avec les vba word,
    mais je suis plus à l'aise avec les vba Excel
    Est*ce la mm chose ??

    Merci à vous
    Bonne journée
    Seb



    ###############################
    C'est Totomatique, On va tout Totomate-isé ;-)
    ###############################

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    4 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 4 031
    Points : 10 297
    Points
    10 297
    Billets dans le blog
    27

    Par défaut

    Citation Envoyé par GADENSEB Voir le message
    Bonjour,

    Est*ce la mm chose ??
    Oui. Faites votre code sous Excel et transposez le sous Word une fois au point.

    Un exemple qui peut vous servir : word-vba-concatener-fichiers-dat-sauvegarde-rtf-partir-document-word-docm.
    L'exemple contient un liste à liste dans un userform et une matrice qui permet de mémoriser vos choix. Il y aura juste une modification de la procédure de chargement des fichiers pour réaliser une recherche récursive dans les sous dossiers.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  3. #3
    Membre actif Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    mars 2014
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : mars 2014
    Messages : 541
    Points : 282
    Points
    282

    Par défaut

    Bonjour
    Merci de la réponse !
    je me lance sur excel et je reviens !!!!

    bonne am
    Bonne journée
    Seb



    ###############################
    C'est Totomatique, On va tout Totomate-isé ;-)
    ###############################

  4. #4
    Membre actif Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    mars 2014
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : mars 2014
    Messages : 541
    Points : 282
    Points
    282

    Par défaut

    Bonjour Eric

    J'ai réussi à avancer sur ce projet grâce à job75 de ExcelDownlaod, pour la version Excel que je remercie au passage.
    https://www.excel-downloads.com/thre...ires.20034908/
    Cela fonctionne parfaitement.

    Comme au début de mon post je cherche a faire cette version de macro en VBA-Word

    J'ai créer une macro qui fonctionne sur tous les fichiers word pas le biais d'un bouton dans la barre de tâches

    J'ai un soucis de déclaration de variable "Chemin" dans
    Nom : Capture 2019 08 16.PNG
Affichages : 10
Taille : 9,3 Ko

    Nom : Capture 2019 08 16-2.PNG
Affichages : 10
Taille : 1,9 Ko



    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Dim fso As Object, liste, n& 'mémorise les variablesSub pfichiers()
    '
    ' pfichiers Macro
    '
    '
    Dim fso As Object, liste, n& 'mémorise les variables
     
     
     
     
     
     
     
     
    If MsgBox("Nouvel Emplacement ?", vbYesNo, "Demande de confirmation") = vbYes Then
     
    Application.FileDialog(msoFileDialogSaveAs).Show
     
     
    End If
     
     
    Dim debut$, chemin As Long, nom$
    With ThisWorkbook
        debut = "E:\Logiciels\00 - PROJETS"
        chemin = .Path
        nom = LCase(.Name) 'minuscules
        Set fso = CreateObject("Scripting.FileSystemObject")
        ReDim liste(0) 'RAZ
        n = 0 'RAZ
        ListeRecursive fso.getfolder(debut), nom
        Application.DisplayAlerts = False
        If n Then
            For n = 0 To UBound(liste)
                .SaveAs liste(n)
            Next
        End If
        MsgBox IIf(n, n, "Aucun") & " fichier" & IIf(n > 1, "s", "") & " écrasé" & IIf(n > 1, "s", "") & " dans les sous-dossiers"
        .SaveAs chemin & "\" & nom
    End With
    Set fso = Nothing
    End Sub
     
     
    Sub ListeRecursive(f As Object, nom$)
    Dim sf As Object, fich As Object
    For Each sf In f.subfolders
        For Each fich In fso.getfolder(sf).Files
            If LCase(fich.Name) = nom Then
                ReDim Preserve liste(n)
                liste(n) = sf & "\" & nom
                n = n + 1
            End If
        Next fich
        ListeRecursive fso.getfolder(sf), nom
    Next sf
    End Sub
     
     
    End Sub
    Comment doit-on déclarer dans word ?

    En te remerciant.
    Fichiers attachés Fichiers attachés
    Bonne journée
    Seb



    ###############################
    C'est Totomatique, On va tout Totomate-isé ;-)
    ###############################

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    4 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 4 031
    Points : 10 297
    Points
    10 297
    Billets dans le blog
    27

    Par défaut

    Citation Envoyé par GADENSEB Voir le message
    Bonjour,

    Je n'ai pas ouvert les fichiers, mais si la procédure jointe est lancée depuis Word, cela ne peut pas être With ThisWordBook, mais With ActiveDocument.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  6. #6
    Membre actif Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    mars 2014
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : mars 2014
    Messages : 541
    Points : 282
    Points
    282

    Par défaut

    Hello.
    Une erreur de débutant de ma part.
    Je regarde cela dans la journée.
    Merci a toi
    Bonne journée
    Seb



    ###############################
    C'est Totomatique, On va tout Totomate-isé ;-)
    ###############################

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    4 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 4 031
    Points : 10 297
    Points
    10 297
    Billets dans le blog
    27

    Par défaut

    Citation Envoyé par GADENSEB Voir le message
    Bonjour,

    Ce code fonctionne :
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    Option Explicit
     
    Dim Fso As Object, Liste, N& 'mémorise les variables
     
    Sub EcraserFichiers()
     
    Dim Debut$, Chemin$, Nom$, ListeDesFichiers$
     
     
            If MsgBox("Nouvel Emplacement ?", vbYesNo, "Demande de confirmation") = vbYes Then
               Application.Dialogs(wdDialogFileSaveAs).Show
            End If
     
            With ActiveDocument
     
                 ListeDesFichiers$ = "Liste des fichiers écrasés : " & Chr(10)
     
                 Debut = "E:\Logiciels\00 - PROJETS"
                 Chemin = .Path
                 Nom = LCase(.Name) 'minuscules
                 Set Fso = CreateObject("Scripting.FileSystemObject")
                 N = 0 'RAZ
                 ReDim Liste(N) 'RAZ
                 ListeRecursive Fso.getfolder(Debut), Nom
     
                 Application.DisplayAlerts = False
                 If N Then
                    For N = 0 To UBound(Liste)
                        .SaveAs Liste(N)
                        ListeDesFichiers$ = ListeDesFichiers$ & Mid(Liste(N), Len(Debut) + 1) & Chr(10)
                        'Debug.Print Liste(n)
                    Next
                 End If
                 MsgBox IIf(N, N, "Aucun") & " fichier" & IIf(N > 1, "s", "") & " écrasé" & IIf(N > 1, "s", "") & " dans les sous-dossiers" & Chr(10) & ListeDesFichiers
     
                 .SaveAs chemin & "\" & nom
            End With
     
            Application.DisplayAlerts = True
     
            Set Fso = Nothing
     
    End Sub
     
    Sub ListeRecursive(f As Object, Nom$)
     
    Dim Sf As Object, Fich As Object
     
        For Each Sf In f.subfolders
            For Each Fich In Fso.getfolder(Sf).Files
                If LCase(Fich.Name) = Nom Then
                    ReDim Preserve Liste(N)
                    Liste(N) = Sf & "\" & Nom
                    N = N + 1
                End If
            Next Fich
            ListeRecursive Fso.getfolder(Sf), Nom
        Next Sf
     
    End Sub
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  8. #8
    Membre actif Avatar de GADENSEB
    Homme Profil pro
    Responsable Administratif et Financier
    Inscrit en
    mars 2014
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable Administratif et Financier
    Secteur : Finance

    Informations forums :
    Inscription : mars 2014
    Messages : 541
    Points : 282
    Points
    282

    Par défaut

    C'est génial
    cela fonctionne parfaitement

    bonne am et merci encore
    Bonne journée
    Seb



    ###############################
    C'est Totomatique, On va tout Totomate-isé ;-)
    ###############################

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

Discussions similaires

  1. [Batch] Batch listing fichier dans plusieurs répertoire avec date de modification
    Par bmtonweb dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 17/05/2018, 09h14
  2. Comment modifier un fichier dans plusieurs répertoires ?
    Par bras39 dans le forum Shell et commandes GNU
    Réponses: 27
    Dernier message: 22/10/2011, 15h28
  3. Réponses: 3
    Dernier message: 30/05/2008, 10h39
  4. Réponses: 1
    Dernier message: 27/08/2007, 14h01
  5. Réponses: 19
    Dernier message: 12/05/2004, 14h33

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