Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1484to1488
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Pflichtfelder prüfen

Pflichtfelder prüfen
12.04.2016 11:30:00
Erwin
Hallo Forum,
ich habe eine Art von Formular erstellt, bei denen die Benutzer einige dropdowns verpflichtend abarbeiten / auswählen müssen.
Leider funktioniert mein Ansatz nicht, alle Felder in einer Prüfung zu erledigen; ich kann nur ein oder zwei Bedingungen prüfen, nicht aber drei oder mehr Zellen.

'Pflichtfeld - Auswahl UV - Rentenart      'Bei Click auf W4:x4 o. H8:P8 o. K10:S10
If Target.Address = "$W$4:$X$4" _
Or Target.Address = "$H$8:$P$8" _
or target.Address = "$K$10:$S$10 then
If Range("p4").Value = "" Then                'wenn p4 ist leer dann MsgBox
MsgBox "Die UV - Rentenart wurde nicht" _
& (Chr(13)) & "ausgewählt." _
& (Chr(13)) & "   ", vbOKOnly, "UV Rentenart"
Range("H8:P8").ClearContents                      'und H8 leeren
Range("p4").Select                                'und Cursor auf p4 setzen
End If
End If
End sub

Es werden immer die ersten 3 Codezeilen markiert und ein Syntaxfehler ausgegeben.
Wo ist denn mein Fehler bzw. wie kann ich gleichzeitig noch mehr Zellen prüfen?
Grüße - Erwin

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pflichtfelder prüfen
12.04.2016 11:40:32
Fennek
Hallo,
versuche

If not target.address intersect(union(r1, r2,r3)) then exit sub
wobei r1.. r3 die Range-Angaben sind
Mfg
[Ungeprüft]

AW: Pflichtfelder prüfen
12.04.2016 12:22:38
Erwin
Hallo Fennek,
danke für die schnelle Antwort, aber meine bescheidenen VBA Kenntnisse beziehen sich nur auf try and error oder kleine Anpassungen.
Hier mein Versuch, wobei das "intersect" gleich zu Beginn angemeckert wurde.
  • Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'Pflichtfeld - Auswahl UV - Rentenart    'Bei Click auf W4:x4 oder H8:P8 oder K10:S10
    Dim r1, r2, r3 As Range
    r1 = W4
    r2 = H8
    r3 = K10
    If Not Target.Address(Union(r1, r2, r3)) Then
    If Range("p4").Value = "" Then                  'wenn p4 ist leer dann MsgBox
    MsgBox "Die UV - Rentenart wurde nicht" _
    & (Chr(13)) & "ausgewählt." _
    & (Chr(13)) & "   ", vbOKOnly, "UV Rentenart"
    Range("H8:P8").ClearContents                                  'und H8 leeren
    Range("p4").Select                                            'und Cursor auf p4 setzen
    End If
    End If
    End Sub
    


  • Und jetzt stimmt r3 = K10 irgendwie nicht (geschweige mein eigentlich gewünschter Bereich K10:S10)
    Leider weis ich nicht weiter.
    Grüße - Erwin

    Anzeige
    da fehlt ein ". owT
    12.04.2016 12:32:57
    Rudi

    AW: da fehlt ein ". owT
    12.04.2016 12:41:11
    Erwin
    Hallo Rudi,
    hab zwar ne Brille, muss wohl an den Gläsern liegen :)
    Danke dir.
    Grüße - Erwin

    AW: Pflichtfelder prüfen
    12.04.2016 14:48:12
    Fennek
    Hallo Erwin,
    ich war etwas voreilig, ungeprüfte codes zu posten.
    Dieser Code ist getestet, entspricht er deinen Erwartungen
    
    Private sub worksheet_change(byval target as range)
    Dim R1 as range, R2 as range, R3 as range
    Dim rng as range
    Set r1= range("w4:x4")
    Set r2= range("h8:p8")
    Set r3= range("k10:s10")
    Set rng = union(r1, r2, r3)
    If intersect(target, rng) is nothing then exit sub
    Msgbox "Target in Auswahl"
    End sub
    
    Mfg
    [abgetippt, Tippfehler möglich

    Anzeige
    AW: Pflichtfelder prüfen
    12.04.2016 15:52:44
    Erwin
    Hallo Fennek,
    auch dir nochmals herzlichen Dank, werde ich gleich testen.
    Grüße - Erwin

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige