-----Message d'origine-----
Bonjour à tous...
et en particulier à LE STEPH qui a eu la gentillesse de
m'envoyer , FIN 07 ,le code ci dessous et que je devais
tenir au courant après le test (tardif !!!)
Le but recherché est de renommer les fichiers d'un s/rep
par un prefixe qui se place devant le nom d'origine des
fichiers
ça marche mais:
- ça ne me prend pas tous les fichiers
- et surtout ça ne traite pas le rep que je désigne, mais
le repertoire d'enregistrement par défaut défini sur le PC
Par ailleurs, au lieu du prefixe prédéfini, j'aimerais y
mettre la ref à la cellule B8 de la feuille ou est la
macro
par ex:
prefixe=[B8]
Sub prefic082()
Dim f
Dim mymsg
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
f = Dir("*.xls")
Application.ScreenUpdating = False
Do While Len(f) > 0
If Mid(f, 1, 3) <> "082" Then
Workbooks.Open f
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "082_06_" & f
Application.DisplayAlerts = True
ActiveWorkbook.Close
End If
mymsg = mymsg & Chr(13) & f
f = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Liste des fichiers: " & mymsg
End Sub
Merci à STEPH ou tout cerveau puissant pouvant m'éclairer
à+
gilles
.
-----Message d'origine-----
Bonjour à tous...
et en particulier à LE STEPH qui a eu la gentillesse de
m'envoyer , FIN 07 ,le code ci dessous et que je devais
tenir au courant après le test (tardif !!!)
Le but recherché est de renommer les fichiers d'un s/rep
par un prefixe qui se place devant le nom d'origine des
fichiers
ça marche mais:
- ça ne me prend pas tous les fichiers
- et surtout ça ne traite pas le rep que je désigne, mais
le repertoire d'enregistrement par défaut défini sur le PC
Par ailleurs, au lieu du prefixe prédéfini, j'aimerais y
mettre la ref à la cellule B8 de la feuille ou est la
macro
par ex:
prefixe=[B8]
Sub prefic082()
Dim f
Dim mymsg
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
f = Dir("*.xls")
Application.ScreenUpdating = False
Do While Len(f) > 0
If Mid(f, 1, 3) <> "082" Then
Workbooks.Open f
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "082_06_" & f
Application.DisplayAlerts = True
ActiveWorkbook.Close
End If
mymsg = mymsg & Chr(13) & f
f = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Liste des fichiers: " & mymsg
End Sub
Merci à STEPH ou tout cerveau puissant pouvant m'éclairer
à+
gilles
.
-----Message d'origine-----
Bonjour à tous...
et en particulier à LE STEPH qui a eu la gentillesse de
m'envoyer , FIN 07 ,le code ci dessous et que je devais
tenir au courant après le test (tardif !!!)
Le but recherché est de renommer les fichiers d'un s/rep
par un prefixe qui se place devant le nom d'origine des
fichiers
ça marche mais:
- ça ne me prend pas tous les fichiers
- et surtout ça ne traite pas le rep que je désigne, mais
le repertoire d'enregistrement par défaut défini sur le PC
Par ailleurs, au lieu du prefixe prédéfini, j'aimerais y
mettre la ref à la cellule B8 de la feuille ou est la
macro
par ex:
prefixe=[B8]
Sub prefic082()
Dim f
Dim mymsg
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
f = Dir("*.xls")
Application.ScreenUpdating = False
Do While Len(f) > 0
If Mid(f, 1, 3) <> "082" Then
Workbooks.Open f
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "082_06_" & f
Application.DisplayAlerts = True
ActiveWorkbook.Close
End If
mymsg = mymsg & Chr(13) & f
f = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Liste des fichiers: " & mymsg
End Sub
Merci à STEPH ou tout cerveau puissant pouvant m'éclairer
à+
gilles
.
ça marche mais:
'Je l'ai effectivement testée
- ça ne me prend pas tous les fichiers
'Dès lors que
- et surtout ça ne traite pas le rep que je désigne
'pour ma part je traitais un nom de rep un peu plus simple mais
ça marche mais:
'Je l'ai effectivement testée
- ça ne me prend pas tous les fichiers
'Dès lors que
- et surtout ça ne traite pas le rep que je désigne
'pour ma part je traitais un nom de rep un peu plus simple mais
ça marche mais:
'Je l'ai effectivement testée
- ça ne me prend pas tous les fichiers
'Dès lors que
- et surtout ça ne traite pas le rep que je désigne
'pour ma part je traitais un nom de rep un peu plus simple mais
-----Message d'origine-----
Bonjour,
J'ai retravaillé votre procédure :-)
Est-ce que cela répond à vos attentes ?
Voici donc :
Sub prefic082()
Dim f
Dim mymsg
Dim oFS, oLecteur, oFichier, oFolder
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C:")
Set oFolder = oFS.GetFolder("C:Q.S.E3arborescence
affairef-Q.S.E")
Application.ScreenUpdating = False
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
For Each oFichier In oFolder.Files
f = oFichier.ShortName
If (Mid(f, 1, 3) <> Range("B8").Value) Then
Application.DisplayAlerts = False
Workbooks.Open oFichier
ActiveWorkbook.SaveAs "082_06_" & f
ActiveWorkbook.Close
Kill f
Application.DisplayAlerts = True
End If
Next
' f = Dir("*.xls")
' Do While Len(f) > 0
' If Mid(f, 1, 3) <> "082" Then
' Workbooks.Open f
' Application.DisplayAlerts = False
' ActiveWorkbook.SaveAs "082_06_" & f
' Application.DisplayAlerts = True
' ActiveWorkbook.Close
' End If
' mymsg = mymsg & Chr(13) & f
' f = Dir
' Loop
Application.ScreenUpdating = True
' MsgBox "Liste des fichiers: " & mymsg
End Sub
Michel B.-----Message d'origine-----
Bonjour à tous...
et en particulier à LE STEPH qui a eu la gentillesse de
m'envoyer , FIN 07 ,le code ci dessous et que je
devais
tenir au courant après le test (tardif !!!)
Le but recherché est de renommer les fichiers d'un
s/rep
par un prefixe qui se place devant le nom d'origine des
fichiers
ça marche mais:
- ça ne me prend pas tous les fichiers
- et surtout ça ne traite pas le rep que je désigne,
mais
le repertoire d'enregistrement par défaut défini sur le
PC
Par ailleurs, au lieu du prefixe prédéfini, j'aimerais
y
mettre la ref à la cellule B8 de la feuille ou est la
macropar ex:
prefixe=[B8]
Sub prefic082()
Dim f
Dim mymsg
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
f = Dir("*.xls")
Application.ScreenUpdating = False
Do While Len(f) > 0
If Mid(f, 1, 3) <> "082" Then
Workbooks.Open f
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "082_06_" & f
Application.DisplayAlerts = True
ActiveWorkbook.Close
End If
mymsg = mymsg & Chr(13) & f
f = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Liste des fichiers: " & mymsg
End Sub
Merci à STEPH ou tout cerveau puissant pouvant
m'éclairer
à+
gilles
.
.
-----Message d'origine-----
Bonjour,
J'ai retravaillé votre procédure :-)
Est-ce que cela répond à vos attentes ?
Voici donc :
Sub prefic082()
Dim f
Dim mymsg
Dim oFS, oLecteur, oFichier, oFolder
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C:")
Set oFolder = oFS.GetFolder("C:Q.S.E3arborescence
affairef-Q.S.E")
Application.ScreenUpdating = False
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
For Each oFichier In oFolder.Files
f = oFichier.ShortName
If (Mid(f, 1, 3) <> Range("B8").Value) Then
Application.DisplayAlerts = False
Workbooks.Open oFichier
ActiveWorkbook.SaveAs "082_06_" & f
ActiveWorkbook.Close
Kill f
Application.DisplayAlerts = True
End If
Next
' f = Dir("*.xls")
' Do While Len(f) > 0
' If Mid(f, 1, 3) <> "082" Then
' Workbooks.Open f
' Application.DisplayAlerts = False
' ActiveWorkbook.SaveAs "082_06_" & f
' Application.DisplayAlerts = True
' ActiveWorkbook.Close
' End If
' mymsg = mymsg & Chr(13) & f
' f = Dir
' Loop
Application.ScreenUpdating = True
' MsgBox "Liste des fichiers: " & mymsg
End Sub
Michel B.
-----Message d'origine-----
Bonjour à tous...
et en particulier à LE STEPH qui a eu la gentillesse de
m'envoyer , FIN 07 ,le code ci dessous et que je
devais
tenir au courant après le test (tardif !!!)
Le but recherché est de renommer les fichiers d'un
s/rep
par un prefixe qui se place devant le nom d'origine des
fichiers
ça marche mais:
- ça ne me prend pas tous les fichiers
- et surtout ça ne traite pas le rep que je désigne,
mais
le repertoire d'enregistrement par défaut défini sur le
PC
Par ailleurs, au lieu du prefixe prédéfini, j'aimerais
y
mettre la ref à la cellule B8 de la feuille ou est la
macro
par ex:
prefixe=[B8]
Sub prefic082()
Dim f
Dim mymsg
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
f = Dir("*.xls")
Application.ScreenUpdating = False
Do While Len(f) > 0
If Mid(f, 1, 3) <> "082" Then
Workbooks.Open f
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "082_06_" & f
Application.DisplayAlerts = True
ActiveWorkbook.Close
End If
mymsg = mymsg & Chr(13) & f
f = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Liste des fichiers: " & mymsg
End Sub
Merci à STEPH ou tout cerveau puissant pouvant
m'éclairer
à+
gilles
.
.
-----Message d'origine-----
Bonjour,
J'ai retravaillé votre procédure :-)
Est-ce que cela répond à vos attentes ?
Voici donc :
Sub prefic082()
Dim f
Dim mymsg
Dim oFS, oLecteur, oFichier, oFolder
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C:")
Set oFolder = oFS.GetFolder("C:Q.S.E3arborescence
affairef-Q.S.E")
Application.ScreenUpdating = False
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
For Each oFichier In oFolder.Files
f = oFichier.ShortName
If (Mid(f, 1, 3) <> Range("B8").Value) Then
Application.DisplayAlerts = False
Workbooks.Open oFichier
ActiveWorkbook.SaveAs "082_06_" & f
ActiveWorkbook.Close
Kill f
Application.DisplayAlerts = True
End If
Next
' f = Dir("*.xls")
' Do While Len(f) > 0
' If Mid(f, 1, 3) <> "082" Then
' Workbooks.Open f
' Application.DisplayAlerts = False
' ActiveWorkbook.SaveAs "082_06_" & f
' Application.DisplayAlerts = True
' ActiveWorkbook.Close
' End If
' mymsg = mymsg & Chr(13) & f
' f = Dir
' Loop
Application.ScreenUpdating = True
' MsgBox "Liste des fichiers: " & mymsg
End Sub
Michel B.-----Message d'origine-----
Bonjour à tous...
et en particulier à LE STEPH qui a eu la gentillesse de
m'envoyer , FIN 07 ,le code ci dessous et que je
devais
tenir au courant après le test (tardif !!!)
Le but recherché est de renommer les fichiers d'un
s/rep
par un prefixe qui se place devant le nom d'origine des
fichiers
ça marche mais:
- ça ne me prend pas tous les fichiers
- et surtout ça ne traite pas le rep que je désigne,
mais
le repertoire d'enregistrement par défaut défini sur le
PC
Par ailleurs, au lieu du prefixe prédéfini, j'aimerais
y
mettre la ref à la cellule B8 de la feuille ou est la
macropar ex:
prefixe=[B8]
Sub prefic082()
Dim f
Dim mymsg
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
f = Dir("*.xls")
Application.ScreenUpdating = False
Do While Len(f) > 0
If Mid(f, 1, 3) <> "082" Then
Workbooks.Open f
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "082_06_" & f
Application.DisplayAlerts = True
ActiveWorkbook.Close
End If
mymsg = mymsg & Chr(13) & f
f = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Liste des fichiers: " & mymsg
End Sub
Merci à STEPH ou tout cerveau puissant pouvant
m'éclairer
à+
gilles
.
.
-----Message d'origine-----
Bonsoir,
J'ai eu un flash, je crois qu'il peut y avoir de la
récursivité. Je m'explique, Pour chaque fichier renommé
un autre est détruit, s'il y maj de la table des
matières, il y aura récursivité pour quelques tours.
Je propose de remodeler un peu comme sas le fait, un
premier passage pour obtenir la table des matières, et
un
second pour la manipulation.
J'y travaille, j'en ai maintenant besoin puisque une
collègue effectue des opérations similaires, il serait
bien de lui fournir quelque chose de stable.
Michel B.-----Message d'origine-----
Bonjour,
J'ai retravaillé votre procédure :-)
Est-ce que cela répond à vos attentes ?
Voici donc :
Sub prefic082()
Dim f
Dim mymsg
Dim oFS, oLecteur, oFichier, oFolder
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C:")
Set oFolder = oFS.GetFolder("C:Q.S.E3arborescence
affairef-Q.S.E")
Application.ScreenUpdating = False
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
For Each oFichier In oFolder.Files
f = oFichier.ShortName
If (Mid(f, 1, 3) <> Range("B8").Value) Then
Application.DisplayAlerts = False
Workbooks.Open oFichier
ActiveWorkbook.SaveAs "082_06_" & f
ActiveWorkbook.Close
Kill f
Application.DisplayAlerts = True
End If
Next
' f = Dir("*.xls")
' Do While Len(f) > 0
' If Mid(f, 1, 3) <> "082" Then
' Workbooks.Open f
' Application.DisplayAlerts = False
' ActiveWorkbook.SaveAs "082_06_" & f
' Application.DisplayAlerts = True
' ActiveWorkbook.Close
' End If
' mymsg = mymsg & Chr(13) & f
' f = Dir
' Loop
Application.ScreenUpdating = True
' MsgBox "Liste des fichiers: " & mymsg
End Sub
Michel B.-----Message d'origine-----
Bonjour à tous...
et en particulier à LE STEPH qui a eu la gentillesse
de
m'envoyer , FIN 07 ,le code ci dessous et que je
devaistenir au courant après le test (tardif !!!)
Le but recherché est de renommer les fichiers d'un
s/reppar un prefixe qui se place devant le nom d'origine
des
fichiers
ça marche mais:
- ça ne me prend pas tous les fichiers
- et surtout ça ne traite pas le rep que je désigne,
maisle repertoire d'enregistrement par défaut défini sur
le
PCPar ailleurs, au lieu du prefixe prédéfini, j'aimerais
ymettre la ref à la cellule B8 de la feuille ou est la
macropar ex:
prefixe=[B8]
Sub prefic082()
Dim f
Dim mymsg
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
f = Dir("*.xls")
Application.ScreenUpdating = False
Do While Len(f) > 0
If Mid(f, 1, 3) <> "082" Then
Workbooks.Open f
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "082_06_" & f
Application.DisplayAlerts = True
ActiveWorkbook.Close
End If
mymsg = mymsg & Chr(13) & f
f = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Liste des fichiers: " & mymsg
End Sub
Merci à STEPH ou tout cerveau puissant pouvant
m'éclairerà+
gilles
.
.
.
-----Message d'origine-----
Bonsoir,
J'ai eu un flash, je crois qu'il peut y avoir de la
récursivité. Je m'explique, Pour chaque fichier renommé
un autre est détruit, s'il y maj de la table des
matières, il y aura récursivité pour quelques tours.
Je propose de remodeler un peu comme sas le fait, un
premier passage pour obtenir la table des matières, et
un
second pour la manipulation.
J'y travaille, j'en ai maintenant besoin puisque une
collègue effectue des opérations similaires, il serait
bien de lui fournir quelque chose de stable.
Michel B.
-----Message d'origine-----
Bonjour,
J'ai retravaillé votre procédure :-)
Est-ce que cela répond à vos attentes ?
Voici donc :
Sub prefic082()
Dim f
Dim mymsg
Dim oFS, oLecteur, oFichier, oFolder
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C:")
Set oFolder = oFS.GetFolder("C:Q.S.E3arborescence
affairef-Q.S.E")
Application.ScreenUpdating = False
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
For Each oFichier In oFolder.Files
f = oFichier.ShortName
If (Mid(f, 1, 3) <> Range("B8").Value) Then
Application.DisplayAlerts = False
Workbooks.Open oFichier
ActiveWorkbook.SaveAs "082_06_" & f
ActiveWorkbook.Close
Kill f
Application.DisplayAlerts = True
End If
Next
' f = Dir("*.xls")
' Do While Len(f) > 0
' If Mid(f, 1, 3) <> "082" Then
' Workbooks.Open f
' Application.DisplayAlerts = False
' ActiveWorkbook.SaveAs "082_06_" & f
' Application.DisplayAlerts = True
' ActiveWorkbook.Close
' End If
' mymsg = mymsg & Chr(13) & f
' f = Dir
' Loop
Application.ScreenUpdating = True
' MsgBox "Liste des fichiers: " & mymsg
End Sub
Michel B.
-----Message d'origine-----
Bonjour à tous...
et en particulier à LE STEPH qui a eu la gentillesse
de
m'envoyer , FIN 07 ,le code ci dessous et que je
devais
tenir au courant après le test (tardif !!!)
Le but recherché est de renommer les fichiers d'un
s/rep
par un prefixe qui se place devant le nom d'origine
des
fichiers
ça marche mais:
- ça ne me prend pas tous les fichiers
- et surtout ça ne traite pas le rep que je désigne,
mais
le repertoire d'enregistrement par défaut défini sur
le
PC
Par ailleurs, au lieu du prefixe prédéfini, j'aimerais
y
mettre la ref à la cellule B8 de la feuille ou est la
macro
par ex:
prefixe=[B8]
Sub prefic082()
Dim f
Dim mymsg
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
f = Dir("*.xls")
Application.ScreenUpdating = False
Do While Len(f) > 0
If Mid(f, 1, 3) <> "082" Then
Workbooks.Open f
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "082_06_" & f
Application.DisplayAlerts = True
ActiveWorkbook.Close
End If
mymsg = mymsg & Chr(13) & f
f = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Liste des fichiers: " & mymsg
End Sub
Merci à STEPH ou tout cerveau puissant pouvant
m'éclairer
à+
gilles
.
.
.
-----Message d'origine-----
Bonsoir,
J'ai eu un flash, je crois qu'il peut y avoir de la
récursivité. Je m'explique, Pour chaque fichier renommé
un autre est détruit, s'il y maj de la table des
matières, il y aura récursivité pour quelques tours.
Je propose de remodeler un peu comme sas le fait, un
premier passage pour obtenir la table des matières, et
un
second pour la manipulation.
J'y travaille, j'en ai maintenant besoin puisque une
collègue effectue des opérations similaires, il serait
bien de lui fournir quelque chose de stable.
Michel B.-----Message d'origine-----
Bonjour,
J'ai retravaillé votre procédure :-)
Est-ce que cela répond à vos attentes ?
Voici donc :
Sub prefic082()
Dim f
Dim mymsg
Dim oFS, oLecteur, oFichier, oFolder
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C:")
Set oFolder = oFS.GetFolder("C:Q.S.E3arborescence
affairef-Q.S.E")
Application.ScreenUpdating = False
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
For Each oFichier In oFolder.Files
f = oFichier.ShortName
If (Mid(f, 1, 3) <> Range("B8").Value) Then
Application.DisplayAlerts = False
Workbooks.Open oFichier
ActiveWorkbook.SaveAs "082_06_" & f
ActiveWorkbook.Close
Kill f
Application.DisplayAlerts = True
End If
Next
' f = Dir("*.xls")
' Do While Len(f) > 0
' If Mid(f, 1, 3) <> "082" Then
' Workbooks.Open f
' Application.DisplayAlerts = False
' ActiveWorkbook.SaveAs "082_06_" & f
' Application.DisplayAlerts = True
' ActiveWorkbook.Close
' End If
' mymsg = mymsg & Chr(13) & f
' f = Dir
' Loop
Application.ScreenUpdating = True
' MsgBox "Liste des fichiers: " & mymsg
End Sub
Michel B.-----Message d'origine-----
Bonjour à tous...
et en particulier à LE STEPH qui a eu la gentillesse
de
m'envoyer , FIN 07 ,le code ci dessous et que je
devaistenir au courant après le test (tardif !!!)
Le but recherché est de renommer les fichiers d'un
s/reppar un prefixe qui se place devant le nom d'origine
des
fichiers
ça marche mais:
- ça ne me prend pas tous les fichiers
- et surtout ça ne traite pas le rep que je désigne,
maisle repertoire d'enregistrement par défaut défini sur
le
PCPar ailleurs, au lieu du prefixe prédéfini, j'aimerais
ymettre la ref à la cellule B8 de la feuille ou est la
macropar ex:
prefixe=[B8]
Sub prefic082()
Dim f
Dim mymsg
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
f = Dir("*.xls")
Application.ScreenUpdating = False
Do While Len(f) > 0
If Mid(f, 1, 3) <> "082" Then
Workbooks.Open f
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "082_06_" & f
Application.DisplayAlerts = True
ActiveWorkbook.Close
End If
mymsg = mymsg & Chr(13) & f
f = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Liste des fichiers: " & mymsg
End Sub
Merci à STEPH ou tout cerveau puissant pouvant
m'éclairerà+
gilles
.
.
.
-----Message d'origine-----
Bonsoir,
Bon j'ai retravaillé tout ça, bien sur c'est à ma façon !
Un mieux vaux mieux que 2 tu l'auras !
Sub prefic082()
Const cteMaxf = 30000
Const cteMinf = 1
Const cteDossier = "C:Q.S.E3arborescence affairef-
Q.S.E"
Dim i, j As Integer
Dim dum As String
Dim f() As String
Dim mymsg
Dim oFS, oLecteur, oFichier, oFolder
Dim varListeNbr As Long
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C:")
Set oFolder = oFS.GetFolder(cteDossier)
Application.ScreenUpdating = False
ChDir cteDossier
varListeNbr = oFolder.Files.Count
i = 1
If ((varListeNbr > cteMinf) And (varListeNbr <
cteMaxf)) Then
ReDim f(varListeNbr)
For Each oFichier In oFolder.Files
f(i) = oFichier.shortname
i = (i + 1)
Next oFichier
For i = 1 To varListeNbr
If (Mid(f(i), 1, 3) <> Range("B8").Value) Then
Application.DisplayAlerts = False
'Application.Dialogs(xlDialogOpen).Show
'Application.Dialogs(xlDialogSort).Show
Workbooks.Open cteDossier & f(i)
ActiveWorkbook.SaveAs cteDossier
& "082_06_" & f(i)
ActiveWorkbook.Close
Kill cteDossier & f(i)
Application.DisplayAlerts = True
End If
Next
End If
End Sub
'prudence sur alinéa
Michel-----Message d'origine-----
Bonsoir,
J'ai eu un flash, je crois qu'il peut y avoir de la
récursivité. Je m'explique, Pour chaque fichier renommé
un autre est détruit, s'il y maj de la table des
matières, il y aura récursivité pour quelques tours.
Je propose de remodeler un peu comme sas le fait, un
premier passage pour obtenir la table des matières, et
unsecond pour la manipulation.
J'y travaille, j'en ai maintenant besoin puisque une
collègue effectue des opérations similaires, il serait
bien de lui fournir quelque chose de stable.
Michel B.-----Message d'origine-----
Bonjour,
J'ai retravaillé votre procédure :-)
Est-ce que cela répond à vos attentes ?
Voici donc :
Sub prefic082()
Dim f
Dim mymsg
Dim oFS, oLecteur, oFichier, oFolder
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C:")
Set oFolder = oFS.GetFolder("C:Q.S.E3arborescence
affairef-Q.S.E")
Application.ScreenUpdating = False
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
For Each oFichier In oFolder.Files
f = oFichier.ShortName
If (Mid(f, 1, 3) <> Range("B8").Value) Then
Application.DisplayAlerts = False
Workbooks.Open oFichier
ActiveWorkbook.SaveAs "082_06_" & f
ActiveWorkbook.Close
Kill f
Application.DisplayAlerts = True
End If
Next
' f = Dir("*.xls")
' Do While Len(f) > 0
' If Mid(f, 1, 3) <> "082" Then
' Workbooks.Open f
' Application.DisplayAlerts = False
' ActiveWorkbook.SaveAs "082_06_" & f
' Application.DisplayAlerts = True
' ActiveWorkbook.Close
' End If
' mymsg = mymsg & Chr(13) & f
' f = Dir
' Loop
Application.ScreenUpdating = True
' MsgBox "Liste des fichiers: " & mymsg
End Sub
Michel B.-----Message d'origine-----
Bonjour à tous...
et en particulier à LE STEPH qui a eu la gentillesse
dem'envoyer , FIN 07 ,le code ci dessous et que je
devaistenir au courant après le test (tardif !!!)
Le but recherché est de renommer les fichiers d'un
s/reppar un prefixe qui se place devant le nom d'origine
desfichiers
ça marche mais:
- ça ne me prend pas tous les fichiers
- et surtout ça ne traite pas le rep que je désigne,
maisle repertoire d'enregistrement par défaut défini sur
lePCPar ailleurs, au lieu du prefixe prédéfini, j'aimerais
ymettre la ref à la cellule B8 de la feuille ou est la
macropar ex:
prefixe=[B8]
Sub prefic082()
Dim f
Dim mymsg
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
f = Dir("*.xls")
Application.ScreenUpdating = False
Do While Len(f) > 0
If Mid(f, 1, 3) <> "082" Then
Workbooks.Open f
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "082_06_" & f
Application.DisplayAlerts = True
ActiveWorkbook.Close
End If
mymsg = mymsg & Chr(13) & f
f = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Liste des fichiers: " & mymsg
End Sub
Merci à STEPH ou tout cerveau puissant pouvant
m'éclairerà+
gilles
.
.
.
.
-----Message d'origine-----
Bonsoir,
Bon j'ai retravaillé tout ça, bien sur c'est à ma façon !
Un mieux vaux mieux que 2 tu l'auras !
Sub prefic082()
Const cteMaxf = 30000
Const cteMinf = 1
Const cteDossier = "C:Q.S.E3arborescence affairef-
Q.S.E"
Dim i, j As Integer
Dim dum As String
Dim f() As String
Dim mymsg
Dim oFS, oLecteur, oFichier, oFolder
Dim varListeNbr As Long
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C:")
Set oFolder = oFS.GetFolder(cteDossier)
Application.ScreenUpdating = False
ChDir cteDossier
varListeNbr = oFolder.Files.Count
i = 1
If ((varListeNbr > cteMinf) And (varListeNbr <
cteMaxf)) Then
ReDim f(varListeNbr)
For Each oFichier In oFolder.Files
f(i) = oFichier.shortname
i = (i + 1)
Next oFichier
For i = 1 To varListeNbr
If (Mid(f(i), 1, 3) <> Range("B8").Value) Then
Application.DisplayAlerts = False
'Application.Dialogs(xlDialogOpen).Show
'Application.Dialogs(xlDialogSort).Show
Workbooks.Open cteDossier & f(i)
ActiveWorkbook.SaveAs cteDossier
& "082_06_" & f(i)
ActiveWorkbook.Close
Kill cteDossier & f(i)
Application.DisplayAlerts = True
End If
Next
End If
End Sub
'prudence sur alinéa
Michel
-----Message d'origine-----
Bonsoir,
J'ai eu un flash, je crois qu'il peut y avoir de la
récursivité. Je m'explique, Pour chaque fichier renommé
un autre est détruit, s'il y maj de la table des
matières, il y aura récursivité pour quelques tours.
Je propose de remodeler un peu comme sas le fait, un
premier passage pour obtenir la table des matières, et
un
second pour la manipulation.
J'y travaille, j'en ai maintenant besoin puisque une
collègue effectue des opérations similaires, il serait
bien de lui fournir quelque chose de stable.
Michel B.
-----Message d'origine-----
Bonjour,
J'ai retravaillé votre procédure :-)
Est-ce que cela répond à vos attentes ?
Voici donc :
Sub prefic082()
Dim f
Dim mymsg
Dim oFS, oLecteur, oFichier, oFolder
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C:")
Set oFolder = oFS.GetFolder("C:Q.S.E3arborescence
affairef-Q.S.E")
Application.ScreenUpdating = False
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
For Each oFichier In oFolder.Files
f = oFichier.ShortName
If (Mid(f, 1, 3) <> Range("B8").Value) Then
Application.DisplayAlerts = False
Workbooks.Open oFichier
ActiveWorkbook.SaveAs "082_06_" & f
ActiveWorkbook.Close
Kill f
Application.DisplayAlerts = True
End If
Next
' f = Dir("*.xls")
' Do While Len(f) > 0
' If Mid(f, 1, 3) <> "082" Then
' Workbooks.Open f
' Application.DisplayAlerts = False
' ActiveWorkbook.SaveAs "082_06_" & f
' Application.DisplayAlerts = True
' ActiveWorkbook.Close
' End If
' mymsg = mymsg & Chr(13) & f
' f = Dir
' Loop
Application.ScreenUpdating = True
' MsgBox "Liste des fichiers: " & mymsg
End Sub
Michel B.
-----Message d'origine-----
Bonjour à tous...
et en particulier à LE STEPH qui a eu la gentillesse
de
m'envoyer , FIN 07 ,le code ci dessous et que je
devais
tenir au courant après le test (tardif !!!)
Le but recherché est de renommer les fichiers d'un
s/rep
par un prefixe qui se place devant le nom d'origine
des
fichiers
ça marche mais:
- ça ne me prend pas tous les fichiers
- et surtout ça ne traite pas le rep que je désigne,
mais
le repertoire d'enregistrement par défaut défini sur
le
PC
Par ailleurs, au lieu du prefixe prédéfini, j'aimerais
y
mettre la ref à la cellule B8 de la feuille ou est la
macro
par ex:
prefixe=[B8]
Sub prefic082()
Dim f
Dim mymsg
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
f = Dir("*.xls")
Application.ScreenUpdating = False
Do While Len(f) > 0
If Mid(f, 1, 3) <> "082" Then
Workbooks.Open f
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "082_06_" & f
Application.DisplayAlerts = True
ActiveWorkbook.Close
End If
mymsg = mymsg & Chr(13) & f
f = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Liste des fichiers: " & mymsg
End Sub
Merci à STEPH ou tout cerveau puissant pouvant
m'éclairer
à+
gilles
.
.
.
.
-----Message d'origine-----
Bonsoir,
Bon j'ai retravaillé tout ça, bien sur c'est à ma façon !
Un mieux vaux mieux que 2 tu l'auras !
Sub prefic082()
Const cteMaxf = 30000
Const cteMinf = 1
Const cteDossier = "C:Q.S.E3arborescence affairef-
Q.S.E"
Dim i, j As Integer
Dim dum As String
Dim f() As String
Dim mymsg
Dim oFS, oLecteur, oFichier, oFolder
Dim varListeNbr As Long
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C:")
Set oFolder = oFS.GetFolder(cteDossier)
Application.ScreenUpdating = False
ChDir cteDossier
varListeNbr = oFolder.Files.Count
i = 1
If ((varListeNbr > cteMinf) And (varListeNbr <
cteMaxf)) Then
ReDim f(varListeNbr)
For Each oFichier In oFolder.Files
f(i) = oFichier.shortname
i = (i + 1)
Next oFichier
For i = 1 To varListeNbr
If (Mid(f(i), 1, 3) <> Range("B8").Value) Then
Application.DisplayAlerts = False
'Application.Dialogs(xlDialogOpen).Show
'Application.Dialogs(xlDialogSort).Show
Workbooks.Open cteDossier & f(i)
ActiveWorkbook.SaveAs cteDossier
& "082_06_" & f(i)
ActiveWorkbook.Close
Kill cteDossier & f(i)
Application.DisplayAlerts = True
End If
Next
End If
End Sub
'prudence sur alinéa
Michel-----Message d'origine-----
Bonsoir,
J'ai eu un flash, je crois qu'il peut y avoir de la
récursivité. Je m'explique, Pour chaque fichier renommé
un autre est détruit, s'il y maj de la table des
matières, il y aura récursivité pour quelques tours.
Je propose de remodeler un peu comme sas le fait, un
premier passage pour obtenir la table des matières, et
unsecond pour la manipulation.
J'y travaille, j'en ai maintenant besoin puisque une
collègue effectue des opérations similaires, il serait
bien de lui fournir quelque chose de stable.
Michel B.-----Message d'origine-----
Bonjour,
J'ai retravaillé votre procédure :-)
Est-ce que cela répond à vos attentes ?
Voici donc :
Sub prefic082()
Dim f
Dim mymsg
Dim oFS, oLecteur, oFichier, oFolder
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C:")
Set oFolder = oFS.GetFolder("C:Q.S.E3arborescence
affairef-Q.S.E")
Application.ScreenUpdating = False
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
For Each oFichier In oFolder.Files
f = oFichier.ShortName
If (Mid(f, 1, 3) <> Range("B8").Value) Then
Application.DisplayAlerts = False
Workbooks.Open oFichier
ActiveWorkbook.SaveAs "082_06_" & f
ActiveWorkbook.Close
Kill f
Application.DisplayAlerts = True
End If
Next
' f = Dir("*.xls")
' Do While Len(f) > 0
' If Mid(f, 1, 3) <> "082" Then
' Workbooks.Open f
' Application.DisplayAlerts = False
' ActiveWorkbook.SaveAs "082_06_" & f
' Application.DisplayAlerts = True
' ActiveWorkbook.Close
' End If
' mymsg = mymsg & Chr(13) & f
' f = Dir
' Loop
Application.ScreenUpdating = True
' MsgBox "Liste des fichiers: " & mymsg
End Sub
Michel B.-----Message d'origine-----
Bonjour à tous...
et en particulier à LE STEPH qui a eu la gentillesse
dem'envoyer , FIN 07 ,le code ci dessous et que je
devaistenir au courant après le test (tardif !!!)
Le but recherché est de renommer les fichiers d'un
s/reppar un prefixe qui se place devant le nom d'origine
desfichiers
ça marche mais:
- ça ne me prend pas tous les fichiers
- et surtout ça ne traite pas le rep que je désigne,
maisle repertoire d'enregistrement par défaut défini sur
lePCPar ailleurs, au lieu du prefixe prédéfini, j'aimerais
ymettre la ref à la cellule B8 de la feuille ou est la
macropar ex:
prefixe=[B8]
Sub prefic082()
Dim f
Dim mymsg
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
f = Dir("*.xls")
Application.ScreenUpdating = False
Do While Len(f) > 0
If Mid(f, 1, 3) <> "082" Then
Workbooks.Open f
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "082_06_" & f
Application.DisplayAlerts = True
ActiveWorkbook.Close
End If
mymsg = mymsg & Chr(13) & f
f = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Liste des fichiers: " & mymsg
End Sub
Merci à STEPH ou tout cerveau puissant pouvant
m'éclairerà+
gilles
.
.
.
.
Le REP qui est pris est celui défini par défaut
C'est peut-être parce que répertoire défini par défaut n'est pas sur le même
-----Message d'origine-----
Bonsoir,
Bon j'ai retravaillé tout ça, bien sur c'est à ma façon !
Un mieux vaux mieux que 2 tu l'auras !
Sub prefic082()
Const cteMaxf = 30000
Const cteMinf = 1
Const cteDossier = "C:Q.S.E3arborescence affairef-
Q.S.E"
Dim i, j As Integer
Dim dum As String
Dim f() As String
Dim mymsg
Dim oFS, oLecteur, oFichier, oFolder
Dim varListeNbr As Long
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C:")
Set oFolder = oFS.GetFolder(cteDossier)
Application.ScreenUpdating = False
ChDir cteDossier
varListeNbr = oFolder.Files.Count
i = 1
If ((varListeNbr > cteMinf) And (varListeNbr <
cteMaxf)) Then
ReDim f(varListeNbr)
For Each oFichier In oFolder.Files
f(i) = oFichier.shortname
i = (i + 1)
Next oFichier
For i = 1 To varListeNbr
If (Mid(f(i), 1, 3) <> Range("B8").Value) Then
Application.DisplayAlerts = False
'Application.Dialogs(xlDialogOpen).Show
'Application.Dialogs(xlDialogSort).Show
Workbooks.Open cteDossier & f(i)
ActiveWorkbook.SaveAs cteDossier
& "082_06_" & f(i)
ActiveWorkbook.Close
Kill cteDossier & f(i)
Application.DisplayAlerts = True
End If
Next
End If
End Sub
'prudence sur alinéa
Michel-----Message d'origine-----
Bonsoir,
J'ai eu un flash, je crois qu'il peut y avoir de la
récursivité. Je m'explique, Pour chaque fichier renommé
un autre est détruit, s'il y maj de la table des
matières, il y aura récursivité pour quelques tours.
Je propose de remodeler un peu comme sas le fait, un
premier passage pour obtenir la table des matières, et
unsecond pour la manipulation.
J'y travaille, j'en ai maintenant besoin puisque une
collègue effectue des opérations similaires, il serait
bien de lui fournir quelque chose de stable.
Michel B.-----Message d'origine-----
Bonjour,
J'ai retravaillé votre procédure :-)
Est-ce que cela répond à vos attentes ?
Voici donc :
Sub prefic082()
Dim f
Dim mymsg
Dim oFS, oLecteur, oFichier, oFolder
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C:")
Set oFolder = oFS.GetFolder("C:Q.S.E3arborescence
affairef-Q.S.E")
Application.ScreenUpdating = False
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
For Each oFichier In oFolder.Files
f = oFichier.ShortName
If (Mid(f, 1, 3) <> Range("B8").Value) Then
Application.DisplayAlerts = False
Workbooks.Open oFichier
ActiveWorkbook.SaveAs "082_06_" & f
ActiveWorkbook.Close
Kill f
Application.DisplayAlerts = True
End If
Next
' f = Dir("*.xls")
' Do While Len(f) > 0
' If Mid(f, 1, 3) <> "082" Then
' Workbooks.Open f
' Application.DisplayAlerts = False
' ActiveWorkbook.SaveAs "082_06_" & f
' Application.DisplayAlerts = True
' ActiveWorkbook.Close
' End If
' mymsg = mymsg & Chr(13) & f
' f = Dir
' Loop
Application.ScreenUpdating = True
' MsgBox "Liste des fichiers: " & mymsg
End Sub
Michel B.-----Message d'origine-----
Bonjour à tous...
et en particulier à LE STEPH qui a eu la gentillesse
dem'envoyer , FIN 07 ,le code ci dessous et que je
devaistenir au courant après le test (tardif !!!)
Le but recherché est de renommer les fichiers d'un
s/reppar un prefixe qui se place devant le nom d'origine
desfichiers
ça marche mais:
- ça ne me prend pas tous les fichiers
- et surtout ça ne traite pas le rep que je désigne,
maisle repertoire d'enregistrement par défaut défini sur
lePCPar ailleurs, au lieu du prefixe prédéfini, j'aimerais
ymettre la ref à la cellule B8 de la feuille ou est la
macropar ex:
prefixe=[B8]
Sub prefic082()
Dim f
Dim mymsg
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
f = Dir("*.xls")
Application.ScreenUpdating = False
Do While Len(f) > 0
If Mid(f, 1, 3) <> "082" Then
Workbooks.Open f
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "082_06_" & f
Application.DisplayAlerts = True
ActiveWorkbook.Close
End If
mymsg = mymsg & Chr(13) & f
f = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Liste des fichiers: " & mymsg
End Sub
Merci à STEPH ou tout cerveau puissant pouvant
m'éclairerà+
gilles
.
.
.
.
Le REP qui est pris est celui défini par défaut
C'est peut-être parce que répertoire défini par défaut n'est pas sur le même
-----Message d'origine-----
Bonsoir,
Bon j'ai retravaillé tout ça, bien sur c'est à ma façon !
Un mieux vaux mieux que 2 tu l'auras !
Sub prefic082()
Const cteMaxf = 30000
Const cteMinf = 1
Const cteDossier = "C:Q.S.E3arborescence affairef-
Q.S.E"
Dim i, j As Integer
Dim dum As String
Dim f() As String
Dim mymsg
Dim oFS, oLecteur, oFichier, oFolder
Dim varListeNbr As Long
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C:")
Set oFolder = oFS.GetFolder(cteDossier)
Application.ScreenUpdating = False
ChDir cteDossier
varListeNbr = oFolder.Files.Count
i = 1
If ((varListeNbr > cteMinf) And (varListeNbr <
cteMaxf)) Then
ReDim f(varListeNbr)
For Each oFichier In oFolder.Files
f(i) = oFichier.shortname
i = (i + 1)
Next oFichier
For i = 1 To varListeNbr
If (Mid(f(i), 1, 3) <> Range("B8").Value) Then
Application.DisplayAlerts = False
'Application.Dialogs(xlDialogOpen).Show
'Application.Dialogs(xlDialogSort).Show
Workbooks.Open cteDossier & f(i)
ActiveWorkbook.SaveAs cteDossier
& "082_06_" & f(i)
ActiveWorkbook.Close
Kill cteDossier & f(i)
Application.DisplayAlerts = True
End If
Next
End If
End Sub
'prudence sur alinéa
Michel
-----Message d'origine-----
Bonsoir,
J'ai eu un flash, je crois qu'il peut y avoir de la
récursivité. Je m'explique, Pour chaque fichier renommé
un autre est détruit, s'il y maj de la table des
matières, il y aura récursivité pour quelques tours.
Je propose de remodeler un peu comme sas le fait, un
premier passage pour obtenir la table des matières, et
un
second pour la manipulation.
J'y travaille, j'en ai maintenant besoin puisque une
collègue effectue des opérations similaires, il serait
bien de lui fournir quelque chose de stable.
Michel B.
-----Message d'origine-----
Bonjour,
J'ai retravaillé votre procédure :-)
Est-ce que cela répond à vos attentes ?
Voici donc :
Sub prefic082()
Dim f
Dim mymsg
Dim oFS, oLecteur, oFichier, oFolder
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C:")
Set oFolder = oFS.GetFolder("C:Q.S.E3arborescence
affairef-Q.S.E")
Application.ScreenUpdating = False
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
For Each oFichier In oFolder.Files
f = oFichier.ShortName
If (Mid(f, 1, 3) <> Range("B8").Value) Then
Application.DisplayAlerts = False
Workbooks.Open oFichier
ActiveWorkbook.SaveAs "082_06_" & f
ActiveWorkbook.Close
Kill f
Application.DisplayAlerts = True
End If
Next
' f = Dir("*.xls")
' Do While Len(f) > 0
' If Mid(f, 1, 3) <> "082" Then
' Workbooks.Open f
' Application.DisplayAlerts = False
' ActiveWorkbook.SaveAs "082_06_" & f
' Application.DisplayAlerts = True
' ActiveWorkbook.Close
' End If
' mymsg = mymsg & Chr(13) & f
' f = Dir
' Loop
Application.ScreenUpdating = True
' MsgBox "Liste des fichiers: " & mymsg
End Sub
Michel B.
-----Message d'origine-----
Bonjour à tous...
et en particulier à LE STEPH qui a eu la gentillesse
de
m'envoyer , FIN 07 ,le code ci dessous et que je
devais
tenir au courant après le test (tardif !!!)
Le but recherché est de renommer les fichiers d'un
s/rep
par un prefixe qui se place devant le nom d'origine
des
fichiers
ça marche mais:
- ça ne me prend pas tous les fichiers
- et surtout ça ne traite pas le rep que je désigne,
mais
le repertoire d'enregistrement par défaut défini sur
le
PC
Par ailleurs, au lieu du prefixe prédéfini, j'aimerais
y
mettre la ref à la cellule B8 de la feuille ou est la
macro
par ex:
prefixe=[B8]
Sub prefic082()
Dim f
Dim mymsg
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
f = Dir("*.xls")
Application.ScreenUpdating = False
Do While Len(f) > 0
If Mid(f, 1, 3) <> "082" Then
Workbooks.Open f
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "082_06_" & f
Application.DisplayAlerts = True
ActiveWorkbook.Close
End If
mymsg = mymsg & Chr(13) & f
f = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Liste des fichiers: " & mymsg
End Sub
Merci à STEPH ou tout cerveau puissant pouvant
m'éclairer
à+
gilles
.
.
.
.
Le REP qui est pris est celui défini par défaut
C'est peut-être parce que répertoire défini par défaut n'est pas sur le même
-----Message d'origine-----
Bonsoir,
Bon j'ai retravaillé tout ça, bien sur c'est à ma façon !
Un mieux vaux mieux que 2 tu l'auras !
Sub prefic082()
Const cteMaxf = 30000
Const cteMinf = 1
Const cteDossier = "C:Q.S.E3arborescence affairef-
Q.S.E"
Dim i, j As Integer
Dim dum As String
Dim f() As String
Dim mymsg
Dim oFS, oLecteur, oFichier, oFolder
Dim varListeNbr As Long
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C:")
Set oFolder = oFS.GetFolder(cteDossier)
Application.ScreenUpdating = False
ChDir cteDossier
varListeNbr = oFolder.Files.Count
i = 1
If ((varListeNbr > cteMinf) And (varListeNbr <
cteMaxf)) Then
ReDim f(varListeNbr)
For Each oFichier In oFolder.Files
f(i) = oFichier.shortname
i = (i + 1)
Next oFichier
For i = 1 To varListeNbr
If (Mid(f(i), 1, 3) <> Range("B8").Value) Then
Application.DisplayAlerts = False
'Application.Dialogs(xlDialogOpen).Show
'Application.Dialogs(xlDialogSort).Show
Workbooks.Open cteDossier & f(i)
ActiveWorkbook.SaveAs cteDossier
& "082_06_" & f(i)
ActiveWorkbook.Close
Kill cteDossier & f(i)
Application.DisplayAlerts = True
End If
Next
End If
End Sub
'prudence sur alinéa
Michel-----Message d'origine-----
Bonsoir,
J'ai eu un flash, je crois qu'il peut y avoir de la
récursivité. Je m'explique, Pour chaque fichier renommé
un autre est détruit, s'il y maj de la table des
matières, il y aura récursivité pour quelques tours.
Je propose de remodeler un peu comme sas le fait, un
premier passage pour obtenir la table des matières, et
unsecond pour la manipulation.
J'y travaille, j'en ai maintenant besoin puisque une
collègue effectue des opérations similaires, il serait
bien de lui fournir quelque chose de stable.
Michel B.-----Message d'origine-----
Bonjour,
J'ai retravaillé votre procédure :-)
Est-ce que cela répond à vos attentes ?
Voici donc :
Sub prefic082()
Dim f
Dim mymsg
Dim oFS, oLecteur, oFichier, oFolder
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oLecteur = oFS.GetDrive("C:")
Set oFolder = oFS.GetFolder("C:Q.S.E3arborescence
affairef-Q.S.E")
Application.ScreenUpdating = False
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
For Each oFichier In oFolder.Files
f = oFichier.ShortName
If (Mid(f, 1, 3) <> Range("B8").Value) Then
Application.DisplayAlerts = False
Workbooks.Open oFichier
ActiveWorkbook.SaveAs "082_06_" & f
ActiveWorkbook.Close
Kill f
Application.DisplayAlerts = True
End If
Next
' f = Dir("*.xls")
' Do While Len(f) > 0
' If Mid(f, 1, 3) <> "082" Then
' Workbooks.Open f
' Application.DisplayAlerts = False
' ActiveWorkbook.SaveAs "082_06_" & f
' Application.DisplayAlerts = True
' ActiveWorkbook.Close
' End If
' mymsg = mymsg & Chr(13) & f
' f = Dir
' Loop
Application.ScreenUpdating = True
' MsgBox "Liste des fichiers: " & mymsg
End Sub
Michel B.-----Message d'origine-----
Bonjour à tous...
et en particulier à LE STEPH qui a eu la gentillesse
dem'envoyer , FIN 07 ,le code ci dessous et que je
devaistenir au courant après le test (tardif !!!)
Le but recherché est de renommer les fichiers d'un
s/reppar un prefixe qui se place devant le nom d'origine
desfichiers
ça marche mais:
- ça ne me prend pas tous les fichiers
- et surtout ça ne traite pas le rep que je désigne,
maisle repertoire d'enregistrement par défaut défini sur
lePCPar ailleurs, au lieu du prefixe prédéfini, j'aimerais
ymettre la ref à la cellule B8 de la feuille ou est la
macropar ex:
prefixe=[B8]
Sub prefic082()
Dim f
Dim mymsg
ChDir "c:Q.S.E3arborescence affairef-Q.S.E"
f = Dir("*.xls")
Application.ScreenUpdating = False
Do While Len(f) > 0
If Mid(f, 1, 3) <> "082" Then
Workbooks.Open f
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs "082_06_" & f
Application.DisplayAlerts = True
ActiveWorkbook.Close
End If
mymsg = mymsg & Chr(13) & f
f = Dir
Loop
Application.ScreenUpdating = True
MsgBox "Liste des fichiers: " & mymsg
End Sub
Merci à STEPH ou tout cerveau puissant pouvant
m'éclairerà+
gilles
.
.
.
.