OVH Cloud OVH Cloud

enregistrer dans le repertoire actif

14 réponses
Avatar
gilles
bonjour =E0 tous
Une macro qui m'a =E9t=E9 propos=E9e par le steph et papou et=20
que j'ai (modestement)adapt=E9e

Sub renommplus prefixe avant ()
Dim machaine, newchain As String
machaine =3D ActiveWorkbook.Name
newchain =3D [B3] & "_" & Mid(machaine, 1, Len(machaine) -=20
4) & ".xls"
ChDir "D:\astusinformatic\aaa" 'j' impose le=20
repertoire
ActiveWorkbook.SaveAs (newchain)ActiveWorkbook.SaveAs=20
(newchain)
Kill "D:\astusinformatic\essai recuperer=20
donnee.xls" ' je supprime le fichier initial
End Sub=20

=C7a marche nickel mais :
-Je souhaite que l'enregistrement se fasse dans le=20
repertoire et sous repertoire ou se trouve le fichier
-je souhaite que le fichier initial soit supprim=E9 dans=20
le repertoire actif
.car les repertoires en question seront deplac=E9s sur=20
divers serveurs ou travaillent les utilisateurs
je ne peux donc pas imposer leur nom dans le code
j'ai voulu mettre ActiveDIR, mais je me suis fait jet=E9 !

Si des VBAtistes sont dispo actuellement et peuvent me=20
pr=EAter main forte , je leur fais une pri=E8re pour 15 jours=20
de soleil
A+=20
gilles

4 réponses

1 2
Avatar
gilles
bonjour isabelle

je vais essayé ta modif sur le code à JP
j'ai essayé ton code qui fonctionne nickel
Ce qui serait la cerise sur le gateau serait qu'il puisse
faire tous les fichiers du rep par kekchose comme next ,
sinon c'est pas grave car j'ai une dizaine de fichiers
concernés
merci à toi et à JP
GILLES

-----Message d'origine-----
non, il faut vraiment qu'il soit fermer. mais en
regardant la proc de Jp

je voie un espasce en trop.
essaie comme ça,

machaine = ActiveWorkbook.Name
chemin = ActiveWorkbook.Path
cheminComplet = ActiveWorkbook.FullName
newchain = [B3] & "_" & Mid(machaine, 1, Len(machaine) -
4) & ".xls"

ActiveWorkbook.SaveAs chemin & "" & newchain
Kill cheminComplet

isabelle


bonjour isabelle ,
tu arrives comme le messie
depuis ce matin que j'em...JP je ne parviens pas à m'en
sortir
ou je le renomme bien mais pas dans le bon repertoire
ou le le mets dans le bon repertoire mais pas avec le
nom


ou j'ai erreur 1004
je m'apprêtais à jeter l'éponge mais tu me réactives
S'il faut qu'il soit fermé , peut être que je peux
mettre


le code dans un private..close?
J'essaie ça
merci Isabelle

-----Message d'origine-----
bonjour gilles,

tant qu'à détruire l'ancien tu pourrais simplement le
renommer, (le

fichier doit être fermer)

Sub OldNameNewName()
OldName = "C:zazaOldNameNewName.xls"
NewName = "C:zaza" & var & "OldNameNewName.xls"
Name OldName As NewName
End Sub

isabelle


jp
c'est de la persécution
erreur 1004
à+

-----Message d'origine-----
Il faut rajouter l'antislash :

chemin = ActiveWorkbook.Path
ActiveWorkbook.SaveAs (chemin & " " & newchain)

j-p
.

.



.









Avatar
rebonjour isabelle,
résultats :
ton correctif du code à JP fonctionne :nickel
sinon
j'ai mis ton code en application en le dupliquant autant
de fois que de fichiers
VBA me renvoie erreur 53 Fichier introuvable , et ça bug
à chaque fois à la ligne
name oldname as newname de l'un des fichiers (jamais le
même)
à+ et merci
gilles
Avatar
isabelle
bonjour gilles,

si tu travaille sur xl2000 et plus pour utiliser la fonction InStrRev
ceci devrait être ok,

Sub macro1()
Set fs = Application.FileSearch
With fs
.LookIn = "C:zaza"
.Filename = "*.xls"
For i = 1 To .FoundFiles.Count
machaine = Right(.FoundFiles(i), InStrRev(.FoundFiles(i), ""))
chemin = Left(.FoundFiles(i), InStrRev(.FoundFiles(i), ""))
newchain = "zz" & "_" & Mid(machaine, 1, Len(machaine) - 4) & ".xls"
ActiveWorkbook.SaveAs chemin & newchain
Kill .FoundFiles(i)
Next i
End With
End Sub

isabelle


rebonjour isabelle,
résultats :
ton correctif du code à JP fonctionne :nickel
sinon
j'ai mis ton code en application en le dupliquant autant
de fois que de fichiers
VBA me renvoie erreur 53 Fichier introuvable , et ça bug
à chaque fois à la ligne
name oldname as newname de l'un des fichiers (jamais le
même)
à+ et merci
gilles


Avatar
gilles
merci isabelle
tu es décidément incollable !
je travaille sur xlxp mais les utilisateurs de cette
macro sont en 97 ,2000,xp, donc...mais je vais tester ton
code
sinon j'ai trouvé pourquoi ça buggait (erreur 53 fichier
introuvable)
c'est simplement , semble t-il car l'odre des fichiers
dans mon code était différent de l'ordre alphabetique ou
windows les classe dans le repertoire.
MERCI encore
à+
gilles

-----Message d'origine-----
bonjour gilles,

si tu travaille sur xl2000 et plus pour utiliser la
fonction InStrRev

ceci devrait être ok,

Sub macro1()
Set fs = Application.FileSearch
With fs
..LookIn = "C:zaza"
..Filename = "*.xls"
For i = 1 To .FoundFiles.Count
machaine = Right(.FoundFiles(i), InStrRev(.FoundFiles
(i), ""))

chemin = Left(.FoundFiles(i), InStrRev(.FoundFiles
(i), ""))

newchain = "zz" & "_" & Mid(machaine, 1, Len(machaine) -
4) & ".xls"

ActiveWorkbook.SaveAs chemin & newchain
Kill .FoundFiles(i)
Next i
End With
End Sub

isabelle


rebonjour isabelle,
résultats :
ton correctif du code à JP fonctionne :nickel
sinon
j'ai mis ton code en application en le dupliquant
autant


de fois que de fichiers
VBA me renvoie erreur 53 Fichier introuvable , et ça
bug


à chaque fois à la ligne
name oldname as newname de l'un des fichiers (jamais le
même)
à+ et merci
gilles
.





1 2