Hallo zusammen,
ich möchte 2 verschiedene Makros über eine Schaltfläche durchlaufen lassen. Wenn ich aber im Makro If Ausgefuellt = False Then Exit Sub schreibe, wird das zweite gar nicht aufgerufen. Falls ich aber If Ausgefuellt = True Then Exit Sub dann wird das zweite immer losgetreten, selbst wenn das erste Makro eine Meldung hervorruft. Ich dachte über diese Zuweisung Ausgefuellt True or False das steuern zu können aber es klappt einfach nicht...... Wäre dankbar für ein Tipp.
Danke und Gruss
Private Sub CommandButton3_Click()
Call Stammdaten
If Ausgefuellt = False Then Exit Sub
Call Montagedaten
End Sub
Sub Stammdaten()
'Prüft ob alle Muss-Spalten der Zeilen ausgefüllt sind
Dim rngEingabe As Range, Ausgefuellt As Boolean, Zeile&, Spalte%
Set rngEingabe = Me.Range("a5:ai400") 'Tabellenbereich mit Eingaben
For Zeile = rngEingabe.Row To rngEingabe.Row + rngEingabe.Rows.Count - 1
Ausgefuellt = True
'Prüfen ob alle Zellen in Zeile leer sind
If Application.WorksheetFunction.CountBlank(Me.Range(Me.Cells(Zeile, 1), _
Me.Cells(Zeile, 7))) = 7 Then
Else
For Spalte = 1 To 7
Select Case Spalte
Case 1 To 7 'zu prüfende Spalten
If IsEmpty(Me.Cells(Zeile, Spalte)) Then
MsgBox "In Zelle " & Chr$(Spalte + 64) & Zeile & " fehlt Eingabewert!"
Me.Cells(Zeile, Spalte).Select
Ausgefuellt = False
Exit For
End If
Case Else
'do nothing
End Select
Next
If Ausgefuellt = False Then Exit For
End If
Next Zeile
If Ausgefuellt = True Then MsgBox "Stammdaten vollständig eingetragen"
End Sub
Sub Montagedaten()
'Prüft ob alle Muss-Spalten der Zeilen ausgefüllt sind
Dim rngEingabe As Range, Ausgefuellt As Boolean, Zeile&, Spalte%
Set rngEingabe = Me.Range("a5:ai400") 'Tabellenbereich mit Eingaben
For Zeile = rngEingabe.Row To rngEingabe.Row + rngEingabe.Rows.Count - 1
Ausgefuellt = True
'Prüfen ob alle Zellen in Zeile leer sind
If Application.WorksheetFunction.CountBlank(Me.Range(Me.Cells(Zeile, 1), _
Me.Cells(Zeile, 1))) = 1 Then
Else
For Spalte = 1 To 35
Select Case Spalte
Case 10 To 13, 17, 19 To 22, 28, 30, 31, 35 'zu prüfende Spalten
If IsEmpty(Me.Cells(Zeile, Spalte)) Then
MsgBox "In Zelle " & Split(Cells(1, Spalte).Address, "$")(1) & Zeile & " fehlt Eingabewert!"
Me.Cells(Zeile, Spalte).Select
Ausgefuellt = False
Exit For
End If
Case Else
'do nothing
End Select
Next
If Ausgefuellt = False Then Exit For
End If
Next Zeile
If Ausgefuellt = False Then Exit Sub
For i = 5 To 400
If Cells(i, 1) "" Then
If Cells(i, 1) "Gesamt" Then
If Cells(i, 23) 1 Then
MsgBox "Die Aufteilung der Reststunden entspricht nicht 100%: siehe W" & i
Cells(i, 23).Select
Exit Sub
End If
End If
End If
Next
If Ausgefuellt = True Then MsgBox "Montagedaten vollständig eingetragen"
End Sub