Bonjour,

Dans un dossier, j'ai un ensemble de sous répertoires et pour certains les noms sont écrit avec un mélange de majuscule et de minuscule.
Je voudrais passer tous les noms en majuscule.

Les répertoires existant déjà, je dois (?) passer par un nom intermédiaire pour les renomer, j'ajoute donc un .temp au nom d'orrigine (ligne 38).

Voici ou en est mon script, et je bloque sur la ligne 40 qui me retourne l'erreur 800A0005, argument ou appel de procédure incorrect ...

Pouvez vous me donner un coup de main? C'est certainement assez trivial, mais je ne trouve pas!
Merci d'avance

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
option explicit
dim FSO, objShell
dim obFolder, obFolder2, obSubFolder, SubFolderName
dim SubFolderPath, UCaseName, NewFolderName, FD, FName
 
'Get Application object of the Windows shell.
	Set objShell = WScript.CreateObject("Shell.Application")
 
'Ask the user to select a folder
	Set FSO = CreateObject("Scripting.FileSystemObject")
	Set obFolder = objShell.BrowseForFolder (&H0&, "Select the folder to process", &H1&) ' Var obFolder
	'Keep obFolder for sub programms
	Set obFolder2 = obFolder
 
If NOT obFolder IS Nothing Then
 
	CheckRepSondage FSO, obFolder.Self.Path
 
 
	MsgBox "Finished"
 
Else
 
	MsgBox "Canceled"
 
End If
 
 
Sub CheckRepSondage (FSO, FolderPath)
	Set obFolder = FSO.GetFolder(FolderPath)
	For Each obSubFolder In FSO.GetFolder(obFolder).SubFolders
		'Prend le chemin du rep
		SubFolderPath = obSubFolder.Path
		'Met le chemin en majuscules
		UCaseName = UCase (SubFolderPath)
		Set FD = FSO.GetFolder(obSubFolder)
		'Ajoute .temp au chemin
		FName = UCaseName & ".temp"
		'Renome le répertoire
		FD.Name = FName
 
	Next
End Sub