Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
888to892
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
888to892
888to892
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro ruft andere Makros hintereinander auf

Makro ruft andere Makros hintereinander auf
25.07.2007 18:35:32
Salim

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


3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro ruft andere Makros hintereinander auf
25.07.2007 18:46:00
Hajo_Zi
Hallo Salim,
warum dieser Vergleich?

AW: Makro ruft andere Makros hintereinander auf
25.07.2007 18:50:00
Matthias
Hallo Salim,
mach eine Funktion draus:

Function Stammdaten() As Boolean
'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"
Stammdaten = Ausgefuellt
End Function


dann kannst du es so schreiben:


Private Sub CommandButton3_Click()
If Stammdaten = True Then
Call Montagedaten
End If
End Sub


Gruß Matthias

Anzeige
AW: Makro ruft andere Makros hintereinander auf
26.07.2007 14:05:53
Salim
Hallo,
der Vorschlag habe ich eingebaut und es funktioniert einwandfrei! Vielen Dank
Gruss
Salim

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige