Pb d'ouverture d'un autre fichier

Bonsoir à tous,

Pourriez-vous me dire ce qui cloche dans ce code, qui me permets d'ouvrir un autre fichier qui lui peut se trouver sur un disque dur externe ou clé USB

  • Le code appartient au bouton "RETOUR"
  • L'erreur est à la ligne: Workbooks.Open Filename:=Chemin, qui est surlignée en jaune (bien sûr).
Private Sub CommandButton22_Click()
Dim Dossier As String, Fichier As String, Chemin As String
Chemin = ThisWorkbook.Path & "\Cours Jm\Pharmacologie.xlsm\"
 Chemin = Dossier & Fichier

 Dim Presence As Boolean
 Presence = False

 For Each w In Workbooks

If w.Name = Fichier Then Presence = True
 Next w

 If Presence = True Then
 Workbooks(Fichier).Activate
 Else
Workbooks.Open Filename:=Chemin
 End If
 End Sub

Merci par avance

Bonjour

As-tu tester d'ôter le caractères "\" à la fin de ton chemin

Chemin = ThisWorkbook.Path & "\Cours Jm\Pharmacologie.xlsm"

bonsoir,

Non cela ne fonctionne pas

Bonjour Djodjo, M12,

Le point dans un chemin correspond au type du fichier. Donc il n'est pas possible de rajouter ensuite une suite. Même avec \

Soit dans ton cas un fichier supplémentaire.

En fait il est considéré par le Shell que le dot (.) donne le final à la recherche.

Donc il faudrait que je fasse quoi?

A nouveau,

Pourquoi il y a deux fois au début du code

Chemin=

Le 1ier c'est OK. Mais le deuxième

Chemin = Dossier & fichier. Que vaut Chemin ici?

Bonsoir X Cellus,,Je reconnais ne pas être très caller en VBA.

C'est un essai de code je pensais bien faire. Mais visiblement, je me trompe.

DJODJO

Suite,

Apparemment tu souhaites ouvrir le 2ième fichier qui se nomme pharmacologie. Xlsm

Donc il faut tenter de l'ouvrir avec ton workbooks. Open

Mais avant une ligne de code On error resume next ou On error goto tel ligne permet de ne pas bloquer le code.

pourrais-tu m'aider à faire ce code, je suis complètement perdu?

Merci

A nouveau,

Je vais passer sur l'ordi pour écrire le code. Car là je suis sur le mobile.

Donc sous peu.

Juste ton fichier à ouvrir est bien dans le même chemin que le fichier actuel qui gère la macro.

Modification du code

Private Sub CommandButton22_Click()
Dim Chemin, Dossier, Fichier As String
Chemin = ThisWorkbook.Path
Fichier = "\pharmacologie.xlsm"
On Error GoTo ErrMess
Workbooks.Open Chemin & Fichier
Rep = MsgBox("Fichier ouvert", vbInformation, "INFO")
Exit Sub
ErrMess:
Rep = MsgBox("Fichier non-trouvé", vbCritical, "ATTENTION")
End Sub

Le 2ième fichier est supposé être disponible sur le même Chemin que celui possédant cette macro

Bons tests, bonne continuation.

Le chemin de mon fichier est:

F:\Cours JM\Anatomie\Cours Anatomie.xlsm

Et celui que je cherche a ouvrir est:

F:\Cours JM\Pharmacologie.xlsm

Ces deux fichier peuvent se trouver soit sur un DDE, soit sur une clé USB mais toujours ensemble.

Merci

Suite,

Ok, mais ce n'est pas tout a fait le même chemin

En effet,

F:\Cours JM\Anatomie présente un dossier supplémentaire, soit Anatomie. Donc il faut ne pas le prendre en compte pour

F:\Cours JM

Donc on va modifier en remplaçant Anatomie par une chaîne nulle.

Pour cela

Chemin = ThisWorkbook.Path ' va être suivi par
Chemin = Replace(Chemin,"Anatomie","",1)

Cela ne fonctionne pas, j'ai le message d'erreur:

Fichier non trouvé

Place en début de code

Workbooks.Open "F:\Cours JM\pharmacologie.Xlsm"
Rep = MsgBox("Fichier ouvert", vbInformation, "INFO")
stop

Le stop va arrêter la macro. Si le message est Fichier Ouvert, c'est que ton fichier est bien dans la clé USB sinon:

Soit le nom est mal ortographié, soit le fichier n'existe pas ou c'est un fichier xlsx

Suite,

J'ai laissé un \ au début de la chaîne Fichier, il faut l'ôter.

C'est Fichier = "pharmacologie.xlsm"

C'est cela qui a posé souci dans la recherche.

Alors ?

Fichier trouvé ou non?

Oui trouvé car il me dit qu'il est ouvert et retourne au VBA en surlignant STOP

Donc c'est ok,

Tu peux arrêter la macro en cliquant sur le bouton carré bleu dans le menu.

Puis enlever les lignes récemment ajoutés en début de code, stop compris.

Et remettre seulement un stop plus bas

Private Sub CommandButton22_Click()
Dim Chemin, Dossier, Fichier As String
Chemin = ThisWorkbook.Path
Chemin = Replace(Chemin,"Anatomie","",1) 
Fichier = "pharmacologie.xlsm"
Cible = Chemin & Fichier
stop ' Pour vérifier en passant la souris en survol sur Cible
On Error GoTo ErrMess
Workbooks.Open Cible
Rep = MsgBox("Fichier ouvert", vbInformation, "INFO")
Exit Sub
ErrMess:
Rep = MsgBox("Fichier non-trouvé", vbCritical, "ATTENTION")
End Sub

A tester maintenant le code

Effectivement, cela fonctionne nickel

Arriverais-tu régler le problème du "fichier ouvert"?

Rechercher des sujets similaires à "ouverture fichier"