Macro pour ouvrir fichier sur une cle quelque soit la lettre du port usb

mcj1997

XLDnaute Accro
Bonsoir,

J'ai créé cette macro avec l'enregistreur de macro qui me permet d'ouvrir le fichier voiture à cette adresse précise sur ma clé USB.

Mon problème est le suivant : je n'utilise pas toujours le même ordinateur et ainsi ma clé n'est pas toujours à l'adresse "G". Par quoi remplacer G dans la macro ci-dessous afin que quelque soit le port utilisé je puisse ouvrir ce fichier ?

Merci d'avance

Sub OUVERTURE_VENTE_VOITURES()
'
'
Workbooks.Open Filename:="G:\A\PEUGEOT\NEUF\VOITURES.xls", UpdateLinks:=3
End Sub
 

Dranreb

XLDnaute Barbatruc
Re : Macro pour ouvrir fichier sur une cle quelque soit la lettre du port usb

Bonjour.
Vous pouvez toujours vous amuser à essayer toutes les lettres de drives jusqu'à trouver le nom de votre clé.
J'ai retrouvé le nom d'une de mes clés sur son drive par ce code:
VB:
Dim FSO As FileSystemObject
Set FSO = New FileSystemObject
MsgBox FSO.GetDrive("G:\").VolumeName
(nécessite la référence "Microsoft Scripting Runtime" que je mets systématiquement dans tous mes classeurs)
À +
 

mcj1997

XLDnaute Accro
Re : Macro pour ouvrir fichier sur une cle quelque soit la lettre du port usb

Bonjour.
Vous pouvez toujours vous amuser à essayer toutes les lettres de drives jusqu'à trouver le nom de votre clé.
J'ai retrouvé le nom d'une de mes clés sur son drive par ce code:
VB:
Dim FSO As FileSystemObject
Set FSO = New FileSystemObject
MsgBox FSO.GetDrive("G:\").VolumeName
(nécessite la référence "Microsoft Scripting Runtime" que je mets systématiquement dans tous mes classeurs)
À +

Je ne veux évidemment pas chercher toutes les lettres possibles c'est le fond de ma question ! Je veux dans la macro remplacer G par un code qui indique le chemin je me souviens d'un code avec "chemin" et "dim" & mais plus exactement.
 

Efgé

XLDnaute Barbatruc
Re : Macro pour ouvrir fichier sur une cle quelque soit la lettre du port usb

Bonjour mcj1997, Dranreb, Pas sûr d'avoir compris, mais, si le fichier qui contient la macro est sur la même clé que le fichier à ouvrir, ceci donnera la lettre du lecteur:
VB:
MsgBox Left(Split(ThisWorkbook.Path, "\")(0), 1)
Cordialement
 

MJ13

XLDnaute Barbatruc
Re : Macro pour ouvrir fichier sur une cle quelque soit la lettre du port usb

Bonjour à tous

Tu peux toujours essayer avec ce code ( à adapter, bien sur)

Code:
Sub recherche_lecteurs_SurFeuille()
'code adapté par MJ issu de [URL]https://www.excel-downloads.com/threads/trouver-un-fichier-sur-le-pc.14470/[/URL]
derl = Range("h65536").End(xlUp).Rows.Row
Range("H2:I" & derl).Select
Selection.ClearContents
Dim FSO As Object
Dim Drv As Object
Dim Msg$
Range("H2").Select
Set FSO = CreateObject("Scripting.FileSystemObject")
Msg = "Votre système a " & FSO.Drives.Count & " lecteurs :" & vbLf & vbLf
For Each Drv In FSO.Drives
With Drv
'Stop
Select Case .DriveType
Case 0 ' unknown
Msg = Msg & "Lecteur: " & .DriveLetter & " est de type inconnu." & vbLf
ActiveCell.Value = .DriveLetter & ":\"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Value = "type inconnu"
 ActiveCell.Offset(1, -1).Range("A1").Select
Case 1 ' removable, e.g., zip
Msg = Msg & "Lecteur: " & .DriveLetter & " est un disque amovible." & vbLf
ActiveCell.Value = .DriveLetter & ":\"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Value = "disque amovible"
 ActiveCell.Offset(1, -1).Range("A1").Select
Case 2 ' fixed, hard drive
Msg = Msg & "Lecteur: " & .DriveLetter & " est un disque dur." & vbLf
ActiveCell.Value = .DriveLetter & ":\"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Value = "disque dur"
 ActiveCell.Offset(1, -1).Range("A1").Select
Case 3 ' remote
Msg = Msg & "Lecteur: " & .DriveLetter & " est un disque réseau." & vbLf
ActiveCell.Value = .DriveLetter & ":\"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Value = "disque réseau"
 ActiveCell.Offset(1, -1).Range("A1").Select
Case 4 ' CDROM
Msg = Msg & "Lecteur: " & .DriveLetter & " est un CDROM." & vbLf
ActiveCell.Value = .DriveLetter & ":\"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Value = "CDROM"
 ActiveCell.Offset(1, -1).Range("A1").Select
Case 5 ' ram disk
Msg = Msg & "Lecteur: " & .DriveLetter & " est un disque virtuel." & vbLf
ActiveCell.Value = .DriveLetter & ":\"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.Value = "disque virtuel"
 ActiveCell.Offset(1, -1).Range("A1").Select
End Select
End With
Next
End Sub
 
Dernière édition:

mcj1997

XLDnaute Accro
Re : Macro pour ouvrir fichier sur une cle quelque soit la lettre du port usb

Bonjour mcj1997, Dranreb, Pas sûr d'avoir compris, mais, si le fichier qui contient la macro est sur la même clé que le fichier à ouvrir, ceci donnera la lettre du lecteur:
VB:
MsgBox Left(Split(ThisWorkbook.Path, "\")(0), 1)
Cordialement

Bonjour,

Je n'arrive pas à intégrer votre ligne dans ma formule.

Ci-dessous j'ai retrouvé une macro me permettant d'enregistrer sur ma clé sans connaitre la lettre de la clé USB afin de pouvoir m'en servir sur différents ordinateur.

Il me reste à adapter cette formule pour ouvrir un fichier sur ma clé.


Dim Chemin$
Chemin = Mid(ThisWorkbook.Path, 1, 3)
'pas utiles à priori ces 2 lignes :
'ChDrive mid(Chemin,1,1)
'ChDir Chemin
ActiveWorkbook.SaveAs Filename:=Chemin & "\A\VOITURES.xls", FileFormat:=xlNormal, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
 

Efgé

XLDnaute Barbatruc
Re : Macro pour ouvrir fichier sur une cle quelque soit la lettre du port usb

Re, Bonjour Mj13, @ mcj1997 : Peut être, avec ton dernier code:
VB:
Workbooks.Open Filename:=Chemin & "\A\PEUGEOT\NEUF\VOITURES.xls", UpdateLinks:=3
Cordialement
 

Efgé

XLDnaute Barbatruc
Re : Macro pour ouvrir fichier sur une cle quelque soit la lettre du port usb

Re, A Voir l'exemple on n'en est nulle part.... SI ton chemin d'ouverture de calsseur est bon, SI le classeur est sur la même clé que le classeur à ouvrir, et SI tu ne fait pas le test avec le dossier "A" enregistrer sur ton bureau, alors, essai ceci. Cordialement
 

Pièces jointes

  • Classeur1(2).xls
    19.5 KB · Affichages: 80
  • Classeur1(2).xls
    19.5 KB · Affichages: 74
  • Classeur1(2).xls
    19.5 KB · Affichages: 74

mcj1997

XLDnaute Accro
Re : Macro pour ouvrir fichier sur une cle quelque soit la lettre du port usb

Re, A Voir l'exemple on n'en est nulle part.... SI ton chemin d'ouverture de calsseur est bon, SI le classeur est sur la même clé que le classeur à ouvrir, et SI tu ne fait pas le test avec le dossier "A" enregistrer sur ton bureau, alors, essai ceci. Cordialement


Merci mais cela ne fonctionne toujours pas, entre temps j'ai essayé de nouveau de reprendre la macro du poste #6 qui fonctionne pour enregistrer sous la clé sans connaitre la lettre du port ou est la clé et je n'arrive pas à adapter cette formule pour ouvrir un fichier dans les mêmes conditions. Pourquoi cela fonctionne pour enregistrer mais pas pour ouvrir ?
 

Dranreb

XLDnaute Barbatruc
Re : Macro pour ouvrir fichier sur une cle quelque soit la lettre du port usb

Bonjour à tous.
Le Premier slash est sans doute en trop dans :
Workbooks.Open Filename:=Chemin & "\A\PEUGEOT\NEUF\VOITURES.xls", UpdateLinks:=3
Parce que Mid(ThisWorkbook.Path, 1, 3) renvoit "x:\" qui concaténé à \A\PEUGEOT etc donne "x:\\A\PEUGEOT etc.
Cordialement.
 

Efgé

XLDnaute Barbatruc
Re : Macro pour ouvrir fichier sur une cle quelque soit la lettre du port usb

Re, Dernière tentative pour ma part, @ mcj1997 : Mets ta clé sur ton pc, ouvre le classeur contenant la macro, copi le chemin complet de ce classeur, ouvre le classeur "VOITURES.xls", copi le chemin complet du classeur "VOITURES.xls" . Donne nous les deux chemins copiés..... Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 295
Messages
2 086 959
Membres
103 404
dernier inscrit
sultan87