XL 2021 Code manufacturier et fabricant (Ram) suite projet en cours ( à tester s'il vous plait )

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD
Bonjour à tous et à ceux qui on suivi ma discussion précédente,

Je cherche à pouvoir récupérer les codes fabricant de chaque manufacturier pour les ram ( barettes mémoires )
je suis tombé la dessus, du coup j'ai adapté en fonction.

Capture d’écran 2024-11-01 111022.jpg


Je vous joint un code que j'aimerai que vous testiez, et savoir le code (Marque) que vous obtenez en "B2" etc..
Exemple,

Capture d’écran 2024-11-01 112036.jpg


Et si le code ou fabricant ne figure pas me le dire (le code et éventuellement le fabricant si vous le connaissez).
En vous remerciant tous.
Nico.

VB:
Sub GetRAMInfo3()
    Dim objWMI As Object
    Dim objMemory As Object
    Dim colMemory As Object
    Dim RAMType As String
    Dim MANType As String
    Dim row As Integer
    Dim RAMSizeGB As Double

    row = 2

    Set objWMI = GetObject("winmgmts:\\.\root\CIMV2")
    Set colMemory = objWMI.ExecQuery("SELECT * FROM Win32_PhysicalMemory")

    ' Entêtes
    Range("A1").Value = "Type de RAM"
    Range("B1").Value = "Marque"
    Range("C1").Value = "Taille (Go)"

    For Each objMemory In colMemory
        Select Case objMemory.SMBIOSMemoryType
            Case 20
                RAMType = "DDR"
            Case 21
                RAMType = "DDR2"
            Case 22
                RAMType = "DDR2 FB-DIMM"
            Case 24
                RAMType = "DDR3"
            Case 26
                RAMType = "DDR4"
            Case 27
                RAMType = "DDR5"
            Case Else
                RAMType = "Type inconnu"
        End Select
   
        Select Case objMemory.Manufacturer
            Case "04CB"
                MANType = "(A-DATA)"
            Case "017A"
                MANType = "(Apacer)"
            Case "029E"
                MANType = "(Corsair)"
            Case "059B"
                MANType = "(Crucial)"
            Case "04CD"
                MANType = "(Crucial)"
            Case "0198"
                MANType = "(HyperX)"
            Case "00CE"
                MANType = "(Samsung)"
            Case Else
                MANType = "(Type inconnu)"
        End Select

        RAMSizeGB = objMemory.Capacity / (1024 ^ 3)
   
        Range("A" & row).Value = RAMType & " " & MANType
        Range("B" & row).Value = objMemory.Manufacturer
        Range("C" & row).Value = Format(RAMSizeGB, "0") & " Go"
        row = row + 1
    Next objMemory

    Set colMemory = Nothing
    Set objMemory = Nothing
    Set objWMI = Nothing

    Columns("A:C").EntireColumn.AutoFit
End Sub

Capture d’écran 2024-11-01 121239.jpg
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Est-ce que ça t'étonne si je te dis qu'il y a toujours une faute au niveau de ton préfixe puisque tu affiches un préfixe décimal alors que tu affiches une quantité calculée en binaire ?

Et est-ce que ça t'étonne si je te demande pourquoi tu fais une telle chose ?
 
Dernière édition:

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD
Bonjour,
Sur mon PC, c'est ok. Les tailles sont correctes :
Regarde la pièce jointe 1206309
Par contre pour le type, j'obtiens EISA sous Informations Système :
Regarde la pièce jointe 1206311Regarde la pièce jointe 1206312

NB: Plus simple à écrire :
VB:
Format(RAMSizeGB, "0 Go")
au lieu de
Format(RAMSizeGB, "0") & " Go"
Bonjour le Fil
pas trop compris Lol mon test
Regarde la pièce jointe 1206310
Jean marie

Bonjour et merci pour l'essai, vous avez directement la bonne Marque en colonne "B" ? du coup ?
 

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD
Bonjour à tous,

Dernier test s'il vous plait, si votre fabricant ne s'affiche pas ou n'est pas bon me dire ce que vous avez en colonne F, et si vous connaissez la marque en plus me la donner. En vous remerciant d'avance.
Nico

VB:
Sub GetMemoryInfoWithSelectCase()

    Sheets(2).Cells.ClearContents
    
    Sheets(2).Cells(1, 1).Value = "Barrette"
    Sheets(2).Cells(1, 2).Value = "Capacité (GB)"
    Sheets(2).Cells(1, 3).Value = "Vitesse (MHz)"
    Sheets(2).Cells(1, 4).Value = "Fabricant"
    Sheets(2).Cells(1, 5).Value = "Numéro de série"

    Dim objWMIService As Object
    Dim colItems As Object
    Dim objItem As Object
    Dim i As Integer
    Dim manufacturerCode As String
    Dim manufacturerName As String

    Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMemory")
    
    i = 2
    
    For Each objItem In colItems
        Sheets(2).Cells(i, 1).Value = "Barrette " & i - 1
        Sheets(2).Cells(i, 2).Value = Format(objItem.Capacity / 1024 ^ 3, "#0.00")
        Sheets(2).Cells(i, 3).Value = objItem.Speed
        Sheets(2).Cells(i, 6).Value = objItem.Manufacturer

        manufacturerCode = objItem.Manufacturer
        Select Case manufacturerCode
            Case "029E"
                manufacturerName = "Corsair"
            Case "04CD"
                manufacturerName = "G.Compétence"
            Case "0190"
                manufacturerName = "Samsung"
            Case "07A9"
                manufacturerName = "Hynix"
            Case "014F", "2C00"
                manufacturerName = "Micron"
            Case "00CE"
                manufacturerName = "Samsung"
            Case "80AD"
                manufacturerName = "Hynix"
            Case "98FE"
                manufacturerName = "Toshiba"
            Case "859B"
                manufacturerName = "Transcend"
            Case "00AD"
                manufacturerName = "SK Hynix"
            Case "001C"
                manufacturerName = "Crucial"
            Case "00CB"
                manufacturerName = "Infineon"
            Case "017A"
                manufacturerName = "Apacer"
            Case "059B"
                manufacturerName = "Crucial"
            Case "00CB"
                manufacturerName = "Infineon"
            Case "0198"
                manufacturerName = "HyperX"
            Case "04CB"
                manufacturerName = "A-DATA"
            Case "7F7F"
                manufacturerName = "Non-standard"
            ' Ajoutez ici d'autres codes connus
            Case Else
                manufacturerName = "Inconnu (" & manufacturerCode & ")"
        End Select
        Sheets(2).Cells(i, 4).Value = manufacturerName
        
        Sheets(2).Cells(i, 5).Value = objItem.SerialNumber
        
        i = i + 1
    Next objItem
    
    Set colItems = Nothing
    Set objWMIService = Nothing
    
    MsgBox "Les informations sur la mémoire ont été récupérées avec succès.", vbInformation
End Sub

Capture d’écran 2024-11-02 164952.jpg
 
Dernière édition:

Nicolas JACQUIN

XLDnaute Impliqué
Supporter XLD
Après si vous souhaitez compléter, c'est gentil

VB:
        Select Case manufacturerCode
            Case "029E"
                manufacturerName = "Corsair"
            Case "04CD"
                manufacturerName = "G.Compétence"
            Case "0190"
                manufacturerName = "Samsung"
            Case "07A9"
                manufacturerName = "Hynix"
            Case "014F", "2C00"
                manufacturerName = "Micron"
            Case "00CE"
                manufacturerName = "Samsung"
            Case "80AD"
                manufacturerName = "Hynix"
            Case "98FE"
                manufacturerName = "Toshiba"
            Case "859B"
                manufacturerName = "Transcend"
            Case "00AD"
                manufacturerName = "SK Hynix"
            Case "001C"
                manufacturerName = "Crucial"
            Case "00CB"
                manufacturerName = "Infineon"
            Case "017A"
                manufacturerName = "Apacer"
            Case "059B"
                manufacturerName = "Crucial"
            Case "00CB"
                manufacturerName = "Infineon"
            Case "0198"
                manufacturerName = "HyperX"
            Case "7F7F"
                manufacturerName = "Non-standard"
            ' Ajoutez ici d'autres codes connus
            Case Else
 

Discussions similaires

Réponses
19
Affichages
2 K

Membres actuellement en ligne

Statistiques des forums

Discussions
315 087
Messages
2 116 084
Membres
112 655
dernier inscrit
fannycordi