Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/09/2008, 17h29   #1
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 0
Points : 0
Par défaut [W-03][W-07] Macro Word 2003 ne fonctionnant plus sur Word 2007

Bonjour,
Cette excellent macro permettant de lancer plusieurs macros à la fois sur des fichiers situés dans différents répertoires ne fonctionne plus sur Word 2007, la propriété FileSearch (Application.FileSearch) n'étant plus supportée par ce dernier.
Apparemment, il faut utiliser la fonction Dir ou Dir$ à la place.
Est-ce que le code peut être adapté facilement ?
Merci d'avance.
Dave

Code :
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
Sub MacroRunner()
 
Dim folderList() As String
Dim macroList() As String
Dim oFolderPath As String
Dim macroName As String
Dim i As Long, j As Long, k As Long
Dim oDoc As Document
 
    Application.ScreenUpdating = False
    ReDim folderList(0)
    ReDim macroList(0)
    Do
        With Dialogs(wdDialogCopyFile)
            If .Display <> 0 Then
                oFolderPath = .Directory
                folderList(UBound(folderList)) = oFolderPath
                ReDim Preserve folderList(UBound(folderList) + 1)
              Else
                MsgBox "Cancelled by User"
                Exit Sub
            End If
        End With
    Loop While MsgBox("Do you want to process an additional folder?", vbYesNo + vbQuestion, _
    "More Folders?") = vbYes
    Do
        macroName = InputBox("Enter the name of the macro that you want to run. CodeZapper, ToggleHideParaNos...", "Macro Name", "CodeZapper")
        If Len(macroName) = 0 Then
            MsgBox ("Nothing entered. Exiting routine.")
            Exit Sub
          Else
            macroList(UBound(macroList)) = macroName
            ReDim Preserve macroList(UBound(macroList) + 1)
        End If
    Loop While MsgBox("Do you want to run an additional macro?", vbYesNo + vbQuestion, _
    "More macros?") = vbYes
 
    For i = 0 To UBound(folderList) - 1
        With Application.FileSearch
            .NewSearch
            .LookIn = folderList(i)
            .SearchSubFolders = False
            .FileType = msoFileTypeAllFiles
            If Not .Execute() = 0 Then
                For j = 1 To .FoundFiles.Count
                    Set oDoc = Documents.Open(.FoundFiles(j))
                    For k = 0 To UBound(macroList) - 1
                        Application.Run macroList(k)
                    Next k
                    ActiveDocument.Save
                    ActiveDocument.Close
                    Set oDoc = Nothing
                Next j
              Else
                MsgBox "No files in specified folder(s)"
            End If
        End With
    Next i
    Application.ScreenUpdating = True
    MsgBox "All Done"
End Sub
asaptrad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2008, 20h18   #2
Responsable Word

 
Avatar de Heureux-oli
 
Homme Olivier Lebeau
Contrôleur d'industrie
Inscription : février 2006
Messages : 17 364
Détails du profil
Informations personnelles :
Nom : Homme Olivier Lebeau
Âge : 47
Localisation : Belgique

Informations professionnelles :
Activité : Contrôleur d'industrie
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 17 364
Points : 29 286
Points : 29 286
Bonjour et bienvenue sur les forums Office de DVP.

Effectivement, la fonction FileSearch est disparue avec 2007.

Je pense que passer par FileSystemObject est plus efficient et pour choisir les fichiers ou répertoire FileDialog devrait aussi te venir en aide.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
Débutez en VBA

Mes articles


Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !
Heureux-oli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2008, 20h40   #3
Membre Expert
 
Avatar de JackOuYA
 
Inscription : juin 2008
Messages : 1 036
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 1 036
Points : 1 035
Points : 1 035
bonsoir,

tiens j'ai l'impression de me répéter j'ai donné la même réponse que sur le forum excel il y as 5 minutes.


http://silkyroad.developpez.com/vba/classefilesearch/


__________________
JacqueS.

Ps: je ne télécharge les piéces jointes qu'en dernier recours .(et encore...)

Pour devenir mon ami laissez moi un message
JackOuYA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 07h57   #4
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 0
Points : 0
Citation:
Je pense que passer par FileSystemObject est plus efficient et pour choisir les fichiers ou répertoire FileDialog devrait aussi te venir en aide.
Merci. Peut-on donc faire un échange standard des lignes concernées :

Code :
1
2
3
4
5
With Application.FileSearch
.NewSearch
.LookIn = folderList(i)
.SearchSubFolders = False
.FileType = msoFileTypeAllFiles
ou faut-il tout reprendre ? J'avoue que j'ai du mal à suivre le code d'origine.
asaptrad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 09h57   #5
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Je suppose qu'en exécutant la macro tu comprends ce qu'elle réalise... Il serait donc bien que tu précises ce sur quoi tu achoppes Quelle boucle te pose question ? La première ? La seconde ? Les boucles For ?
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 10h18   #6
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 0
Points : 0
C'est la ligne :

Code :
With Application.FileSearch
car FileSearch n'existe plus dans Word 2007.

Dave
asaptrad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 10h42   #7
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Je répondais à ça :
Citation:
J'avoue que j'ai du mal à suivre le code d'origine.
Pour FileSearch, JackOuYA t'a passé une adresse où il est possible de charger un xla à charger et à valider dans Excel (-> Outils -> Macros complémentaires) et l'url t'indique la manière de procéder.
Ce que fait la boucle impliquant Filesearch ? Il recherche les fichiers dans la liste des répertoires sélectionnés dans la première boucle, ouvre ces fichiers et exécute la/les macro/s qu'il contient et dont tu as également donné la liste dans la boucle Do While précédente.
Bonne journée
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 13h36   #8
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 0
Points : 0
Merci Ouskel'n'or et JackOuYA.
Le chargement de ce xla (dans un module Word ?) permet-il donc de faire tourner sur Word 2007 les macros écrites pour Word 2003 et faisant appel à Filesearch, sans modifier le code de celles-ci ?
J'essaie de saisir son but et son mode de fonctionnement.
Dave
asaptrad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 20h23   #9
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Citation:
Le chargement de ce xla ... sans modifier le code de celles-ci ?
Non, tu devras l'adapter.
Bonne soirée
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h31.


 
 
 
 
Partenaires

Hébergement Web