Kann man per VBA prüfen,
ob der PC online ist?
greez tob
Err = 0
On Error Resume Next
'--- hier eine Aktion einfügen, die zu einem Fehler führt, wenn der Rechner nicht online ist
'--- z.B. eine Datei aus einem Netzwerklaufwerk öffnen oder mit "ChangeDrive"
'--- ein Netzwerklaufwerk einstellen
if err = 0 then
Msgbox "Rechner Online"
Else
Msgbox "Keine Online-Verbindung vorhanden"
End if
On error Goto 0
...
Gruß, Daniel
Err = 0
On Error Resume Next
'--- hier eine Aktion einfügen, die zu einem Fehler führt, wenn der Rechner nicht online ist
'--- z.B. eine Datei aus einem Netzwerklaufwerk öffnen oder mit "ChangeDrive"
'--- ein Netzwerklaufwerk einstellen
if err = 0 then
Msgbox "Rechner Online"
Else
Msgbox "Keine Online-Verbindung vorhanden"
End if
On error Goto 0
...
Gruß, Daniel
Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" (ByRef lpdwFlags As Long, _
ByVal lpszConnectionName As String, ByVal dwNameLen As Integer, ByVal dwReserved As Long) As Long
Dim sConnType As String * 255
Sub sbStart()
Dim Ret As Long
Ret = InternetGetConnectedStateEx(Ret, sConnType, 254, 0)
If Ret = 1 Then
MsgBox "Du bist online!"
Else
MsgBox "Du bist nicht online!"
End If
End Sub
Hilfts?
Ciao
Thorsten
Option Explicit
Private Declare Function gethostbyname Lib "WSOCK32.DLL" _
(ByVal HostName As String) As Long
Private Declare Function WSAStartup Lib "WSOCK32.DLL" (ByVal _
wVersionRequired As Long, lpWSAData As WinSocketDataType) _
As Long
Private Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long
Const WS_VERSION_REQD As Long = &H101&
Private Type HostDeType
hName As Long
hAliases As Long
hAddrType As Integer
hLength As Integer
hAddrList As Long
End Type
Private Type WinSocketDataType
wversion As Integer
wHighVersion As Integer
szDescription(0 To 128) As Byte
szSystemStatus(0 To 256) As Byte
iMaxSockets As Integer
iMaxUdpDg As Integer
lpszVendorInfo As Long
End Type
Private Function InitSocketAPI() As Long
Dim Result As Integer
Dim SocketData As WinSocketDataType
InitSocketAPI = WSAStartup(WS_VERSION_REQD, SocketData)
End Function
Private Function Check_Connected(Name As String) As String
Dim HostDeAddress As Long
HostDeAddress = gethostbyname(Name)
If HostDeAddress = 0 Then
Check_Connected = "Keine Verbindung"
Else
Check_Connected = "Verbindung besteht"
End If
End Function
Sub Pruefe_Verbindung()
If InitSocketAPI = 0 Then
MsgBox Check_Connected("www.google.de")
Call WSACleanup
Else
MsgBox ("Socket Error! Die Verbindung kann nicht geprüft werden")
End If
End Sub
Gruß Tino
Um per VBA zu prüfen, ob der PC online ist, kannst du folgende Schritte befolgen:
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "Modul" wählst.
Kopiere den folgenden Code in das Modul:
Private Declare Function InternetGetConnectedStateEx Lib "wininet.dll" (ByRef lpdwFlags As Long, _
ByVal lpszConnectionName As String, ByVal dwNameLen As Integer, ByVal dwReserved As Long) As Long
Dim sConnType As String * 255
Sub sbStart()
Dim Ret As Long
Ret = InternetGetConnectedStateEx(Ret, sConnType, 254, 0)
If Ret = 1 Then
MsgBox "Du bist online!"
Else
MsgBox "Du bist nicht online!"
End If
End Sub
Schließe den VBA-Editor und gehe zurück zu Excel.
Führe das Makro sbStart
aus, um zu prüfen, ob dein PC online ist.
Fehler: "Komponente nicht gefunden"
Fehler: "Keine Rückmeldung"
Wenn du eine alternative Methode zur Überprüfung der Internetverbindung benötigst, kannst du die Winsock-DLL verwenden. Hier ist ein Beispiel:
Option Explicit
Private Declare Function gethostbyname Lib "WSOCK32.DLL" (ByVal HostName As String) As Long
Private Function Check_Connected(Name As String) As String
Dim HostDeAddress As Long
HostDeAddress = gethostbyname(Name)
If HostDeAddress = 0 Then
Check_Connected = "Keine Verbindung"
Else
Check_Connected = "Verbindung besteht"
End If
End Function
Sub Pruefe_Verbindung()
MsgBox Check_Connected("www.google.de")
End Sub
Verbindung zu Google prüfen: Du kannst die Funktion Check_Connected
anpassen, um die Verbindung zu verschiedenen Websites zu prüfen. Ändere einfach den Hostnamen in der Pruefe_Verbindung
-Subroutine.
Benutzerdefinierte Meldungen: Passe die MsgBox-Nachrichten an, um personalisierte Rückmeldungen anzuzeigen, je nach Status der Verbindung.
On Error Resume Next
, um Fehler während der Ausführung zu ignorieren, und setze On Error GoTo 0
, um den Fehlerbehandlungsmodus zu beenden.1. Frage Wie kann ich den Code anpassen, um spezifische Websites zu prüfen?
Antwort: Du kannst die Funktion Check_Connected
so anpassen, dass sie verschiedene Hostnamen überprüft, indem du den Parameter in Pruefe_Verbindung
änderst.
2. Frage Funktioniert dieser Code in allen Excel-Versionen?
Antwort: Ja, der Code sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen. Achte darauf, dass die entsprechenden DLLs auf deinem System verfügbar sind.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen