Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: while Schleife if..then..else

while Schleife if..then..else
06.07.2007 16:25:00
Fabian
Hallo,
habe folgendes programmiert und hoffe ihr seht durch.

With ActiveSheet
For x = 1 To anzreihen
If .Cells(x, 1).Value = actionnr Then
.Cells(x, 1).EntireRow.Select
'Sicherheitsabfrage
Mldg = "Möchten Sie die Inhalte dieser Zeile überschreiben ? _
_
Stil = vbYesNo + vbCritical + vbDefaultButton2
Titel = "Daten überschreiben?"
Antwort = MsgBox(Mldg, Stil, Titel, Hilfe, Ktxt)
If Antwort = vbYes Then
Selection.PasteSpecial Paste:=xlPasteValues, Operation:= _
_
xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("U:U").Select
Selection.ClearContents
Range("A6").Select
Sheets("Nachmeldeblatt").Select
Worksheets("Nachmeldeblatt").Rows(y).Select
Selection.Delete Shift:=xlU
Range("B4").Select
x = anzreihen
y = nrreihen
Else
'Zurück zum Nachmeldeblatt und Meldung, da ich nicht  _
ersetzen möchte
Sheets("Nachmeldeblatt").Select
ActiveWindow.ScrollColumn = 2
Range("A4").Select
Application.CutCopyMode = False
x = anzreihen
y = nrreihen
MsgBox "Keine Änderungen eingetragen! Aktion abgebochen. _
_
End If
'Dieses else darf nicht belegt werden wegen der schleife
Else
End If
Next x
End With


Ich prüfe ob eine gemerkte nummer innerhalb einer spalte auftaucht. wenn ja dann wird gefragt, ob die entsprechene Zeile überschrieben werden soll. das klappt auch soweit.
Ich möchte aber nun noch haben, dass - wenn alle zeilen der spalte durchgeprüft worden sind und die nummer nicht gefunden wurde - gefragt wird, ob ich die nummer mit den entsprechenden infos unten an die liste hängen möchte.
Das else in der schleife oben kann ich nicht belegen, da sonst ja nicht alle zellen der spalte geprüft werden, sondern beim ersten mismatch schon die else-bedingung erfüllt ist.
wie kann ich das lösen?
Vielen Dank,
Fabian

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: while Schleife if..then..else
06.07.2007 17:30:00
ingUR
Hallo, Fabian,
vor der Schleife FOR-x könntest Du eine Boolean-Variable auf FALSE setzen, die Du dann, wenn die Nummer gefunden wurde auf TRUE setzt. Nach der Abarbeitung aller Zellen der Spalte (x szeht nun auf anzreihen+1) kannst Du abfargen, ob die Variable immer noch auf FALSE steht. Ist dies der Fall, dann kanst Du Deine Abfrage nach der Ergänzung starten.

Dim Gefunden as boolean
For x=1 ....
If Cells(...)=actionnr then
Gefunden = true
else
end if
next x
If Not Gefunden then
...Programmzeilen zum ergänzen
Gefunden = false
end if


Gruß,
UWe

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige