Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Webadresse nach Eingabe in Excel syntaktisch überprüfen

Frage Microsoft Microsoft Office

Mitglied: Rene1976

Rene1976 (Level 2) - Jetzt verbinden

05.08.2014, aktualisiert 06.08.2014, 1653 Aufrufe, 3 Kommentare

Hallo,

weiß jemand wie man eine Webadresse nach Eingabe (beim verlassen der Zelle) in einer Excel 2010 Zelle auf syntaktische Richtigkeit überprüfen kann?
Es gibt anscheinend keine Standarddatentyp wie Zahl oder Datum in Excel dafür.

Ich dachte da z.B. an Regular Expression wenn es nicht etwas "out of the box" gibt, aber wo gebe ich diese ein?

Es gibt ein Eingabefeld unter Datenprüfung --> Benutzerdefiniert.

Ist das die richtige Stelle oder gibt es ein bessere Lösung?

Oder muss man das wieder mit VBA machen?

Gruß,

Rene
Mitglied: colinardo
LÖSUNG 05.08.2014, aktualisiert 06.08.2014
weiß jemand wie man eine Webadresse nach Eingabe (beim verlassen der Zelle) in einer Excel 2010 Zelle auf syntaktische
Richtigkeit überprüfen kann?
Ich dachte da z.B. an Regular Expression wenn es nicht etwas "out of the box" gibt, aber wo gebe ich diese ein?
Es gibt ein Eingabefeld unter Datenprüfung --> Benutzerdefiniert.

Ist das die richtige Stelle oder gibt es ein bessere Lösung?
das geht damit nicht, dazu ist eine Webadresse zu komplex für den billigen Dialog
Oder muss man das wieder mit VBA machen?
yip, REGEX is always your friend

Folgendes checkt z.B. den Bereich A1:A100 auf die Syntax einer Webadresse nach Änderung des Zelleninhaltes:
(Code einzufügen im Codeabschnitt des jeweiligen Arbeitsblattes auf dem die Überprüfung stattfinden soll.)
01.
Function CheckSyntax(ByVal rngTarget As Range) As Boolean 
02.
    Set regex = CreateObject("vbscript.regexp") 
03.
    regex.IgnoreCase = True 
04.
    regex.Pattern = "^https?://[\-A-Z0-9+&@#/%?=~_|$!:,.;]*[A-Z0-9+&@#/%=~_|$]$" 
05.
    If Not regex.Test(rngTarget.Value) Then 
06.
        CheckSyntax = False 
07.
    Else 
08.
        CheckSyntax = True 
09.
    End If 
10.
    set regex = Nothing 
11.
End Function 
12.
 
13.
Private Sub Worksheet_Change(ByVal Target As Range) 
14.
    'Range bei dem eine Änderung etwas bewirken soll 
15.
    Set changeRange = ActiveSheet.Range("A1:A100") 
16.
    If Not Application.Intersect(changeRange, Target) Is Nothing Then 
17.
        If Not CheckSyntax(Target) Then 
18.
            MsgBox "Die Webadresse hat die falsche Syntax", vbCritical 
19.
            Application.EnableEvents = False 
20.
            Target.Value = "" 
21.
            Application.EnableEvents = True 
22.
        End If 
23.
    End If 
24.
End Sub
Den Regex kannst du ja nach deinem Gusto gestalten, bzw. erweitern (er stellt keinen Anspruch auf Vollständigkeit).

Grüße Uwe
Bitte warten ..
Mitglied: Rene1976
06.08.2014 um 14:17 Uhr
Hi Uwe,

vielen Dank für die schnelle Hilfe.
Der Code funktioniert.

In Zeile 5 muss aber das "not" entfernt werden.

If Not regex.Test(rngTarget.Value) Then

Deine Regex funktioniert leider noch nicht bei allen Varianten.
Werde sie bei Gelegenheit ändern wenn ich hier eine passenden gefunden habe.
http://regexlib.com/Search.aspx?k=url

Eine Regex für alle Konstellationen einschließlich von neuen TLD zu finden oder zu schreiben wird immer schwerer

Besten Dank.

Rene
Bitte warten ..
Mitglied: colinardo
06.08.2014, aktualisiert um 14:35 Uhr
Zitat von Rene1976:
In Zeile 5 muss aber das "not" entfernt werden.
nö, wieso ?? Das hat schon seine Richtigkeit.

Deine Regex funktioniert leider noch nicht bei allen Varianten.
habe ich auch nicht behauptet Eine Adresse kann z.B. auch so aussehen http://localhost. Kommt halt immer drauf an worauf du Priorität setzt oder welche Art Adressen bei dir verwendet werden sollen.
Ein Regex der alle Eventualitäten matcht, wird sooooooooooooooooooooooooooooo lang
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Hilfe bei Erstellung eines Suchfelds im Excel (1)

Frage von ZeeRee zum Thema Microsoft Office ...

Microsoft Office
gelöst Outlook 2016 Keine Rückmeldung bei Passwort eingabe (2)

Frage von geocast zum Thema Microsoft Office ...

VB for Applications
gelöst EXCEL Macro oder ähnliches gesucht (3)

Frage von reissaus73 zum Thema VB for Applications ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (36)

Frage von Datsspeed zum Thema Exchange Server ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (10)

Frage von Bernulf zum Thema Verschlüsselung & Zertifikate ...

Internet Domänen
Nameserver ein Geist? (7)

Frage von zelamedia zum Thema Internet Domänen ...

Microsoft Office
Übertrag in eine andere Tabelle (6)

Frage von charmeur zum Thema Microsoft Office ...