Zeilennummer auslesen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Zeilennummer auslesen
von: Leah
Geschrieben am: 05.10.2015 13:48:32

Hallo
Ich hab letzte Woche schon mal geschrieben und hier super Hilfe bekommen, müsste jetzt aber etwas ändern und bekomms nicht hin.
Also, hier die Ausgangslage - ich hab 3 Fragen:
- Bei Frage 1 muss ein Feld im Range c24:f24 mit x ausgefüllt sein, aber nur eines, nicht mehrere
- Bei Frage 2 muss ein Feld im Range c40:f40 mit x ausgefüllt sein, aber nur eines, nicht mehrere
- Bei Frage 3 muss ein Feld im Range c46:f46 mit x ausgefüllt sein, aber nur eines, nicht mehrere
Ich möchte auch in der MsgBox nur die Zeilennummer einmal aufgelistet haben.
Hier der Code:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Dim Msg As String
    
    If ActiveSheet.Name = "Kompetenznachweis" Then
        Msg = CheckZellen(Msg, Range("C24:F24"))
        Msg = CheckZellen(Msg, Range("C40:F40"))
        Msg = CheckZellen(Msg, Range("C46:F46"))
         
        If Len(Msg) Then
            MsgBox "Fehlende oder zu viel Werte in den Zeilen:" & vbCr & Msg & vbCr & vbCr & " _
Bitte korrigieren.", 48, " FALSCHE ANGABEN"
            Cancel = True
        End If
    End If
     
 End Sub

Private Function CheckZellen(sMsg As String, rng As Range) As String
    Dim Zelle As Range
    
    If WorksheetFunction.CountIf(rng, "x") = 0 Then
        For Each Zelle In rng
            If IsEmpty(Zelle) Then sMsg = sMsg & vbCr & Zelle.Row
        Next Zelle
    ElseIf WorksheetFunction.CountIf(rng, "x") > 1 Then
        For Each Zelle In rng
            If IsEmpty(Zelle) Then sMsg = sMsg & vbCr & Zelle.Row
        Next Zelle
    End If
    
    CheckZellen = sMsg
End Function
Hoffentlich hab ich mich verständlich ausgedrückt.
Danke euch schon mal und liebe Grüsse
Leah

Bild

Betrifft: AW: Zeilennummer auslesen
von: fcs
Geschrieben am: 05.10.2015 14:45:46
Hallo Lea,
wenn du nicht an den Werten in einzelnen Zellen interessiert bis, dann kannst du die For-Nex-Schleifen weglassen.
Gruß
Franz

Private Function CheckZellen(sMsg As String, rng As Range) As String
    Dim bolFehler As Boolean
    
    Select Case WorksheetFunction.CountIf(rng, "x")
        Case 0, Is > 1
        sMsg = sMsg & vbCr & rng.Row
    End Select
    
    CheckZellen = sMsg
End Function


Bild

Betrifft: AW: Zeilennummer auslesen
von: Leah
Geschrieben am: 05.10.2015 14:55:36
Hallo Franz
Super, das hab ich gesucht... vielen dank
Gruss
Leah

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zeilennummer auslesen"