Thema Datum  Von Nutzer Rating
Antwort
26.08.2025 16:24:23 Bernd
NotSolved
26.08.2025 17:23:18 ralf_b
NotSolved
Rot Ping mit Adressen aus Excel
26.08.2025 22:24:19 Bernd
NotSolved
26.08.2025 22:23:47 Gast99892
NotSolved
26.08.2025 22:36:04 Bernd
NotSolved

Ansicht des Beitrags:
Von:
Bernd
Datum:
26.08.2025 22:24:19
Views:
3
Rating: Antwort:
  Ja
Thema:
Ping mit Adressen aus Excel

Hallo Ralf
Danke, Ich hätte mir auf die Zunge Beißen können, das ich da nicht selbst drauf gekommen bin.
Jetzt ist mir aufgefallen das wenn ich das Makro durchlaufen lasse, schreibt es mir überall in Spalte "S" 0 rein.

Ich habe herausgefunden, das der Ping aufruf eine Zeit braucht bis er die 1 zurück gibt.
Bis dahin ist das Programm bereits über den Schreiben der Variablen "Pingtest" drüber.

Ich habe es jetzt erst einmal ganz primitiv über ein "Sleep 2000" überbrückt.
Das funktioniert auch erstmal.
Lieber wäre es mir aber wenn ich das Makro solange anhalten könnte bis der Ping fertig ist.
Ich nehme an, das es da etwas gibt.
Könnte z.B. objExec.status sein.
Oder irgendein anderer Teil der Variablen.
Ich habe bei Google leider keine einfache Beschreibung des Ping gefunden.
Vielleicht kennt ja von euch jemand die Variable?

Set objExec = WSHShell.Exec("%comspec% /c Ping " & strText & " -n 1 -w 1000")
Was bedeutet zum Beispiel das "-w 1000"
"%comspec% /c Ping " 'das scheint der Ping aufruf zu sein
& strText &  ' da ist die IP drin
-n 1  ' die Anzahl der Durchläufe (hier 1x)
w 1000  ' Das ist wohl eine Zeit, ich weis aber nicht welche.

Wie immer danke ich euch sehr für eure Hilfe

Das ist mein aktueller Code:
 

    Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr)
Public Sub Aufruf()
    Dim Zelle As Range
      'Dim objExec As Object
    For Each Zelle In Range("N13:N15")
      If Zelle.Value Like "?*.?*.?*.?*" Then
        Cells(Zelle.Row, "S") = pingtest(Zelle.Value)
      End If
  
    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")
    
'       Do Until objExec.Status   ' Das habe ich aus einem anderen Code, gibt aber Fehler aus.
'     'WScript.Sleep 10
'     i = i + 1
'     If i > 100 Then objExec.Terminate
'   Loop

    Sleep 2000
    pingtest = objExec.ExitCode 'objExec.StdOut.readall
     
  'Range("S1").Value = objExec.exitcode

End Function

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
26.08.2025 16:24:23 Bernd
NotSolved
26.08.2025 17:23:18 ralf_b
NotSolved
Rot Ping mit Adressen aus Excel
26.08.2025 22:24:19 Bernd
NotSolved
26.08.2025 22:23:47 Gast99892
NotSolved
26.08.2025 22:36:04 Bernd
NotSolved