Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
476to480
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
476to480
476to480
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Hab Problem mit FOR-Schleife. Bitte um Hilfe.

Hab Problem mit FOR-Schleife. Bitte um Hilfe.
31.08.2004 18:41:07
madfromvba
Hallo,
Ich hab ein Problem mit dieser FOR Schleife.
Und zwar:
Wie auf diesem Bild zu sehen ist läuft die for schleife durch den ganzen festgelegten bereich Range("F82,.....,AX84"). sie soll aber, wenn sie auf eine Zelle im Bereich UND auf ein leeres Datumsfeld eine Zeile über dem Zellenbereich --> (Zelle.Offset(-1, 0) trifft, die speicherung zulassen.
Hintergrund ist, dass zu einem Datum immer ein Name gehört.
Auf dem Bild sieht man die selektierte Zelle. Hier dürfte die Meldung nicht mehr erscheinen und die Speicherung zugelssen werden.
hab ich das verständlich geschrieben?
wie kann ich das realisieren?
Danke vielmals!

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Worksheets("Blatt 1").Activate
Dim Zelle
Dim Bereich As Range
Set Bereich = Range("F82,Q82,AB82,AM82,AX82,F84,Q84,AB84,AM84,AX84")
For Each Zelle In Bereich
Zelle.Select
If Not IsEmpty(Zelle) And IsDate(Zelle.Offset(-1, 0).Value) Then
'speichern
Else
'nicht speichern
MsgBox "Arbeitsmappe kann nicht gespeichert werden! Bitte tragen sie Ihren Namen ein!" & ActiveCell.Address & " ein!"
Cancel = True
Exit For
End If
Next Zelle
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hab Problem mit FOR-Schleife. Bitte um Hilfe.
Luschi
Hallo madfromvba,
leider meldet mir der tripod-Server, daß das Bild nicht existiert, aber ich glaube
schon, Dein Problem verstanden zu haben. Du mußt die Technologie etwas umstellen.
Vor der For-Schleife wird eine Boolsche Variable gesetzt (ok = True). Dann wird die Schleife
durchlaufen. Wird dabei festgestellt, daß die geforderten Bedingungen nicht erfüllt
sind, wird die o.g. genannte Variable im Wahrheitswert umgedreht (ok = Not ok) und die
Schleife sofort verlassen. Sind die Bedingungen immer erfüllt, so läuft die Schleife
vollständig durch und die Variable bleibt unangetastet im Wert. Sie besitzt nach dem
Verlassen der Schleife noch den selben Wert wie vor dem Eintritt in die Schleife. Der
Wert der Variablen wird nach dem Verlassen der Schleife ausgewertet und das Speichern erlaubt oder untersagt.
Das sieht dann in der Praxis wie folgt aus:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim Zelle, _
Bereich As Range, ws As Worksheet, _
ok As Boolean
Set ws = ActiveWorkbook.Worksheets("Blatt 1")
Set Bereich = ws.Range("F82,Q82,AB82,AM82,AX82,F84,Q84,AB84,AM84,AX84")
ok = True
For Each Zelle In Bereich
If IsEmpty(Zelle) Or (Not IsDate(Zelle.Offset(-1, 0).Value)) Then
ok = Not ok
Exit For
End If
Next Zelle
If (Not ok) Then
MsgBox "Arbeitsmappe kann nicht gespeichert werden! Bitte tragen sie " & _
"Ihren Namen  ein!" & Zelle.Address & " ein!"
Cancel = True
End If
End Sub

Gruß von Luschi
aus klein-Paris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige