Excel Makro ile ping atma

Katılım
3 Ekim 2022
Mesajlar
15
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2019 TR 64bit
Altın Üyelik Bitiş Tarihi
28-09-2024
Merhabalar

A-b-c-d-e-f-g-h-j- Stunlarında pingler vardır aşşağıya doğru gitmektedir bu pingler bu ip lere 1 kere ping atacak sonrasında ping alamadıgını hücreyi boyamasını istiyorum
bir tablo var bu tablo degıskenlık gosterebilir sağdan ve yukardan ölçü alıp başlıyacak a2 başlama olabilir a2 de bir ctrl+a yapıcak yanı yazılı olan kutucuklara ping atıcak ve o kutularda ping aldıgına yeşil alınmayana kırmızı yapacaktır.

konu hakkında desteklerınızı rica ederim.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,370
Excel Vers. ve Dili
Ofis 365 Türkçe
ChatGpt'nin önerisi , daha detayla sorulsa belki farklı kodlar önerebilirdi. ben sadece ping nasıl atılır diye sordum.

VBA içinde doğrudan bir "ping" işlevi bulunmamaktadır. Ancak Windows işletim sistemiyle etkileşimde bulunmak için Shell komutunu kullanarak bir dış komut çağırabilirsiniz. Shell komutu, Windows komut istemine bir komut göndermenizi sağlar ve bu komut isteminde "ping" komutunu kullanabilirsiniz.

İşte VBA'da Shell komutunu kullanarak ping atma örneği:
Kod:
Sub PingAt()
    Dim Hostname As String
    Dim PingResult As Variant
    Dim ShellObj As Object
    
    ' Ping atılacak host adını belirtin
    Hostname = "www.example.com"
    
    ' Shell nesnesini oluşturun
    Set ShellObj = CreateObject("WScript.Shell")
    
    ' Ping komutunu çalıştırın ve sonucu alın
    PingResult = ShellObj.Run("cmd /c ping -n 4 " & Hostname, 0, True)
    
    ' Sonucu ekrana yazdırın    MsgBox "Ping sonucu:" & vbCrLf & PingResultEnd Sub
VBA içinde doğrudan bir "ping" işlevi bulunmamaktadır. Ancak Windows işletim sistemiyle etkileşimde bulunmak için Shell komutunu kullanarak bir dış komut çağırabilirsiniz. Shell komutu, Windows komut istemine bir komut göndermenizi sağlar ve bu komut isteminde "ping" komutunu kullanabilirsiniz.
İşte VBA'da Shell komutunu kullanarak ping atma örneği:
vbaCopy code
Sub PingAt()
Dim Hostname As String
Dim PingResult As Variant
Dim ShellObj As Object

' Ping atılacak host adını belirtin
Hostname = "www.example.com"

' Shell nesnesini oluşturun
Set ShellObj = CreateObject("WScript.Shell")

' Ping komutunu çalıştırın ve sonucu alın
PingResult = ShellObj.Run("cmd /c ping -n 4 " & Hostname, 0, True)

' Sonucu ekrana yazdırın
MsgBox "Ping sonucu:" & vbCrLf & PingResult
End Sub
Bu kod, "www.example.com" adresine 4 kez ping atar ve sonucu bir ileti kutusunda gösterir. -n 4 parametresi, 4 kez ping atılacağını belirtir.
Lütfen unutmayın ki, Shell komutu kullanırken güvenlik nedenleriyle dikkatli olmalısınız ve kullanıcı girişi gerektiren işlemleri otomatikleştirmemelisiniz. Ayrıca, Shell komutu çalıştırılan bilgisayarda gerekli izinlere sahip olmalısınız.
 
Katılım
3 Ekim 2022
Mesajlar
15
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2019 TR 64bit
Altın Üyelik Bitiş Tarihi
28-09-2024
selamlar
ekte bir dosya paylaştım ping listem bu şekilde olucak sayı değişkenlık gosterebilir hücreyi boyamasını istiyorum
 

Ekli dosyalar

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,370
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba.
Keşke ilk mesajınızda dosya ekleseniz.
Gereksiz yazışmalara neden olmazdınız.
ChatGpt'nin kodlarını uyarladım, sonucun doğru olup olmadığını bildirirseniz ben de merak ediyorum.

Kod:
Sub PingIP()

    Dim IP As String
    Dim PingObj As Object
    Dim PingResult As Variant
    Dim rng As Range
    Dim lRow As Long
    Dim iCol As Integer
    
    
    Set rng = Range("A1").CurrentRegion
    For lRow = 2 To rng.Rows.Count
        For iCol = 1 To rng.Columns.Count
        ' Ping atılacak IP adresini belirtin
            IP = rng(lRow, iCol)
            
            ' Ping objesini oluşturun
            Set PingObj = CreateObject("WScript.Shell")
            
            ' Ping komutunu çalıştırın ve sonucu alın
            PingResult = PingObj.Run("ping -n 1 " & IP, 0, True)
            
            ' Ping sonucunu mesaj olarak gösterin
            If PingResult = 0 Then
'                MsgBox "IP adresine başarıyla ping atıldı."
                rng(lRow, iCol).Interior.Color = vbGreen
            Else
'                MsgBox "Ping atarken bir hata oluştu."
                rng(lRow, iCol).Interior.Color = vbRed
            End If
        Next iRow
    Next lRow

End Sub
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,218
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
Merhaba; ekteki dosyayı deneyiniz.
 

Ekli dosyalar

Üst