PING et NSLOOKUP dans excel ! (avancement 80%)

PING et NSLOOKUP dans excel ! (avancement 80%) - VB/VBA/VBS - Programmation

Marsh Posté le 22-06-2011 à 11:40:25    

Bonjour à tous, voila je vous expose mon problème :
 
Je dispose d'un tableau sous excel contenant des adresses IP et autre infos comme cela :
 
Adresses IP :        Noms d'hôte :     Adresses MAC :           etc....
172.26.2.001            machine1            ...............             etc....
172.26.2.002            machine2            ...............             etc....
 
Je souhaiterais pouvoir pinger toutes les lignes une par une et voir si une IP répond ou pas, elle sont écrit ainsi avec 2 zéros devant car je vais jusqu'à 254 et je trouve cela plus esthétique que ce soit aligné :
 
172.26.2.001
172.26.2.050
172.26.2.254
 
Le problème est que lorsque je ping j'aimerais enlever les zéro devant le derniers chiffres car le ping est faussé sinon.. Par exemple si je ping 172.26.2.012 le ping se dirige sur 172.26.2.10 ! :o
 
J'ai trouvé et modifié ce petit bout de code sur internet mais je n'arrive pas à tester si le ping répond ou pas..
 

Code :
  1. Sub test()
  2. ligne = 1
  3. While ligne <= 254
  4. Shell "ping -n 1 -w 20 " & Cells(ligne, 1), vbNormalFocus
  5. If     *** IP répond ***      Then
  6. Cells(ligne, 1).Font.Color = RGB(0, 255, 0)
  7. Else
  8. Cells(ligne, 1).Font.Color = RGB(255, 0, 0)
  9. End If
  10. ligne = ligne + 1
  11. Wend
  12. End Sub


 
J'aimerais donc enfaite transformé 172.26.2.001 en 172.26.2.1, pinger l'adresse, puis la réécrire 172.26.2.001 puis écrire la ligne en verte si l'adresse IP répond ou en rouge si elle ne répond pas..
 
Ci possible par la suite récupérer le nom d'hôte.. J'ai fait un script BATCH qui me permet de le faire mais alors le faire en VBA aucune idée ! :s
Et je ne veux pas avoir à utiliser un fichier .bat car ce fichier excel se baladera de pc à pc..  
 
Merci à tous !


Message édité par SaW3r le 24-06-2011 à 14:37:06
Reply

Marsh Posté le 22-06-2011 à 11:40:25   

Reply

Marsh Posté le 22-06-2011 à 14:17:02    

Salut, voir sur http://groupes.codes-sources.com/a [...] 30133.aspx entre autres


Message édité par kiki29 le 22-06-2011 à 14:22:20

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 22-06-2011 à 14:32:51    

Salut, merci pour ta réponse le ping fonctionne bien et il écrit l'heure et le message de réponse mais par contre il ping seulement mon IP local et pas celles se trouvant dans les cases A1, A2, A3... Je ne comprends pas :(

Reply

Marsh Posté le 22-06-2011 à 14:37:47    

re,là c'est à toi de l'adapter à ton contexte


---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 22-06-2011 à 14:45:52    

Voila je l'ai adapté, je vous fais parvenir mon fichier excel :
 
http://saw3r.free.fr/PING_EXCEL.xlsm
 
Le tableau est vide, il ne reste que les adresse IP, j'ai volontairement supprimé les infos donc c'est normal.
 
Mais je suis confronté à un problème, je n'arrive qu'a écrire dans une cellule via :
 

Code :
  1. Cells(1, 8) = "blablabla"


 
En ouvrant mon fichier vous comprendrez mon problème.. Enfaite j'aimerais que les colonnes de la première lignes soit indépendantes, que je puisses modifier leur taille sans modifier toutes celles qui se situe en dessous, est-ce possible ? Ci possible en rajouter aussi..
 
Et j'aimerais récupérer le nom d'hôte automatiquement aussi, je sais le faire en BATCH avec la commande NSLOOKUP mais je n'ai aucune idée en VBA..

J'ai mis en place aussi un compteur pour visualiser le nombre d'IP en ligne et hors ligne mais il ne fonctionne pas je ne comprends pas pourquoi, il compte seulement une fois enfaite ! oO
 
Merci à vous !
 
 
EDIT :
 
J'ai avancé sur le NSLOOKUP mais il reste un problème.. la réponse de cette commande donne  
 
"
 
Serveur :JEMENFOU
Adress:  xxx.xxx.xxx.xxx
 
Nom : CEQUEJEVEUX
Adress: xxx.xxx.xxx.xxx
 
"
 
J'arrive à récupéré  JEMENFOU mais comme son nom l'indique.. Cette valeur ne m'intéresse pas.. comment sauter une ligner dans la récupération de texte ?
 
Voici mon code actuel qui récupère JEMENFOU :
 

Code :
  1. Sub Get_DNS_Name()
  2.     Set objShell = CreateObject("WScript.Shell" )
  3.     For lngRow = 2 To 10
  4.         strIP = Trim(Cells(lngRow, 1).Value)
  5.         Set objExec = objShell.Exec("nslookup " & strIP)
  6.         While objExec.Status = 0
  7.             'Application.Wait (Now + TimeValue("0:00:01" ))
  8.         Wend
  9.         arrRESPONSE = Split(objExec.StdOut.ReadAll, vbCrLf)
  10.        
  11.         Cells(lngRow, 2).Value = arrRESPONSE
  12.        
  13.         strDNSName = Left(Right(Cells(lngRow, 2).Value, 17), 5)
  14.        
  15.         Cells(lngRow, 2).Value = strDNSName
  16.         Set objExec = Nothing
  17.     Next
  18.    
  19. End Sub


 
Merci de votre aide !


Message édité par SaW3r le 23-06-2011 à 16:12:10
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed