PDA

Vollständige Version anzeigen : PING auf DNS-Namen aus Excel-Tabelle?


rolo-tuev
10.08.2009, 12:08
Hallo Forum,

nun suche ich schon eine ganze Weile im Netz nach einer Lösung für mein Problem(chen), bin aber leider nicht so fündig geworden, wie ich mir das erhofft hatte.
Auch hier leider nicht...:(

Eigentlich möchte ich nicht all zu viel:
Ich habe eine excel-Tabelle, bei der in einer Spalte (sagen wir mal, der 7.) DNS-Namen von Netzwerkkomponenten stehen. Manche Zellen in der Spalte sind allerdings auch leer, weil noch nicht erfasst...
Nun möchte ich all diese DNS-Namen aus derTabelle heraus (gerne mit einem "Start"-Button) anpingen, die eruierten IP-Adressen sollen in eine andere Spalte (sagen wir mal die 9.) und die mittlere Antwortzeit (es reicht auch: lebt oder nicht) in eine weitere Spalte (die 10.) eingetragen werden.

Dummerweise bin ich, was VBA- und/oder Macroprogrammierung angeht, von jeglicher Sachkenntnis völlig ungetrübt.

Danke für jede Antwort, gerne auch Hinweise auf Links (kann ja sein, dass ich bei der bisherigen Suche etwas blind :upps: war...)

jinx
10.08.2009, 16:01
Moin, rolo-tuev,

vielleicht kann Dir der Ansatz aus Pingwerte von WebServern auslesen (http://www.herber.de/mailing/203703h.htm) helfen, Bild ist aus der Beispielmappe dazu:

<b>Tabelle1</b><br /><br /><table border="1" cellspacing="0" cellpadding="0" style="font-family:Arial,Arial; font-size:10pt; background-color:#ffffff; padding-left:2pt; padding-right:2pt; "> <colgroup><col style="font-weight:bold; width:30px; " /><col style="width:140px;" /><col style="width:80px;" /><col style="width:77px;" /><col style="width:79px;" /></colgroup><tr style="background-color:#cacaca; text-align:center; font-weight:bold; font-size:8pt; "><td >&nbsp;</td><td >A</td><td >B</td><td >C</td><td >D</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >1</td><td style="font-weight:bold; ">Server:</td><td style="font-weight:bold; ">Minimum</td><td style="font-weight:bold; ">Maximum</td><td style="font-weight:bold; ">Mittelwert</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >2</td><td style="color:#0000ff; text-decoration:underline; ">www.herber.de</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >3</td><td style="color:#0000ff; text-decoration:underline; ">www.excel-cd.de</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >4</td><td style="color:#0000ff; text-decoration:underline; ">www.herber.biz</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >5</td><td style="color:#0000ff; text-decoration:underline; ">www.excel-center.com</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td></tr><tr style="height:17px ;" ><td style="font-size:8pt; background-color:#cacaca; text-align:center; " >6</td><td style="color:#0000ff; text-decoration:underline; ">www.excel-cd.com</td><td >&nbsp;</td><td >&nbsp;</td><td >&nbsp;</td></tr></table> <br />

rolo-tuev
11.08.2009, 09:37
Hi Jinx,

danke für die schnelle Antwort!

Auf diesen Link bin ich bei meiner Suche auch bereits gestoßen; allerdings hat er mir nicht wirklich geholfen:
Da ich noch nicht alle Zellen in der DNS-Namens-Spalte gefüllt habe, darf das Makro nicht anhalten, wenn es auf eine leere Zelle stößt (ok, ich könnte ja temporär umsortieren :mrcool: )
Wie bekomme ich die IP-Adressen aus dem ping-Befehl in meine Tabelle?
Und mich interessiert eigentlich nur, ob das angepingte device "lebt"; die Antwortzeiten sind mir recht egal
Leider, wie bereits geschrieben, bin ich, was VBA- und Macroprogrammierung angeht, ein völlig unerfahrener Anwender...

_anton_
11.08.2009, 10:47
Hallo rolo-tuev,

probier's hiermit:
<span style="font-family: Courier New,FixedSys;"><br><span style="color: #0000CC;">Sub</span> ping() <br>&nbsp; <span style="color: #0000CC;">Set</span> objWMIService = GetObject(&quot;winmgmts:&quot; _ &nbsp; <br>&nbsp; &nbsp; & &quot;{impersonationLevel=impersonate}!\\.\root\cimv2&quot;)<br>&nbsp; <span style="color: #0000CC;">With</span> Tabelle1 &nbsp;<span style="color: #009900;">'Tabelle anpassen</span><br>&nbsp; &nbsp; <span style="color: #0000CC;">For</span> i = 1 <span style="color: #0000CC;">To</span> .UsedRange.Rows.Count &nbsp; <br>&nbsp; &nbsp; &nbsp; <span style="color: #0000CC;">If</span> .Cells(i, 7).Text &lt;&gt; &quot;&quot; <span style="color: #0000CC;">Then</span> &nbsp; <span style="color: #009900;">'Spalte (sagen wir mal, die 7.)</span><br>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000CC;">Set</span> colPings = objWMIService.ExecQuery _ <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; (&quot;Select * From Win32_PingStatus where Address = '&quot; & .Cells(i, 7).Text & &quot;'&quot;) <br>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000CC;">For Each</span> objPing <span style="color: #0000CC;">In</span> colPings &nbsp; <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000CC;">If</span> objPing.StatusCode = 0 <span style="color: #0000CC;">Then</span> &nbsp;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Cells(i, 9).Value = objPing.ProtocolAddress <span style="color: #009900;">'IP-Adresse in Spalte (sagen wir mal die 9.)</span><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Cells(i, 10).Value = objPing.ResponseTime & &quot; ms&quot; <span style="color: #009900;">'Antwortzeit</span><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Cells(i, 10).Interior.ColorIndex = 4 &nbsp;<span style="color: #009900;">'erreichbar = grün</span><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000CC;">Else</span> <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Cells(i, 9).Value = &quot;&quot;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Cells(i, 10).Value = &quot;lebt nicht&quot;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .Cells(i, 10).Interior.ColorIndex = 3 &nbsp;<span style="color: #009900;">'nicht erreichbar = rot</span><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000CC;">End If</span> &nbsp;<br>&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000CC;">Next</span> <br>&nbsp; &nbsp; &nbsp; <span style="color: #0000CC;">End If</span> &nbsp;<br>&nbsp; &nbsp; <span style="color: #0000CC;">Next</span> <br>&nbsp; <span style="color: #0000CC;">End With</span> &nbsp;<br><span style="color: #0000CC;">End Sub</span> &nbsp;<br><br></span>

mfg Anton

rolo-tuev
11.08.2009, 11:40
:D SUPER!!! :D

Exakt so sollte es sein! Ich werde Dich in mein Nachtgebet einschließen ;)

Vielen, vielen Dank!

rolo-tuev
25.08.2009, 08:54
Darf ich gnadenlos unverschämt :redface: sein??

es wäre ein wunderbares "nice-to-have", wenn ich darüber hinaus in einer weiteren (sagen wir mal der 11. :D ) Spalte eine Rückmeldung bekommen würde, ob der angepingte Hostname überhaupt vergeben ist.
Lässt sich das auf einfache Weise einbauen?

Schon jetzt vielen Dank!!

rolo-tuev
25.08.2009, 09:02
Hat sich erledigt, ich habe es selber hinbekommen!!! ich bin ja sooooo stolz auf mich!

rolo-tuev
25.08.2009, 09:42
:( Hat sich doch nicht erledigt!!! :(

Es kann ja durchaus sein, dass der DNS-Name vergeben ist, das entsprechende device aber nicht eingeschaltet ist....