Chercher le SerialNumber

Adamev

XLDnaute Occasionnel
Bonjour à tous et à toutes;
Je voudrais chercher par VBA le numéro de série du disque dur, ou de chaque partition de celui-ci, si chacune a sa propre numéro de série.
Je voudrais savoir aussi si ce numéro est fourni par VBA sous son écriture décimale ou hexadécimale, et dans le premier cas, comment le reconvertir en hexadécimal.
Merci d'avance
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Chercher le SerialNumber

Bonjour


Toujours chérir la touche F1 dans l'aide VBA.
Si tu avais caressé ta touche

Tu aurais pu lire ce qu'il y a ci dessous ;)

Code:
Sub AfficheInfoLecteur(drvpath)
    Dim fs, d, s, t
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set d = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(drvpath)))
    Select Case d.DriveType
        Case 0: t = "Inconnu"
        Case 1: t = "Amovible"
        Case 2: t = "Fixe"
        Case 3: t = "Réseau"
        Case 4: t = "CD-ROM"
        Case 5: t = "Disque RAM"
    End Select
    s = "Lecteur " & d.DriveLetter & ": - " & t
    s = s & vbCrLf & "SN: " & d.SerialNumber
    MsgBox s
End Sub
 

Jiheme

XLDnaute Accro
Re : Chercher le SerialNumber

Bonjour Adamev, Staple

Staple, peux tu m'expliquer STP pourquoi cette macro n'apparait pas dans le menu "macro", j'ai du créer un bouton pour l'excuter.

Et pendant que l'on y est comment tu trouve ce code avec la touche F1, car j'ai beau faire plusieurs essais rien !

Merci
A+
 

Adamev

XLDnaute Occasionnel
Re : Chercher le SerialNumber

Bonjour le fil
Staple, merci pour le code, et pour le "rappel". Effectivement: F1 + "Volume" dans la zone de texte qui s'ouvre, suffisait.
Mais serait-il possible de réduire au minimum ce code pour qu'il donne le numéro de série du lecteur C, sans autres détails.
(je suis débutant au VBA et j'aimerais, avec votre aide, arriver à appliquer ce code aprés l'avoir compris)
Merci bien.
 

Staple1600

XLDnaute Barbatruc
Re : Chercher le SerialNumber

Re


Jiheme:
Mots-clés utilisés dans l'aide VBA: disque dur

Voici le code simplifié:
Pour tester lancer la procédure : mainproc
Code:
Sub AfficheInfoLecteur(drvpath)
    Dim fs, d, s
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set d = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(drvpath)))
    s = "Lecteur " & d.DriveLetter & ": - "
    s = s & " | " & "Serial Number: " & d.SerialNumber
    MsgBox s
End Sub
Code:
Sub mainproc()
AfficheInfoLecteur "C:"
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Chercher le SerialNumber

Re

Si vraiment, tu veux encore réduire le code ( mais c'est moins ergonomique), tu peux te contenter de:
Code:
Sub tout_en_un()
With CreateObject("Scripting.FileSystemObject")
MsgBox "Serial Number:" & vbCrLf & .GetDrive(.GetDriveName(.GetAbsolutePathName("C:"))).serialnumber
End With
End Sub

ou simplement ceci (qui fonctionne aussi)
Code:
Sub tout_en_unBIS()
With CreateObject("Scripting.FileSystemObject")
MsgBox "Serial Number:" & vbCrLf & .GetDrive("C:").serialnumber
End With
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Chercher le SerialNumber

Re, Bonsoir aux autres

Une version plus conviviale
(à laquelle il serait prudent d'ajouter une gestion d'erreur en cas de saisie d'une lettre de lecteur inexistant)
Code:
Sub AfficherSN_HD()
Dim LETTRE_DISQUE, Mess As String
LETTRE_DISQUE = InputBox("Saisir la lettre du lecteur", "Numéro de série Disque", "C")
With CreateObject("Scripting.FileSystemObject")
Mess = "Disque " & LETTRE_DISQUE & vbCrLf & "Serial Number:" & vbCrLf & .GetDrive(LETTRE_DISQUE).serialnumber
End With
MsgBox Mess, vbInformation
End Sub
 

tototiti2008

XLDnaute Barbatruc
Re : Chercher le SerialNumber

Bonjour Adamev, Bonjour Staple :), Bonjour Jiheme :)

Juste pour répondre plus précisément à Jiheme :

Staple, peux tu m'expliquer STP pourquoi cette macro n'apparait pas dans le menu "macro"

Le procédures (Sub) qui ont au moins un argument en entrée, c'est à dire quelque chose entre les parenthèses du Sub, comme

Sub AfficheInfoLecteur(drvpath)

ne sont jamais appelables directement depuis la boite de dialogue Macros et donc pas visibles dans la liste des macros
 

Adamev

XLDnaute Occasionnel
Re : Chercher le SerialNumber

Bonjour Staple, bonjour Jiheme, bonjour Tototiti, le fil;
Je vous remercie tous, pour m'avoir donné ces explications, qui me sont amplement suffisantes.
Et merci particulièrement à toi Staple, je te suis trés reconnaissant.
 

Discussions similaires

Statistiques des forums

Discussions
312 276
Messages
2 086 711
Membres
103 377
dernier inscrit
fredy45