Hallo ihr lieben Leute,
Ich stehe mal wieder auf dem Schlauch.
Ich möchte aus einer Tabelle in der ab N3 bis N? mit Lücken IP Adressen stehen.
Die möchte ich anpingen und die IP Adresse je nach Ergebnis Rot oder Grün färben.
Wenn die Spalte fertig ist soll das gleiche mit der Spalte P3-P? gemacht werden.
Wenn also ein Ping erfolgreich war soll die Zelle grün und bei Fehler Rot gefärbt werden.
Ich habe schon sehr viele Programmschnipsel versucht, bei denen meist das Ping nicht funktioniert hat.
Jetzt habe ich etwas gefunden, wo der Ping funktioniert, ich aber mit der Zuordnung nicht klar komme.
Im oberen Bereich wird eine Messagebox aufgerufen, die ich nicht benötige. Aber wenn ich sie nicht nutze, wird die Function Pingtest nicht ausgeführt.
Im unteren Teil kann ich zwar in die Zelle "S1" eine 0 oder 1 (0 Ist OK, 1Ist Fehler?) eintragen lassen aber eben nur in die "S1" weil ich dort keine Zuordnung zur Zelle habe.
Lieber wäre es mir auch mit LastRow zu arbeiten, da sich die länge der Tabelle ändert.
Solange aber die Zuordnung und der einwandfreie Durchlauf nicht gewährt ist (ohne MsgBox) brauche ich mich nicht um das weitere zu sorgen.
Nach mehreren Tagen Suche, ist mein Hirn aber irgendwie ziemlich ausgebrannt, das ich es einfach nicht mehr hinbringe.
Es wäre schön, wenn ihr mir helfen könntet.
Danke schon im voraus.
Gruß Bernd
Code:
Option Explicit
Public Sub Aufruf()
Dim Zelle As Range
Dim objExec As Object
For Each Zelle In Range("N3:N33")
MsgBox pingtest(Zelle.Text)
Next
End Sub
Function pingtest(strText As String)
Dim ws As Worksheet
Dim WSHShell As Object
Dim objExec As Object
Set WSHShell = CreateObject("WScript.Shell")
Set objExec = WSHShell.Exec("%comspec% /c Ping " & strText & " -n 1 -w 1000")
pingtest = objExec.StdOut.readall
Range("S1").Value = objExec.exitcode
End Function
|