Ouverture d'un fichier sur CD

  • Initiateur de la discussion Laurent
  • Date de début
L

Laurent

Guest
Bonjour à tout le forum,

J'essaie de faire une macro d'ouverture de fichiers placés sur un CD. La difficulté est que la lettre du lecteur n'est pas la même pour tous les micros. J'ai trouvé dans l'aide une fonction qui permet de récupérer la lettre du lecteur sur lequel se trouve le fichier mais je n'arrive pas à faire fonctionnner ma macro. J'avais pensé faire une boucle avec les lettres classiques des lecteurs CD D, E, F, ... mais je ne connais pas assez VB. Je vous joins mon essai :

Sub Bouton1_QuandClic()
Dim NomFichier As String, fs, f, s
On Error GoTo fin
NomFichier = Cells(ActiveCell.Row, 3) & ".xls"
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(NomFichier)
Workbooks.Open UCase(f.Drive) & ":\" & NomFichier
Exit Sub
fin:
MsgBox "Mauvaise sélection!"
End Sub

Par avance, merci de votre aide et bonne journée à tous.
 
A

Abel

Guest
Bonjour Laurent,

Essaie la méthode GetOpenFilename.

Elle ouvre la boite de dialogue "Fichier/Ouvrir".

Exemple :

RechercheFichier = Application.GetOpenFilename("Fichiers Excel (*.xls), *.xls", ,)
Workbooks.Open Filename:=RechercheFichier

En espérant que cela te dépanne.

Abel
 
Y

Yeahou

Guest
Bonjour Laurent, Abel, le forum

Le code suivant fonctionne, il ne teste que les lecteurs de cdrom par d.DriveType = 4 et s'arrète sur le premier fichier ouvert.

Cordialement, A+

Sub essai()
Dim fs, d, dc
Nom_Fichier = Cells(3, ActiveCell.Row) & ".xls"
Set fs = CreateObject("Scripting.FileSystemObject")
Set dc = fs.Drives
On Error Resume Next
For Each d In dc
If d.DriveType = 4 Then
Workbooks.Open d.DriveLetter & ":\" & Nom_Fichier
If ActiveWorkbook.Name = Nom_Fichier Then Exit For
End If
Next
If ActiveWorkbook.Name = ThisWorkbook.Name Then MsgBox "Mauvaise sélection!"
End Sub
 
L

Laurent

Guest
Merci à Yeahou et Abel pour leurs réponses.
Yeahou, j'ai remplacé ma macro par la tienne, j'ai ouvert un fichier et comme çà fonctionnait, j'ai mis le CD dans mon graveur. Depuis, je n'arrive plus à ouvrir de fichier avec la macro même en remettant le CD dans le lecteur de CD. Je sais que je ne suis pas doué mais j'ai réessayé la manip depuis le début mais je n'y arrive plus. Je ne comprends plus rien.
HELP ME, PLEASE !
Cordialement à tous.
 
Y

Yeahou

Guest
Re à tous

Oui, je vois un bug, j'ai fait une inversion, il faut écrire
Cells(ActiveCell.Row, 3)
au lieu de
Cells(3, ActiveCell.Row)

comme j'avais testé avec une valeur en C3, cela fonctionnait, désolé

A+
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz