Sur ce fil, on parlait de vieil ordinateur... il se peut que dans certain
cas, vous deviez télécharger et installer ce fichier à cette adresse :
http://www.microsoft.com/downloads/fr-fr/details.aspx?FamilyID|219dcc-ec00-4c98-ba61-fd98467952a8
MichD
--------------------------------------------
Sur ce fil, on parlait de vieil ordinateur... il se peut que dans certain
cas, vous deviez télécharger et installer ce fichier à cette adresse :
http://www.microsoft.com/downloads/fr-fr/details.aspx?FamilyID|219dcc-ec00-4c98-ba61-fd98467952a8
MichD
--------------------------------------------
Sur ce fil, on parlait de vieil ordinateur... il se peut que dans certain
cas, vous deviez télécharger et installer ce fichier à cette adresse :
http://www.microsoft.com/downloads/fr-fr/details.aspx?FamilyID|219dcc-ec00-4c98-ba61-fd98467952a8
MichD
--------------------------------------------
Tu copies tout ce qui suit dans un module standard vide
et tu exécutes la procédure test.
'Déclaration API dans le haut du module standard :
Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Private Declare Function SHGetPathFromIDListA Lib "Shell32.dll" _
(ByVal pidl As Long, ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolderA Lib "Shell32.dll" _
(lpBrowseInfo As BROWSEINFO) As Long
'-----------------------------------------
Sub Test() 'la procédure à exécuter
Dim LecteurSource As String, Chemin As String
Dim PathAndFile As String, GestionErreur As String
Dim X As String, Ok As Boolean, Répertoire As String
'Je suppose que tu connais au moins un répertoire
'à la source de ton lecteur amovible, il s'agit que
'tu en indiques un afin de tester si le lecteur contient
'vraiment ce répertoire. Ce pourrait être une combinaison
'de répertoire comme ExcelPierreBozo si tu le désires.
'*********Variable à définir************
Chemin = "EXCEL 10BOZO LES CULOTTES"
'************************************
On Error GoTo GestionErreur
PathAndFile = RemovableDisk(LecteurSource, Chemin)
If LecteurSource = "" Then
If Err <> 0 Then
Err = 0
LecteurSource = X
PathAndFile = Répertoire
If X = "" Then Exit Sub
Else
MsgBox "Aucun lecteur amovible attaché."
Exit Sub
End If
End If
If EstPret(LecteurSource) = True Then
MsgBox PathAndFile
'Ton code
Else
MsgBox "Lecteur non disponible pour l'instant."
Exit Sub
End If
Exit Sub
GestionErreur:
Do
X = ChoixDossier
Répertoire = X & "" & Chemin
If Dir(Répertoire, vbDirectory) = "" Then
If MsgBox("Le répertoire """ & Répertoire & """" & _
"n'existe pas sur le lecteur sélectionné """ & X & """." & _
vbCrLf & vbCrLf & "Désirez-vous effectuer une " & _
"autre sélection?", vbInformation + vbYesNo, "Attention") vbYes Then
Ok = False
Else
MsgBox "Opération annulée.", vbInformation + vbOKOnly,
Exit Sub
End If
Else
Ok = True
End If
Loop Until Ok = True
Resume Next
End Sub
'-----------------------------------------
Function RemovableDisk(MonLecteur As String, Chemin As String)
Dim strComputer As String, A As String
Dim objWMIService As Object, colDisks As Object
Dim Objdisk As Object
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & _
strComputer & "rootcimv2")
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk")
For Each Objdisk In colDisks
A = Objdisk.Name
'2 constante numérique pour disque dur "removable"
If Objdisk.DriveType = 2 Then
If Dir(Objdisk.Name & "" & Chemin, vbDirectory) <> "" Then
RemovableDisk = Objdisk.Name & "" & Chemin
MonLecteur = Objdisk.Name
Exit Function
End If
End If
Next
End Function
'-----------------------------------------
Function EstPret(Lecteur As String)
Dim T As Double, objFSO As Object, colDrives As Object
Dim objdrive As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objdrive In colDrives
If Lecteur = objdrive Then
If objdrive.IsReady = True Then
EstPret = objdrive.IsReady
Exit Function
End If
End If
Next
End Function
'-----------------------------------------
Function ChoixDossier()
Dim bInfo As BROWSEINFO, szPath As String * 512
bInfo.lpszTitle = "Sélectionnez la lettre du lecteur amovible."
bInfo.ulFlags = &H1
If SHGetPathFromIDListA(SHBrowseForFolderA(bInfo), szPath) Then
ChoixDossier = Left(szPath, InStr(szPath, vbNullChar) - 2)
Else: ChoixDossier = ""
End If
End Function
'-----------------------------------------
MichD
--------------------------------------------
Tu copies tout ce qui suit dans un module standard vide
et tu exécutes la procédure test.
'Déclaration API dans le haut du module standard :
Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Private Declare Function SHGetPathFromIDListA Lib "Shell32.dll" _
(ByVal pidl As Long, ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolderA Lib "Shell32.dll" _
(lpBrowseInfo As BROWSEINFO) As Long
'-----------------------------------------
Sub Test() 'la procédure à exécuter
Dim LecteurSource As String, Chemin As String
Dim PathAndFile As String, GestionErreur As String
Dim X As String, Ok As Boolean, Répertoire As String
'Je suppose que tu connais au moins un répertoire
'à la source de ton lecteur amovible, il s'agit que
'tu en indiques un afin de tester si le lecteur contient
'vraiment ce répertoire. Ce pourrait être une combinaison
'de répertoire comme ExcelPierreBozo si tu le désires.
'*********Variable à définir************
Chemin = "EXCEL 10BOZO LES CULOTTES"
'************************************
On Error GoTo GestionErreur
PathAndFile = RemovableDisk(LecteurSource, Chemin)
If LecteurSource = "" Then
If Err <> 0 Then
Err = 0
LecteurSource = X
PathAndFile = Répertoire
If X = "" Then Exit Sub
Else
MsgBox "Aucun lecteur amovible attaché."
Exit Sub
End If
End If
If EstPret(LecteurSource) = True Then
MsgBox PathAndFile
'Ton code
Else
MsgBox "Lecteur non disponible pour l'instant."
Exit Sub
End If
Exit Sub
GestionErreur:
Do
X = ChoixDossier
Répertoire = X & "" & Chemin
If Dir(Répertoire, vbDirectory) = "" Then
If MsgBox("Le répertoire """ & Répertoire & """" & _
"n'existe pas sur le lecteur sélectionné """ & X & """." & _
vbCrLf & vbCrLf & "Désirez-vous effectuer une " & _
"autre sélection?", vbInformation + vbYesNo, "Attention") vbYes Then
Ok = False
Else
MsgBox "Opération annulée.", vbInformation + vbOKOnly,
Exit Sub
End If
Else
Ok = True
End If
Loop Until Ok = True
Resume Next
End Sub
'-----------------------------------------
Function RemovableDisk(MonLecteur As String, Chemin As String)
Dim strComputer As String, A As String
Dim objWMIService As Object, colDisks As Object
Dim Objdisk As Object
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & _
strComputer & "rootcimv2")
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk")
For Each Objdisk In colDisks
A = Objdisk.Name
'2 constante numérique pour disque dur "removable"
If Objdisk.DriveType = 2 Then
If Dir(Objdisk.Name & "" & Chemin, vbDirectory) <> "" Then
RemovableDisk = Objdisk.Name & "" & Chemin
MonLecteur = Objdisk.Name
Exit Function
End If
End If
Next
End Function
'-----------------------------------------
Function EstPret(Lecteur As String)
Dim T As Double, objFSO As Object, colDrives As Object
Dim objdrive As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objdrive In colDrives
If Lecteur = objdrive Then
If objdrive.IsReady = True Then
EstPret = objdrive.IsReady
Exit Function
End If
End If
Next
End Function
'-----------------------------------------
Function ChoixDossier()
Dim bInfo As BROWSEINFO, szPath As String * 512
bInfo.lpszTitle = "Sélectionnez la lettre du lecteur amovible."
bInfo.ulFlags = &H1
If SHGetPathFromIDListA(SHBrowseForFolderA(bInfo), szPath) Then
ChoixDossier = Left(szPath, InStr(szPath, vbNullChar) - 2)
Else: ChoixDossier = ""
End If
End Function
'-----------------------------------------
MichD
--------------------------------------------
Tu copies tout ce qui suit dans un module standard vide
et tu exécutes la procédure test.
'Déclaration API dans le haut du module standard :
Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Private Declare Function SHGetPathFromIDListA Lib "Shell32.dll" _
(ByVal pidl As Long, ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolderA Lib "Shell32.dll" _
(lpBrowseInfo As BROWSEINFO) As Long
'-----------------------------------------
Sub Test() 'la procédure à exécuter
Dim LecteurSource As String, Chemin As String
Dim PathAndFile As String, GestionErreur As String
Dim X As String, Ok As Boolean, Répertoire As String
'Je suppose que tu connais au moins un répertoire
'à la source de ton lecteur amovible, il s'agit que
'tu en indiques un afin de tester si le lecteur contient
'vraiment ce répertoire. Ce pourrait être une combinaison
'de répertoire comme ExcelPierreBozo si tu le désires.
'*********Variable à définir************
Chemin = "EXCEL 10BOZO LES CULOTTES"
'************************************
On Error GoTo GestionErreur
PathAndFile = RemovableDisk(LecteurSource, Chemin)
If LecteurSource = "" Then
If Err <> 0 Then
Err = 0
LecteurSource = X
PathAndFile = Répertoire
If X = "" Then Exit Sub
Else
MsgBox "Aucun lecteur amovible attaché."
Exit Sub
End If
End If
If EstPret(LecteurSource) = True Then
MsgBox PathAndFile
'Ton code
Else
MsgBox "Lecteur non disponible pour l'instant."
Exit Sub
End If
Exit Sub
GestionErreur:
Do
X = ChoixDossier
Répertoire = X & "" & Chemin
If Dir(Répertoire, vbDirectory) = "" Then
If MsgBox("Le répertoire """ & Répertoire & """" & _
"n'existe pas sur le lecteur sélectionné """ & X & """." & _
vbCrLf & vbCrLf & "Désirez-vous effectuer une " & _
"autre sélection?", vbInformation + vbYesNo, "Attention") vbYes Then
Ok = False
Else
MsgBox "Opération annulée.", vbInformation + vbOKOnly,
Exit Sub
End If
Else
Ok = True
End If
Loop Until Ok = True
Resume Next
End Sub
'-----------------------------------------
Function RemovableDisk(MonLecteur As String, Chemin As String)
Dim strComputer As String, A As String
Dim objWMIService As Object, colDisks As Object
Dim Objdisk As Object
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!" & _
strComputer & "rootcimv2")
Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk")
For Each Objdisk In colDisks
A = Objdisk.Name
'2 constante numérique pour disque dur "removable"
If Objdisk.DriveType = 2 Then
If Dir(Objdisk.Name & "" & Chemin, vbDirectory) <> "" Then
RemovableDisk = Objdisk.Name & "" & Chemin
MonLecteur = Objdisk.Name
Exit Function
End If
End If
Next
End Function
'-----------------------------------------
Function EstPret(Lecteur As String)
Dim T As Double, objFSO As Object, colDrives As Object
Dim objdrive As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set colDrives = objFSO.Drives
For Each objdrive In colDrives
If Lecteur = objdrive Then
If objdrive.IsReady = True Then
EstPret = objdrive.IsReady
Exit Function
End If
End If
Next
End Function
'-----------------------------------------
Function ChoixDossier()
Dim bInfo As BROWSEINFO, szPath As String * 512
bInfo.lpszTitle = "Sélectionnez la lettre du lecteur amovible."
bInfo.ulFlags = &H1
If SHGetPathFromIDListA(SHBrowseForFolderA(bInfo), szPath) Then
ChoixDossier = Left(szPath, InStr(szPath, vbNullChar) - 2)
Else: ChoixDossier = ""
End If
End Function
'-----------------------------------------
MichD
--------------------------------------------
Sur ce fil, on parlait de vieil ordinateur... il se peut que dans certain
cas, vous deviez télécharger et installer ce fichier à cette adresse :
MichD
--------------------------------------------
Sur ce fil, on parlait de vieil ordinateur... il se peut que dans certain
cas, vous deviez télécharger et installer ce fichier à cette adresse :
MichD
--------------------------------------------
Sur ce fil, on parlait de vieil ordinateur... il se peut que dans certain
cas, vous deviez télécharger et installer ce fichier à cette adresse :
MichD
--------------------------------------------
| Quant à cette deuxième solution, elle ne fonctionne pas mieux
C'est ce qui est extraordinaire, c'est l'effort que tu y mets pour décrire
ce qui se passe. Il m'est difficile de tester ce qui se passe quand ça
ne fonctionne pas puisque je n'éprouve aucune difficulté.
MichD
--------------------------------------------
| Quant à cette deuxième solution, elle ne fonctionne pas mieux
C'est ce qui est extraordinaire, c'est l'effort que tu y mets pour décrire
ce qui se passe. Il m'est difficile de tester ce qui se passe quand ça
ne fonctionne pas puisque je n'éprouve aucune difficulté.
MichD
--------------------------------------------
| Quant à cette deuxième solution, elle ne fonctionne pas mieux
C'est ce qui est extraordinaire, c'est l'effort que tu y mets pour décrire
ce qui se passe. Il m'est difficile de tester ce qui se passe quand ça
ne fonctionne pas puisque je n'éprouve aucune difficulté.
MichD
--------------------------------------------
| Quant à cette deuxième solution, elle ne fonctionne pas mieux
C'est ce qui est extraordinaire, c'est l'effort que tu y mets pour décrire
ce qui se passe. Il m'est difficile de tester ce qui se passe quand ça
ne fonctionne pas puisque je n'éprouve aucune difficulté.
MichD
--------------------------------------------
| Quant à cette deuxième solution, elle ne fonctionne pas mieux
C'est ce qui est extraordinaire, c'est l'effort que tu y mets pour décrire
ce qui se passe. Il m'est difficile de tester ce qui se passe quand ça
ne fonctionne pas puisque je n'éprouve aucune difficulté.
MichD
--------------------------------------------
| Quant à cette deuxième solution, elle ne fonctionne pas mieux
C'est ce qui est extraordinaire, c'est l'effort que tu y mets pour décrire
ce qui se passe. Il m'est difficile de tester ce qui se passe quand ça
ne fonctionne pas puisque je n'éprouve aucune difficulté.
MichD
--------------------------------------------
Bonjour,
Est-ce que tu fais partie de ceux dont la toute première version
de la procédure ne fonctionnait pas correctement ?
Tu peux m'indiquer où tu as modifié la virgule ?
Merci pour eux, si tu as trouvé ce qui ne fonctionnait pas.
MichD
--------------------------------------------
Bonjour,
Est-ce que tu fais partie de ceux dont la toute première version
de la procédure ne fonctionnait pas correctement ?
Tu peux m'indiquer où tu as modifié la virgule ?
Merci pour eux, si tu as trouvé ce qui ne fonctionnait pas.
MichD
--------------------------------------------
Bonjour,
Est-ce que tu fais partie de ceux dont la toute première version
de la procédure ne fonctionnait pas correctement ?
Tu peux m'indiquer où tu as modifié la virgule ?
Merci pour eux, si tu as trouvé ce qui ne fonctionnait pas.
MichD
--------------------------------------------