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 1) - Jetzt verbinden

05.08.2014, aktualisiert 06.08.2014, 1584 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Microsoft Office
Darstellung einer Produktionsmenge in einer Excel Übersicht! (4)

Frage von Magnus32x1 zum Thema Microsoft Office ...

Batch & Shell
gelöst Loginzeiten aus dem Ereignisprotokoll in Excel schreiben (1)

Frage von l-Ne0n zum Thema Batch & Shell ...

Microsoft Office
gelöst Excel SUMIF sozusagen (2)

Frage von PharIT zum Thema Microsoft Office ...

Microsoft Office
Aus Outlook 2013 Daten aus Tabellenfeldern in Excel übertragen (7)

Frage von ich2110 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...