Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

titre d'un fichier word

5 réponses
Avatar
rico34
Bonjour,

Je souhaite récupérer les 2e et 3e caractères des noms de fichiers word d'un
répertoire donné.
C'est pour finir une macro réalisé avec l'aide d'une file précédente "pied
de page"
réalisée le 4 mai 2007.

Merci

5 réponses

Avatar
Anacoluthe
Bonjour !

'rico34' nous a écrit ...
Je souhaite récupérer les 2e et 3e caractères des noms de fichiers word d'un
répertoire donné.
C'est pour finir une macro réalisé avec l'aide d'une file précédente "pied
de page"


mid("abcdefg.doc",2,2) donne la chaîne "bc"
Reste à savoir ce que vous voulez faire avec ces 2 lettres

Anacoluthe
« La joie est en tout. Il faut savoir l'extraire. »
- CONFUCIUS

Avatar
rico34
Merci pour cette réponse rapide.

Un internaute m'a proposé ce bout de code ci-dessous. Je sais comment faire
pour lister les éléments d'un répertoire, mais pas d'un sous-répertoire.

myFile = Dir$(PathToUse & "*.doc")
While myFile <> ""
'Ouvrir document
Set myDoc = Documents.Open(PathToUse & myFile)

'Enregistrer et fermer document
myDoc.Close SaveChanges:=wdSaveChanges

'Prochain fichier dans le dossier
myFile = Dir$()
Wend

End Sub
Avatar
Anacoluthe
Bonjour !

'rico34' nous a écrit ...
Merci pour cette réponse rapide.

Un internaute m'a proposé ce bout de code ci-dessous. Je sais comment faire
pour lister les éléments d'un répertoire, mais pas d'un sous-répertoire.

myFile = Dir$(PathToUse & "*.doc")
While myFile <> ""
...
myFile = Dir$()
Wend


La fonction Dir (préférez l'objet FileSearch) possède un 2ème argument
permettant de rechercher des sous-répertoires : il suffit de faire
un nouveau Dir dans chaque sous-répertoire.
Si on veut explorer toute l'arborescence la fonction doit
s'appeler elle-même récursivement...

Anacoluthe
« L'abîme appelle l'abîme. »
- Victor HUGO

Avatar
Geo

Si on veut explorer toute l'arborescence la fonction doit
s'appeler elle-même récursivement...


Attention : on peut avoir quelques soucis lorsqu'on emploie Dir
récursivement.

Un ordre Dir réagit en fonction de celui qui a été exécuté précédemment
et non de celui qui a l'air de précéder dans le code.
Ça dépend comment c'est programmé, il faut raisonner sur la succession
chronologique des appels.

Pour les sous-répertoires et la récursivité je conseille plutôt FSO,
voir :
http://www.microsoft.com/france/msdn/scripting/fso.mspx

--
A+

Avatar
Anacoluthe
Hello !

'Geo' nous a écrit ...
Attention : on peut avoir quelques soucis lorsqu'on emploie Dir
récursivement.


Oh que oui ! D'une façon générale la récursivité c'est bon pour les profs
de math ou d'informatique théorique mais mieux vaut éviter en pratique
les mises en abîme... ;-)

Pour les sous-répertoires et la récursivité je conseille plutôt FSO, voir :
http://www.microsoft.com/france/msdn/scripting/fso.mspx


Comme je disais dans mon précédent post, pour explorer
les sous-répertoires, je me contente de l'objet FileSearch
très simple à utiliser :

Public Sub Tous_les_docs()
' dresse la liste de tous les documents de c: !!!
With Application.FileSearch
.FileName = "*.doc"
.LookIn = "C:"
.SearchSubFolders = True ' <--- sous-répertoires !
.Execute
For i = 1 To .FoundFiles.Count
ActiveDocument.Content.InsertAfter vbCr & _
.FoundFiles(i)
Next i
End With
End Sub


Anacoluthe
« L'abîme appelle l'abîme. »
- Victor HUGO