différencier le nom du chemin en VBA

ZZR09

XLDnaute Occasionnel
Bonjour le Forum,

Voici mon problème:
Grace au code récupéré sur XLD, j'ai dans la variable 'RechercheFichier' le chemin d'un classeur à ouvrir:

RechercheFichier = Application.GetOpenFilename('Tous les fichiers Excel(*.xls), *.xls', , 'A la recherche du fichier perdu')

mon problème maintenant, c'est que je voudrais faire quelques traitements à partir du classeur actuel sur le classeur qui sera ouvert mais, j'ai le chemin, pas son nom.

autrement dit, quand mes deux classeurs sont ouverts, je ne peux pas naviguer de l'un à l'autre car je n'aipas le nom du second ... et pourtant il est en mémoire dans le chemin complet 'RecherchFichiuer'!

J'espère être assez clair car s'il me faut joindre un fichier, je vais avoir du mal à supprimer tout ce qui n'est pas nécessaire.

A+
 

2passage

XLDnaute Impliqué
Bonjour,

J'ai un peu de mal à comprendre ton problème en fait. Le nom de ton classeur de départ, tu le connais. Ton second classeur, si tu l'ouvre, il te suffit de faire un Activeworkbook.Name pour le connaitre.. J'ai pas compris ? (remarque ça ne m'étonnerait pas vu que ce matin c'est 'lendemain difficile'....)

A+
 

ZZR09

XLDnaute Occasionnel
Bounjour 2passage, Yeahou, le Forum

Lendemain difficile ... devant l'ordianteur, c'est plus tranquille.
Cela répond bien à ma question.

Je n'avais pas précisé :( c'est pour contrôler que le fichier que je propose d'ouvrir (RechercheFichier) n'est pas déjà ouvert; je veux justement essayer de l'activer ... il me faut son nom.

ce sera quelque chose comme

if windows(Nomfichier).activate = false then
goto continuer
else
windows(Nomfichier).activate
end if

Mais je n'ai pas encore essayé.

Dans ce cas, La réponse de Yeahou est parfait et déjà intégrée à mon UserForm :woohoo:

Merci à vous tous
et A+ ... j'ai bien peur de ne pas encore avoir tout appris u VBA :huh:
 

2passage

XLDnaute Impliqué
Re,

Sinon, tu peux récupérer le nom du classeur par :

Code:
Set fs = CreateObject('Scripting.FileSystemObject')
MsgBox fs.getfilename(RechercheFichier)


Et pour finir, un p'tit bout de code qui active ou ouvre le fichier :

Code:
Sub Active_ou_Ouvre(RechercheFichier As String)
For Each toto In Workbooks
    If Left(RechercheFichier, Len(toto.Name)) = toto.Name Then
        toto.Activate
        Exit Sub
    End If
Next
Workbooks.Open Filename:=RechercheFichier
End Sub
A+
 
Y

Yeahou

Guest
Re bonjour

en autre solution, voici la fonction de Ti pour tester si un classeur est ouvert, en passant le nom en argument, elle renvoie true si il est ouvert, false s'il ne l'est pas

A+
Code:
Function Ouvert(ByVal NomFichier$) As Boolean
Dim Wbk As Workbook
On Error GoTo fin
Set Wbk = Workbooks(NomFichier)
Ouvert = True
fin:
End Function
 

ZZR09

XLDnaute Occasionnel
RE 2passage,

super ton plan, j'ai pu l'adapter :)
Le seul hic c'est qu rechercherfichier contient beaucoup de caractères (chemin complet) mais en comparant avec nomfichier (récupéré par la méthode de Yeahou, le tour est joué et l'utilisateur ne se rend compte de rien.


For Each toto In Workbooks
If toto.Name = NomFichier Then
toto.Activate
Exit Sub
End If
Next

Workbooks.Open Filename:=RechercheFichier

End Sub

Merci beaucoup !!!

:woohoo:
 

Discussions similaires

Réponses
3
Affichages
364

Statistiques des forums

Discussions
312 198
Messages
2 086 142
Membres
103 129
dernier inscrit
Atruc81500