............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Problema con Macro que hace Ping a IP y crea un reporte en excel donde se sabe si esta asignada o no

Ver el tema anterior Ver el tema siguiente Ir abajo

Problema con Macro que hace Ping a IP y crea un reporte en excel donde se sabe si esta asignada o no

Mensaje por nick_2014 el Lun Feb 17, 2014 2:51 pm

Buenos días expertos soy nuevo en esto de macros , he investigado mucho y llegue a crear esta macro, la idea de lo que haga la macro es lo siguiente:   - Hacer ping a lista de IP localizada a la izquierda de la celda donde se llama la función y se le envía el IP
- saber cuantos paquetes se enviaron y el % de recibidos
- A través de esto se sabe si el IP esta asignado o no

a todo esto la idea es que el escaneo sea "on-demand" osea que solo se ejecuto cuando el usuario quiera actualizar la lista de IP , adjuntare mi macro la función y un ejemplo de lo que es la lista de IPs .De antemano muchas gracias por su ayuda.


'_____________________MODULO + MACRO + FUNCION _________________________

Private Sub Worksheet_Activate()
Application.OnTime Now() + TimeValue("00:00:05"), "ping"
End Sub
Sub ping()

Application.Calculation = xlCalculationAutomatic

End Sub

Public Function f_EquipoResponde(str_Equipo As String) As String

'Esta función recibe un nombre de equipo (ya sea nombre en sí o IP o nombre de maquina
Dim obj_Shell As Object
Dim obj_FileSystem As Object 'Objeto FileSystem para abrir y borrar el fichero temporal
Dim obj_Fichero As Object 'Objeto File para leer el fichero temporal
Dim str_ContenidoFichero As String 'Se volcará en esta variable el contenido del fichero temporal
Dim str_FicheroTemporal As String 'Sirve para establecer la ruta y nombre del fichero temporal

'Creamos los objetos FileSystem y Shell
Set obj_Shell = CreateObject("WScript.Shell")
Set obj_FileSystem = CreateObject("Scripting.FileSystemObject")

'Establecemos el fichero temporal en la ruta de este libro de Excel y con el nombre "temp.txt"
str_FicheroTemporal = ThisWorkbook.Path & "\temp.txt"
' Call Shell("cmd /k ""c:\windows\system32\ping.exe -n 1 " & str_Equipo & """ > " & _
' str_FicheroTemporal, vbMaximizedFocus)

'Ejecutamos el ping volcando la salida en el fichero temporal. Sólo esperaremos un eco ("-n 1")
obj_Shell.Run "cmd /c ping -n 2 -w 100 " & str_Equipo & " > """ & _
str_FicheroTemporal & """", 0, True

'Abrimos el fichero temporal sobre el objeto fichero
Set obj_Fichero = obj_FileSystem.OpenTextFile(str_FicheroTemporal, 1, False)

'Volcamos el contenido del fichero temporal en str_ContenidoFichero
str_ContenidoFichero = obj_Fichero.ReadAll

'Cerramos el fichero temporal y vaciamos su variable
obj_Fichero.Close
Set obj_Fichero = Nothing

'Borramos el fichero temporal y vaciamos los objetos Shell y FileSystem
obj_FileSystem.DeleteFile (str_FicheroTemporal)
Set obj_FileSystem = Nothing
Set obj_Shell = Nothing

'Si encontramos la cadena "perdidos = 0" significa que el equipo respondió y por tanto la función
'devuelve True, en caso contrario significa que no respondió el equipo y por tanto devuelve False

Dim Nombre As String


Nombre = Mid(Replace(str_ContenidoFichero, vbCrLf, ""), 18, 10)



If InStr(str_ContenidoFichero, "perdidos = 0") > 0 Then
           f_EquipoResponde = Nombre & " ha RECIBIDOS 100%"
End If
If InStr(str_ContenidoFichero, "perdidos = 1") > 0 Then
           f_EquipoResponde = Nombre & "ha RECIBIDOS 50%"
End If
           If InStr(str_ContenidoFichero, "perdidos = 2") > 0 Then
f_EquipoResponde = "IP VACANTE"
End If

End Function
Archivos
PRUEBA.xlsm ESTA ES UN LISTA DE IP , APROXIMADAMENTE TENGO UNAS 36 PAGINAS IGUAL A LA QUE LES ENVIONo tienes los permisos para descargar los archivos.(14 KB) Descargado 50 veces

nick_2014

Masculino Cantidad de envíos : 1
Edad : 24
Ciudad - Pais : santiago
Version de Excel : Microsoft excel 2010
Fecha de inscripción : 17/02/2014

Volver arriba Ir abajo

Re: Problema con Macro que hace Ping a IP y crea un reporte en excel donde se sabe si esta asignada o no

Mensaje por PEPENIN el Mar Jul 01, 2014 6:48 pm

brother el archivo que envías contiene las macros? o se tienen que cargas?

PEPENIN

Masculino Cantidad de envíos : 1
Edad : 28
Ciudad - Pais : Mexico City
Version de Excel : 2010
Fecha de inscripción : 01/07/2014

Volver arriba Ir abajo

Re: Problema con Macro que hace Ping a IP y crea un reporte en excel donde se sabe si esta asignada o no

Mensaje por SiriusAR el Miér Nov 12, 2014 11:11 am

Por lo que vi, si ejecutas la función al mismo tiempo en varias celdas, cada celda va a estar pisando tu archivo temporal.

Le agregue un par de lineas


Dim random As Integer

random = CInt(Int((10000 * Rnd()) + 1000))

'Establecemos el fichero temporal en la ruta de este libro de Excel y con el nombre "temp.txt"
str_FicheroTemporal = ThisWorkbook.Path & "\temp" & random & ".txt"



Con lo anterior generas varios archivos temp, con el formato temp3453.txt tendrias que tener muy mala suerte para que se repitiera uno.


Saludos

SiriusAR

Masculino Cantidad de envíos : 1
Edad : 36
Ciudad - Pais : Santiago
Version de Excel : 2010
Fecha de inscripción : 12/11/2014

Volver arriba Ir abajo

Re: Problema con Macro que hace Ping a IP y crea un reporte en excel donde se sabe si esta asignada o no

Mensaje por Contenido patrocinado Hoy a las 11:27 pm


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.