définir répertoire courant

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
 

Charly2

Nous a quittés en 2006
Repose en paix
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
 
F

frfiscogreencar

Guest
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

@+
 

Charly2

Nous a quittés en 2006
Repose en paix
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
 
F

Friscogreencar

Guest
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.

@+
 

Charly2

Nous a quittés en 2006
Repose en paix
Re,

C'est curieux :eek: 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/
 

MichelXld

XLDnaute Barbatruc
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
 

_Thierry

XLDnaute Barbatruc
Repose en paix
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)
 
F

friscogreencar

Guest
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.

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 338
Messages
2 087 403
Membres
103 536
dernier inscrit
komivi