Bonjour
J ai une liste de Hostname dans la colonne B de B8 à BX . Je possède une code qui fonctionne bien et est capable de pinger la liste des postes , et d'écrire dans la colonne C l'adresse IP, si bien sur le poste est donc joignable.
Peut'on mettre l'information " poste non joignable"' à la place d'une cellule vide quand celui ci est dans ce cas ?
De plus la commande recommence du début à chaque fois et donc réécrit les adresses IP déjà analysées ce qui est très embêtant ... Je ne sais pas comment lui dire que si il voir une entrée en B (donc un résultat déjà écrit) de ne pas lancer la commende et continuer ...
Voici la commande en question:
Sub PingListePostes()
On Error Resume Next
Set objhttp = CreateObject("MSXML2.ServerXMLHTTP.4.0")
Dim ra As Range, cell As Range, PingResult As Variant
Set ra = Range([B8], Range("B" & Rows.Count).End(xlUp))
ra.Offset(, 1).Resize(, 2).ra.Offset
For Each cell In ra.Cells
Computer$ = Trim(cell): IP = ""
For Each PingResult In GetObject("winmgmts://./root/cimv2").ExecQuery _
("SELECT * FROM Win32_PingStatus WHERE Address = '" & Computer$ & "'")
If IsObject(PingResult) Then IP = PingResult.ProtocolAddress
If IsNull(PingResult.StatusCode) _
Or PingResult.StatusCode <> 0 Then
End If
Next
cell.Next = IP: DoEvents
Next cell
Set objhttp = Nothing
MsgBox "FIN DU PING"
End Sub
Merci les gens
J ai une liste de Hostname dans la colonne B de B8 à BX . Je possède une code qui fonctionne bien et est capable de pinger la liste des postes , et d'écrire dans la colonne C l'adresse IP, si bien sur le poste est donc joignable.
Peut'on mettre l'information " poste non joignable"' à la place d'une cellule vide quand celui ci est dans ce cas ?
De plus la commande recommence du début à chaque fois et donc réécrit les adresses IP déjà analysées ce qui est très embêtant ... Je ne sais pas comment lui dire que si il voir une entrée en B (donc un résultat déjà écrit) de ne pas lancer la commende et continuer ...
Voici la commande en question:
Sub PingListePostes()
On Error Resume Next
Set objhttp = CreateObject("MSXML2.ServerXMLHTTP.4.0")
Dim ra As Range, cell As Range, PingResult As Variant
Set ra = Range([B8], Range("B" & Rows.Count).End(xlUp))
ra.Offset(, 1).Resize(, 2).ra.Offset
For Each cell In ra.Cells
Computer$ = Trim(cell): IP = ""
For Each PingResult In GetObject("winmgmts://./root/cimv2").ExecQuery _
("SELECT * FROM Win32_PingStatus WHERE Address = '" & Computer$ & "'")
If IsObject(PingResult) Then IP = PingResult.ProtocolAddress
If IsNull(PingResult.StatusCode) _
Or PingResult.StatusCode <> 0 Then
End If
Next
cell.Next = IP: DoEvents
Next cell
Set objhttp = Nothing
MsgBox "FIN DU PING"
End Sub
Merci les gens
Dernière édition: