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

compléter le nom de fichiers par macro

6 réponses
Avatar
gilles
bonjour =E0 tous
question deja pos=E9e(mal?) et rest=E9e sans r=E9ponse=20
satisfaisante :
sur xl97 ou plus r=E9cent
je souhaite compl=E9ter les noms de fichiers d'un=20
r=E9pertoire par un pr=E9fixe =E0 pr=E9ciser par un textbox ou=20
kekchose dans ce genre
ex de 2 fichiers :
liste de plans.xls
fiche d analyse.xls
deviendraient
082 26 liste de plans.xls
082 26 fiche d analyse.xls
La QU de fichiers peut varier plus ou moins
J'ai cru voir une r=E9ponse =E0 un autre internaute il y a=20
quelques mois, mais j'ai beau =E9pluch=E9 les messages , je=20
ne trouve plus
Quelqu'un non amoindri par le farniente des vacances=20
aurait-il(elle)une solution ?
Qu'il soit b=E9ni par les dieux du soleil
=E0+

6 réponses

Avatar
LeSteph
Bonjour,

Dans cet exemple 082_
représente une partie fixe (si besoin)
num varie de 1 et conserve sa dernière valeur pendant une instance
On suppose agir sur activeworkbook en tant que fichier enregistré.
Le fichier est enregistré avecle préfixe et réouvert selon son origine.

Sub prefic()
Dim myfic
myfic = ActiveWorkbook.Name
Static num As Integer
Dim monfic
num = num + 1
monfic = "082" & "_" & num & ActiveWorkbook.Name
MsgBox "enregistrement de " & monfic

ActiveWorkbook.SaveAs monfic
ActiveWorkbook.Close

Workbooks.Open Filename:=myfic

End Sub

On peut adapter
"gilles" a écrit dans le message de
news:384b01c4724b$b10624a0$
bonjour à tous
question deja posée(mal?) et restée sans réponse
satisfaisante :
sur xl97 ou plus récent
je souhaite compléter les noms de fichiers d'un
répertoire par un préfixe à préciser par un textbox ou
kekchose dans ce genre
ex de 2 fichiers :
liste de plans.xls
fiche d analyse.xls
deviendraient
082 26 liste de plans.xls
082 26 fiche d analyse.xls
La QU de fichiers peut varier plus ou moins
J'ai cru voir une réponse à un autre internaute il y a
quelques mois, mais j'ai beau épluché les messages , je
ne trouve plus
Quelqu'un non amoindri par le farniente des vacances
aurait-il(elle)une solution ?
Qu'il soit béni par les dieux du soleil
à+
Avatar
Salut STEPH
et merci pour ta réponse
Comme je suis un VBAtiste débutant, je vais éplucher ton
code
toutefois, une précision:
le (ou autre N°,sera toujours le même pour tous les
fichiers
ex
082 06 AAA.xls
082 06 AZFAZ.xls
082 06 BCBK.xls
et comme j'ai plusieurs fichiers , je voudrais retrouver
un FOR ...NEXT ou kekchos e qui renvoit aux fichiers
suivants du repertoire
Donc j'essaie de décripter pour voir si ça répond
merci encore
à+
-----Message d'origine-----

Bonjour,

Dans cet exemple 082_
représente une partie fixe (si besoin)
num varie de 1 et conserve sa dernière valeur pendant
une instance

On suppose agir sur activeworkbook en tant que fichier
enregistré.

Le fichier est enregistré avecle préfixe et réouvert
selon son origine.


Sub prefic()
Dim myfic
myfic = ActiveWorkbook.Name
Static num As Integer
Dim monfic
num = num + 1
monfic = "082" & "_" & num & ActiveWorkbook.Name
MsgBox "enregistrement de " & monfic

ActiveWorkbook.SaveAs monfic
ActiveWorkbook.Close

Workbooks.Open Filename:=myfic

End Sub

On peut adapter
"gilles" a écrit
dans le message de

news:384b01c4724b$b10624a0$
bonjour à tous
question deja posée(mal?) et restée sans réponse
satisfaisante :
sur xl97 ou plus récent
je souhaite compléter les noms de fichiers d'un
répertoire par un préfixe à préciser par un textbox ou
kekchose dans ce genre
ex de 2 fichiers :
liste de plans.xls
fiche d analyse.xls
deviendraient
082 26 liste de plans.xls
082 26 fiche d analyse.xls
La QU de fichiers peut varier plus ou moins
J'ai cru voir une réponse à un autre internaute il y a
quelques mois, mais j'ai beau épluché les messages , je
ne trouve plus
Quelqu'un non amoindri par le farniente des vacances
aurait-il(elle)une solution ?
Qu'il soit béni par les dieux du soleil
à+


.



Avatar
LeSteph
Bonjour Gilles,

le (ou autre N°,sera toujours le même pour tous les fichiers


Aucun problème , s'il doit rester fixe tu gardes comme dans ton exemple le
préfixe "082_06_"
un conseil (éviter les espaces même si c'est admis dans les nouvelles
versions).
Mon idée d'ajouter une partie variable à 082_ tenait à la possibiliité
d'appeler une seconde fois la macro, sans souci
(ce que j'avais compris d'abord 082_1_aaa.xls, puis si on rééxécute
082_2_aaa.xls...etc).
Tu peux enlever le num donc...

et comme j'ai plusieurs fichiers , je voudrais retrouver
un FOR ...NEXT ou kekchos e qui renvoit aux fichiers
suivants du repertoire
(Là on ne part plus d'un fichier nécessairement ouvert et à ce moment là

on ne le rouvre pas en fin de macro...?!)
Pour mettre en boucle on peut mais là il faut préciser car risque de bobo:
dada.xls...082_06_dada.xls....082_06_082_06_dada.xls.....
082_06_082_06_082_06_dada.xls.....
Il faudra sauter l'exécution pour les fichiers qui ont déjà le préfixe, ou
bien
désigner un répertoire source et un répertoire destination.
Je regarde et je reposte une solution...

a écrit dans le message de
news:405601c472ed$ce8a9220$
Salut STEPH
et merci pour ta réponse
Comme je suis un VBAtiste débutant, je vais éplucher ton
code
toutefois, une précision:
le (ou autre N°,sera toujours le même pour tous les
fichiers
ex
082 06 AAA.xls
082 06 AZFAZ.xls
082 06 BCBK.xls
et comme j'ai plusieurs fichiers , je voudrais retrouver
un FOR ...NEXT ou kekchos e qui renvoit aux fichiers
suivants du repertoire
Donc j'essaie de décripter pour voir si ça répond
merci encore
à+
-----Message d'origine-----

Bonjour,

Dans cet exemple 082_
représente une partie fixe (si besoin)
num varie de 1 et conserve sa dernière valeur pendant
une instance

On suppose agir sur activeworkbook en tant que fichier
enregistré.

Le fichier est enregistré avecle préfixe et réouvert
selon son origine.


Sub prefic()
Dim myfic
myfic = ActiveWorkbook.Name
Static num As Integer
Dim monfic
num = num + 1
monfic = "082" & "_" & num & ActiveWorkbook.Name
MsgBox "enregistrement de " & monfic

ActiveWorkbook.SaveAs monfic
ActiveWorkbook.Close

Workbooks.Open Filename:=myfic

End Sub

On peut adapter
"gilles" a écrit
dans le message de

news:384b01c4724b$b10624a0$
bonjour à tous
question deja posée(mal?) et restée sans réponse
satisfaisante :
sur xl97 ou plus récent
je souhaite compléter les noms de fichiers d'un
répertoire par un préfixe à préciser par un textbox ou
kekchose dans ce genre
ex de 2 fichiers :
liste de plans.xls
fiche d analyse.xls
deviendraient
082 26 liste de plans.xls
082 26 fiche d analyse.xls
La QU de fichiers peut varier plus ou moins
J'ai cru voir une réponse à un autre internaute il y a
quelques mois, mais j'ai beau épluché les messages , je
ne trouve plus
Quelqu'un non amoindri par le farniente des vacances
aurait-il(elle)une solution ?
Qu'il soit béni par les dieux du soleil
à+


.



Avatar
LeSteph
ReBonjour,
Faisant suite au précédent post:
Remplacer "c:monrep" par
le nom du répertoire
pour chaque fichier (ex: monfic.xls)du répert ne commençant pas par 082
ceci ouvrira et créera une copie sous 082_06_monfic.xls et le refermera
Cela écrasera l'ancien 082_06_monfic.. s'il existe déjà.

Sub prefic082()
Dim f
Dim mymsg
ChDir "c:monrep"
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
Avatar
gilles
merci STEPH
j'ai un peu de temps en ce moment donc j'essaie toutes
les suggestions qui me sont faites et la tienne illico
merci encore
je te tiens au courant
à+
-----Message d'origine-----
ReBonjour,
Faisant suite au précédent post:
Remplacer "c:monrep" par
le nom du répertoire
pour chaque fichier (ex: monfic.xls)du répert ne
commençant pas par 082

ceci ouvrira et créera une copie sous 082_06_monfic.xls
et le refermera

Cela écrasera l'ancien 082_06_monfic.. s'il existe déjà.

Sub prefic082()
Dim f
Dim mymsg
ChDir "c:monrep"
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


.



Avatar
LeSteph
D'accord, je ne suis pas loin , enfin pour un jour ou deux
après , vacances
"gilles" a écrit dans le message de
news:667d01c47572$831576c0$
merci STEPH
j'ai un peu de temps en ce moment donc j'essaie toutes
les suggestions qui me sont faites et la tienne illico
merci encore
je te tiens au courant
à+
-----Message d'origine-----
ReBonjour,
Faisant suite au précédent post:
Remplacer "c:monrep" par
le nom du répertoire
pour chaque fichier (ex: monfic.xls)du répert ne
commençant pas par 082

ceci ouvrira et créera une copie sous 082_06_monfic.xls
et le refermera

Cela écrasera l'ancien 082_06_monfic.. s'il existe déjà.

Sub prefic082()
Dim f
Dim mymsg
ChDir "c:monrep"
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


.