Wert in Range muss ausgefüllt sein

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

Betrifft: Wert in Range muss ausgefüllt sein
von: Leah
Geschrieben am: 30.09.2015 10:26:39

Hallo zusammen
Ich hab eine Umfrage in Excel erstellt. Pro Frage gibt es vier Antworten und eine von diesen muss ausgefüllt werden, ansonsten kann nicht gedruckt werden.
Es sind drei Fragen, hier die Ranges der Fragen:
- Bei Frage 1 muss ein Feld im Range c24:f24 mit x ausgefüllt sein
- Bei Frage 2 muss ein Feld im Range c40:f40 mit x ausgefüllt sein
- Bei Frage 3 muss ein Feld im Range c46:f46 mit x ausgefüllt sein
Hier hab ich mal einen Code, aber bei dem muss alles ausgefüllt sein, was in den Ranges ist, damit gedruckt werden kann.

Private Sub Workbook_BeforePrint(Cancel As Boolean)
     Const c_TrennZeichen = vbCr
     
     Dim rng As Range
     Dim Zelle As Range
     Dim Msg As String
     If ActiveSheet.Name = "Kompetenznachweis" Then
         Set rng = Union(Range("C24:F24"), Range("C40:F40"), Range("C46:F46"))
         Msg = vbNullString
         For Each Zelle In rng
             If IsEmpty(Zelle) Then Msg = Msg & c_TrennZeichen & Zelle.Address(0, 0)
         Next
     
         If Len(Msg) Then
             If Len(Msg) - Len(Replace(Msg, c_TrennZeichen, vbNullString)) > 1 Then
                 MsgBox "Werte in Zellen" & vbCr & Msg & vbCr & vbCr & "müssen ausgefüllt  _
werden.", 48, "FEHLENDE WERTE"
             Else
                 MsgBox "Wert in Zelle" & vbCr & Msg & vbCr & vbCr & "muss ausgefüllt werden.",  _
 _
48, "FEHLENDE WERTE"
             End If
             Cancel = True
         End If
     End If
 End Sub

Ich hoffe, ihr versteht was ich meine.
Vielen Dank schon mal für eure Hilfe
LG Leah

Bild

Betrifft: AW: Wert in Range muss ausgefüllt sein
von: ChrisL
Geschrieben am: 30.09.2015 11:10:29
Hi Leah

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 "Wert in Zelle" & vbCr & Msg & vbCr & vbCr & "muss ausgefüllt werden.", 48, " _
FEHLENDE WERTE"
        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.Address(0, 0)
    Next Zelle
End If
CheckZellen = sMsg
End Function

cu
Chris

Bild

Betrifft: AW: Wert in Range muss ausgefüllt sein
von: Leah
Geschrieben am: 30.09.2015 11:56:48
Hi Chris
Super, vielen vielen Dank. It works..
lg leah

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Wert in Range muss ausgefüllt sein"