définir répertoire courant

  • Initiateur de la discussion Initiateur de la discussion friscogreencar
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

friscogreencar

Guest
Bonjour à tous,

je veux enregistrer un document dans un sous-répertoire :
ActiveWorkbook.SaveAs Filename:='C:\\\\\\\\temp\\\\\\\\' & Rep & '\\\\\\\\' & Nomxls
Y-a-t-il un moyen de remplacer 'C:\\\\\\\\temp\\\\\\\\' par currentdir, ou %currentdir% ou ....
En fait j'aimerai être indépendant du répertoire d'origine et toujours enregistrer dans le sous répertoire de celui ou le doc est situé.

Merci de votre aide
 
Bonsoir,

Pour obtenir le chemin de ton classeur, tu as l'instruction : ActiveWorkbook.Path.

Ton code devient alors :

With ActiveWorkbook
    .SaveAs Filename:=.Path & '\\\\' Rep & '\\\\' & Nomxls
End With

Amicalement
Charly
 
merci de ton aide

mais il y a toujours une erreur.
Je rajoute les \\\\\\\\, et des ' dans tous les sens, mais rien n'y fait.

Et en plus, je ne trouve pas cette fonction dans l'aide VBA

si tu as une autre idée, je suis preneur

@+
 
Bonsoir à tous les 2,

Ce n'est pas une fonction, c'est une propriété de Workbook. Je réessaie pour le code :

Code:
With ActiveWorkbook
    .SaveAs Filename:=.Path & '\\' Rep & '\\' & Nomxls
End With

En espérant que tout soit passé :unsure:

Amicalement
Charly
 
Merci à tous 2

Dan, je ne veux pas entrer le nom d'un répertoire et préfère une macro qui le fasse à ma place, sachant que je ne serai pas toujours dans le même.
j'ai donc retesté la formule de Charly, mais j'ai tjs une erreur de compilation sur .path

en fait j'espérais pouvoir m'en sortir avec un truc du style %Dir?%, un peu comme %windir% ou %systemdir%

Mais ça n'a pas l'air de vouloir fonctionner, je vais donc creuser du côté de path.

@+
 
Re,

C'est curieux 😱 Je sais que j'ai XL97 mais je pensais que pour ce genre de propriété, il y avait une compatibilité ascendante !

Encore un coup de Bill :whistle:

Bonne recherche
@+
Charly

PS : Je viens d'aller voir sur la page 5 du wiki de MichelXLD et j'y ai lu la même chose que le code que je viens de te donner. Voici le lien si tu souhaites effectuer une recherche :
https://www.excel-downloads.com/thr...udits-de-formules-repertoires-fichiers.92364/
 
bonjour Friscogreencar , Charly et Dan

Charly , merci pour la pub ...;o)

en reprenant la solution donnée par Charly tu peux faire un essai en remplaçant ActiveWorkbook par ThisWorkbook

Dim Rep As String
Rep='le sous dossier'
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & '\\\\\\\\' & Rep & '\\\\\\\\NomClasseur.xls'



bonne journée
MichelXld

Message édité par: michelxld, à: 28/11/2005 06:09
 
Bonjour Michel, Dan, Charly, Frfiscogreencar, le Forum

En fait je me pose la question si j'ai bien lu la demande... Mais je crois que la soultion est avec 'MkDir'...

Faire une recherche dans le Forum Première génération qui proposera entre autre ce Fil Lien supprimé

Grosso Modo, mais je dois partir, ça donnerait un truc comme ça :

Sub CheckingMakingDir()
Dim TheCurrentPath As String
Dim TheCurrentDir As Variant
Dim i As Byte, NbRep As Byte
Dim ThePath As String
Dim TheName As String


ThePath = 'C:\temp\'
TheName = ActiveWorkbook.Name

TheCurrentPath = CurDir
TheCurrentDir = Split(TheCurrentPath, '\')


NbRep = UBound(TheCurrentDir)
        ThePath = ThePath & TheCurrentDir(NbRep) & '\'
        MakingDir ThePath
ActiveWorkbook.SaveAs Filename:=ThePath & TheName
End Sub

Sub MakingDir(ThePath As String)
On Error GoTo TheEnd
    MKDIR ThePath
TheEnd:
End Sub


Bonne Journée
[ol]@+Thierry[/ol]

PS si tu as au moins Excel 2000, (sinon pour Excel 97, il faut passer par une combinaison de Instr et de Mid car il ne connait pas la Function Split)
 
bonsoir et merci à tous,

La solution donnée par MichelXld fonctionne et répond à ma recherche, ce qui donne dans mon cas :

Nomxls As String
Nomxls = Range('B6') & '.xls'
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & '\\' & Rep & '\\' & Nomxls

Le seul hic est qu'espérant une solution universelle, du genre répertoire par défaut=currentDir ou %CurrentDir% ou ..., là il s'agit d'une propriété de WorkBook, que je ne peux appliquer qu'avec cette fonction.
Or je veux aussi créer automatiquement ce sous-répertoire et y copier,de la même façon, un document Word (Rep étant le contenu d'une cellule, idem Nomxls et idem NomWord).

Je pense que ça va m'emmener trop loin, mais c'est super de trouver des gens compétents prêts à aider les néophytes.

@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

G
  • Question Question
Microsoft 365 VBA : Copier-Coller
Réponses
1
Affichages
918
Réponses
2
Affichages
995
Retour