VBa - zwei Bedingungen

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

Betrifft: VBa - zwei Bedingungen
von: Hauser
Geschrieben am: 27.04.2015 12:14:32

Halli Hallo ihr Lieben,
ich habe ein Formular, welches über einen Button als PDF gespeichert werden kann.
Bevor sich durch den Button das "Speichern"-Fenster öffnet passieren zwei Abfragen:

  • Wurde der Antragsteller nicht eingetragen öffnet sich ein Userform durch das man den Namen des Antragstellers eintragen kann

  • Wurden nicht alle Pflichtfelder im Eingabebereich ausgefüllt, ist ein Speichern nicht möglich

  • Hier mein Code:
    
    Sub SpeichernPDF()
      If WorksheetFunction.CountA(Sheets("Ergebnis").Range("A58")) <> 1 Then
    Antragsteller.Show
    'Wurde der Antragsteller eingetragen (in A58)? Wenn nicht, öffnet sich die Userform
    End If
       If WorksheetFunction.CountA(Sheets("Eingabebereich").Range("A9,B9,C9,D9,E9,A14,A18") <> 7  _
    Then
              MsgBox "Bitte füllen Sie im Eingabereich alle Pflichtfelder aus! Erst dann ist das  _
    speichern möglich.", vbExclamation
                    ActiveWorkbook.Sheets("Eingabebereich").Activate
            Else
    ActiveSheet.PageSetup.PrintArea = "$A$1:$F$68,$A$74:$F$119"
        Application.SendKeys "%DPUT"
        End If
    End Sub

    Ich weiß, die Lösung mit .SendKeys ist sicherlich nicht sehr elegant, funktioniert aber prima.
    Hier mein Anliegen:
    Die Pflichtfelder, die man fürs Speichern ausgefüllt haben muss sind bisher nur im Eingabereich ("A9,B9,C9,D9,E9,A14,A18").
    Der Nutzer soll aber auch zwingend den Antragsteller ausgefüllt haben, um Speichern zu können. Ich möchte also zwei Bedingungen haben, die fürs speichern nötig sind.
    Das Feld mit dem Antragsteller ist unterm Tabellenheet "Ergebnis", A58.
    Wie kriege ich das hin? Gibt es in VBA ein Äquivalent zur "UND"-Formel?
    Gruß
    Hauser

    Bild

    Betrifft: AW: VBa - zwei Bedingungen
    von: Rudi Maintaire
    Geschrieben am: 27.04.2015 12:21:57
    Hallo,
    If WorksheetFunction.CountA(Sheets("Eingabebereich").Range("A9,B9,C9,D9,E9,A14,A18") <> 7 Or sheets("Ergebnis").Range("A58") = "" Then
    Gruß
    Rudi

    Bild

    Betrifft: AW: VBa - zwei Bedingungen
    von: Hauser
    Geschrieben am: 27.04.2015 15:19:13
    Danke Rudi, hat wunderbar funktioniert.
    Man kann also sagen dass Or bei VBA das Pendant zur UND-Funktion ist?
    Gruß
    Hauser

    Bild

    Betrifft: AW: VBa - zwei Bedingungen
    von: Rudi Maintaire
    Geschrieben am: 27.04.2015 23:23:29
    Hallo,
    nö.
    Du willst ja prüfen, ob eine Zelle im Bereich leer ist oder der Anforderer nicht angegeben ist.
    Man kann naürlich auch
    If WorksheetFunction.CountA(Sheets("Eingabebereich").Range("A9,B9,C9,D9,E9,A14,A18") = 7 And sheets("Ergebnis").Range("A58") <> "" Then
    Ergibt das gleiche.
    Logik!
    Gruß
    Rudi

     Bild

    Beiträge aus den Excel-Beispielen zum Thema "VBa - zwei Bedingungen"