Réutiliser un nom de fichier

Résolu
lycaon_58 Messages postés 31 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 1 février 2007 - 23 oct. 2006 à 10:28
lycaon_58 Messages postés 31 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 1 février 2007 - 23 oct. 2006 à 12:59
Bonjour à tous,

J'ai utilisé ce code pour créer mon fichier au début de ma macro.

Set NewBook = Workbooks.Add
Do
fname = Application.GetSaveAsFilename
Loop Until fname <> False
NewBook.SaveAs Filename:=fname
Dossier = fname

Je veux ensuite réutiliser fname pour faire appel ) mon fichier dans cette ligne

Workbooks(Dossier).Worksheets("Sheet1").Activate

Je n'ai pas réussi à trouver la syntaxe qui marche ou la bonne manière de faire appel à ce nom de fichier (je crois que Workbooks demande seulement le nom du fichier et pas son chemin...).

Merci pour votre aide,

Lycaon

7 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
23 oct. 2006 à 10:36
Salut,

 (je crois que Workbooks demande seulement le nom du fichier et pas son chemin...).
Essaie alors d'activer le classeur juste avec le nom du fichier

Workbooks(Right(Dossier, InStrRev(Dossier, ""))).Worksheets("Sheet1").Activate
@+,   Ju£i?n
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
23 oct. 2006 à 11:30
en fait, c'est parce que dans l'instruction Dossier =  NewBook.Path & "" & fname
Tu as doublement le nom du chemin.

Voici les variables pour te repérer :

 

Set NewBook = Workbooks.Add

Do
    fname = Application.GetSaveAsFilename
Loop Until fname <> False

NewBook.SaveAs Filename:=fname

Dim Chemin                 As String
Dim NomClasseur            As String
Dim NomCheminEtNomClasseur As String

Chemin = NewBook.Path
NomClasseur = NewBook.Name & ".xls"
NomCheminEtNomClasseur = fname  ' OU
NomCheminEtNomClasseur = Chemin & "" & NomClasseur

NewBook.Worksheets("Sheet1").Activate

<small>Coloration syntaxique automatique [mortalino] </small>
       

@++

<hr width ="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
3
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
23 oct. 2006 à 10:32
Salut,

essaie ceci :

Set NewBook =  Workbooks.Add
Do
    fname = Application.GetSaveAsFilename
Loop Until fname <> False

NewBook.SaveAs Filename:=fname
Dossier = NewBook.Path & "" & fname

Workbooks(Dossier).Worksheets("Sheet1").Activate

<small>Coloration syntaxique automatique [mortalino] </small>
       

@++

<hr width ="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
23 oct. 2006 à 10:46
Oui, c'est pas faux !! 

Je dirais même plus, l'ayant référencé par le Set, :


NewBook.Sheets(1).Activate

@++





<hr width="100%" size="2" />

  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lycaon_58 Messages postés 31 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 1 février 2007
23 oct. 2006 à 10:51
Merci pour ta réponse.

En suivant ton code, je stocke dans fname "I:\Private_ISP\PPM\Book13.xls", dans Dossier "I:\Private_ISP\PPM\I:\Private_ISP\PPM\Book13.xls" et dans NewBook.Path "I:\Private_ISP\PPM".

Ca ne marche donc pas dans Workbooks.

Il faudrait plutôt faire le contraire :  fname = NewBook.Path & "" & NomDuClasseur
et récupérer NomDuClasseur à partir de cette équation.

Je ne sais pas comment le formuler. Je vais chercher mais si quelqu'un a la solution...

Merci encore,

Lycaon
0
lycaon_58 Messages postés 31 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 1 février 2007
23 oct. 2006 à 12:51
Merci à tous les deux pour vos précieuses réponses.

J'ai validé la dernière réponse de Mortalino car c'est celle qui m'a permis de résoudre une partie de mon problème mais la solution de jrivet est pas mal non plus .

Maintenant j'ai un autre problème. Bien qu'ayant déclaré NomClasseur en Public, il ne veut pas utiliser la valeur calculée dans mes sous macros. J'ai pu vérifier ça en mettant des watchs sur NomClasseur dans mes différentes Macros et VBA ne répercute pas la valeur calculée...

Comme ça se fait ?

Merci encore pour vos réponses,

Lycaon
0
lycaon_58 Messages postés 31 Date d'inscription lundi 9 octobre 2006 Statut Membre Dernière intervention 1 février 2007
23 oct. 2006 à 12:59
désolé !!!!!!!!!!!!
J'avais déclaré NomClasseur plusieurs fois....
0
Rejoignez-nous