Top-Themen

Aktuelle Themen (A bis Z)

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

VBA Grenzwerte in String prüfen Regex ??? Excel2010

Mitglied: Chillministrator

Chillministrator (Level 1) - Jetzt verbinden

24.02.2017, aktualisiert 11:08 Uhr, 486 Aufrufe, 3 Kommentare

Hallo zusammen,

in meiner Tabelle soll der Bereich Z8S9 bis Z76S20 Zeile für Zeile überprüft werden.
In den Spalten 21, 22 und 23 befinden sich 3 Grenzwerte (oder auch keine Grenze) auf die geprüft werden soll.
Alle Zellen deren Inhalt den Grenzwert überschreitet sollen farblich hervorgehoben werden.
Bedingte Formatierungen haben leider nicht zum Ziel geführt, da alle Zellen als Zeichenfolge und nicht als Zahl gefüllt werden.
Ebenso bekomme ich zu viele Fehler mit hochgestellen Zahlen, Whitespaces und Operatoren.

Wenn mir jemand bei der erstellung einer passenden VBA möglichst mit Regex in einer SELECT CASE Funktion helfen könnte, wäre ich extrem dankbar.
Jede Erklärung oder Schnipsel der mich zum Ziel führt ist herzlich Willkommen.
Gerne auch etwas alternatives....

In der abgebildeten Tabelle ist ein Auszug der möglichen Werte.
Basis ist MS Office 2010

Vielleich gibt es ja jemanden, den das Ganze weniger einschüchtert wie mich Anfänger....



tabelle - Klicke auf das Bild, um es zu vergrößern

Viele Grüße Chilli...
Mitglied: 132272
24.02.2017, aktualisiert 25.02.2017
Hi,
wieder einer ohne jeglichen eigenen Versuch mit Code, immer das selbe hier ..., na dann viel Spaß.

Warum Ihr die Tabelle nicht einfach bereinigt bleibt wohl euer Geheimnis.
01.
Dim regex As Object
02.

03.
Sub CheckLimits()
04.
    Dim cell As Range, dblValue As Variant, dblLimit As Variant, c As Variant
05.
    With ActiveSheet
06.
        For Each cell In .Range("E9:P76")
07.
            dblValue = GetDecimalValue(cell)
08.
            If dblValue <> False Then
09.
                For Each c In Array("Q", "R", "S")
10.
                    dblLimit = GetDecimalValue(.Cells(cell.Row, c))
11.
                    If dblLimit <> False And dblValue > dblLimit Then
12.
                        cell.Interior.Color = vbRed
13.
                    End If
14.
                Next
15.
            End If
16.
        Next
17.
    End With
18.
End Sub
19.

20.
Function GetDecimalValue(cell As Range)
21.
    On Error GoTo Exception
22.
    If regex Is Nothing Then
23.
        Set regex = CreateObject("vbscript.regexp")
24.
        regex.IgnoreCase = True
25.
        regex.Pattern = "\d+([,\.]\d+)?"
26.
    End If
27.
    Set matches = regex.Execute(Trim(cell.Value))
28.
    If matches.Count > 0 Then
29.
        GetDecimalValue = CDbl(matches(0))
30.
        Exit Function
31.
    End If
32.
Exception:
33.
    GetDecimalValue = False
34.
End Function
Gruß cruzer

p.s. das mir ja keiner von euch ins Trinkwasser pisst!
Bitte warten ..
Mitglied: Chillministrator
01.03.2017 um 10:17 Uhr
Hey cruzer,

erstmal ein dickes Dankeschön für deine Hilfe und Mühe.

Der Ausdruck bringt mich wirklich noch zum verzweifeln (was wohl eindeutig auf zu wenig Erfahrung zurückzuführen ist).
Den Array-Bereich hab ich auf "U" ,"V" und "W" geändert, der Testlauf ging aber in die Hose.

Zeile 20 ist ein Bererich von 6,5 - 9,5 der erlaubt ist alles andere nicht.
Befindet sich eine ")" im Array müssten die letzten beiden Zeichen vor der Prüfung entfernt werden "6)"
Wenn in einer zu prüfenden Zelle ein "<" vorkommt müsste dieses vor der Prüfung auch ignoriert werden.
Wie bekomme ich denn diese Fälle in den Griff?

Gruß Chillministrator

p.s. don`t eat yellow snow
Bitte warten ..
Mitglied: 132272
01.03.2017 um 10:39 Uhr
Gegen Cash gerne ...->PN
Bitte warten ..
Ähnliche Inhalte
PHP
Regex: auto link
gelöst Frage von BadgerPHP4 Kommentare

Hallo Leute, mittels folgenden Code durchsuche ich einen String und erzeuge klickbare Links: Den Code selbst habe ich nach ...

Batch & Shell
Powershell Regex anders
gelöst Frage von ukodusBatch & Shell1 Kommentar

Hi, kann es sein, dass die Regex-Implementierung anders ist, als gewohnt? Der Regex funktioniert nämlich auf regexr.com -> Was ...

Exchange Server

Exchange 2010 Postfach-Grenzwert überschritten

gelöst Frage von manuel1985Exchange Server6 Kommentare

Hallo Mitstreiter, folgendes Problem ereilt mich gerade: - Server 2008 R2 - Exchange 2010 - Windows 7 Pro - ...

Batch & Shell

Hilfe bei REGEX

gelöst Frage von istike2Batch & Shell9 Kommentare

Hi, Ich habe hier 5 Strings, die ich mit Script filtern sollte. Kann mir jemand verraten, warum "^ -+ ?(\d*\.?\d+ +1000 ...

Neue Wissensbeiträge
Linux Desktop

Warum Linux in einer vernetzten Welt einfach keinen Komfort bietet!

Tipp von Snowbird vor 12 StundenLinux Desktop9 Kommentare

Ein interessanter Einblick warum Linux nichts für Geräteübergreifende Arbeit ist :)

Humor (lol)
Zuviel Speicher ist ungesund. :-)
Tipp von Lochkartenstanzer vor 1 TagHumor (lol)13 Kommentare

Moin Kollegen, Heute hatte ich ein ungewöhnliches Aha-Erlebnis: Über das Wochenende habe ich einen einen 6 Jahre alten Bare-Metal ...

Windows Update

KB4517297 verfügbar, behebt Fehler in VB6 VBA VBScript

Information von sabines vor 1 TagWindows Update

Das Update behebt mögliche Fehler in VB6, VBA und VBScript, die durch das Update KB4512486 vom August entstanden sind. ...

Viren und Trojaner

Staatstrojaner soll auch per Einbruch installiert werden können

Information von transocean vor 2 TagenViren und Trojaner5 Kommentare

Moin, Bundesinnenminister Horst Seehofer will dem Verfassungsschutz Wohnungseinbrüche erlauben, um den geplanten Staatstrojaner zu installieren. Gruß Uwe

Heiß diskutierte Inhalte
Hyper-V
Bei Neuaufbau auf Core-Server setzen?
gelöst Frage von dertowaHyper-V33 Kommentare

Hallo zusammen, ich habe vor einigen Monaten die Verantwortung für eine EDV-Landschaft übernommen die seit Jahren von einem Dienstleister ...

Router & Routing
VPN Verbindung zur Fritzbox über Speedport
gelöst Frage von SchwabenlandRouter & Routing13 Kommentare

Hallo! Ich bin gerade im Urlaub an der Nordsee :-) In unserem Ferienhaus haben wir WLAN, das durch einen ...

Humor (lol)
Zuviel Speicher ist ungesund. :-)
Tipp von LochkartenstanzerHumor (lol)12 Kommentare

Moin Kollegen, Heute hatte ich ein ungewöhnliches Aha-Erlebnis: Über das Wochenende habe ich einen einen 6 Jahre alten Bare-Metal ...

Batch & Shell
PowerShell - Text an HTMLbody übergeben mit UTF-8 Kodierung
Frage von Pat.batBatch & Shell12 Kommentare

Hallo zusammen, ich stoße momentan auf folgendes Problem. Ich möchte mit meinem Skript E-Mails versenden. Text und Signatur samt ...