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

Do While... Loop

Do While... Loop
24.05.2005 16:13:05
Sammy
Hallo Ihrs!
Mal wieder ein neuer Versuch hoffentlich redet diesmal jemand mit mir...
Ich brauche eine Schleife die mir folgende Anweisung solange wiederholt, bis DatumOptionende hinter dem heutigen Datum liegt.
Bei meiner Schleife gibt er immer ein Fehler aus und zwar immer am Ende der Schleife... was mach ich falsch?
#If DatumLaufende &lt= DatumHeute Then
Do While DatumEnde &lt= DatumHeute

TagOptionbeginn = TagBeginn
MonatOptionbeginn = MonatBeginn + Laufzeit
JahrOptionbeginn = JahrBeginn
DatumOptionbeginn = DateSerial(JahrOptionbeginn, MonatOptionbeginn,TagOptionbeginn)
.Cells(z, 10) = DatumOptionbeginn


TagOptionende = TagEnde
MonatOptionende = MonatEnde + Laufzeit
JahrOptionende = JahrEnde
DatumOptionende = DateSerial(JahrOptionende, MonatOptionende, TagOptionende)
.Cells(z, 11) = DatumOptionende

Loop

#End If
Freue mich auf Antwort!

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Do While... Loop
24.05.2005 17:12:25
Volker
Hallo Sammy,
leider sind die Variablenzuweisungen nicht ersichtlich.
Aber
1. dürfte ".cells(z,11)=...." eine Fehlermeldung geben. Laß den Punkt weg.
2. wird in deiner Schleife weder DatumEnde noch DatumHeute geändert, dh. das Abbruchkriterium wird nie erfüllt.
Gruß
Volker
AW: Do While... Loop
24.05.2005 18:52:38
Sammy
Hey Volker,
tausend dank! Hast natürlich recht... das machen wohl meine mangelnden VBA-Künste das ich den Wald vor lauter Bäumen nicht seh!
Aber warum muss ich den Punkt wegmachen... jetzt klappts auch mit Punkt..
Viele Grüße
Sammy
AW: Do While... Loop
25.05.2005 06:44:28
Volker
Moin Sammy,
das mit dem Wald geht nicht nur dir manchmal so.
Also:

Sub xyz()
.cells(1,1)
End Sub

wird nicht gehen. probiers aus.
Du hast sicherlich irgendwo vorher ein
with activesheet
...dein code
.Cells(1, 1) = "xyz"
............
End With
End Sub
Mit dem Punkt kann man sich Schreibarbeit sparen:

Sub xyz_bla()
Sheets(1).Activate
With ActiveSheet
.Cells(3, 3) = "bla"
Sheets(2).Range("B2") = "Hallo"
.Cells(1, 1) = "xyz"
Sheets(2).Rows(1).Delete
.Rows(1).Delete
usw.
End With
End Sub

Alle Anweisungen nach dem "With Objekt" steht und mit einem Punkt beginnt, bezieht sich auf dieses Objekt.
Wie Du siehst, können dazwischen sogar Anweisungen stehen, die sich nicht auf das Objekt beziehen, also ohne Punkt sind.
Das gilt also für beliebige? Objekte, zB. auch einen Range:

Sub xyz_bla()
With Range("A1:C3")
.ClearContents
.Interior.Color = 10
End With
Gruß
Volker

Anzeige
AW: Do While... Loop
25.05.2005 09:36:58
Sammy
Moin Volker,
gut zu wissen. Schreibarbeit ist nur nicht mein Problem sondern das fehlende Wissen... wenn ich das durch Schreibarbeit wenigstens ein wenig aufwiegen kann, bin ich ja schon zufrieden!
Kannst du mir bei diesem Problem auch Hilfestellung geben?
Kuendigung = .Cells(z, 14)
#If Kuendigung = "x" Then

'Kopiere diese Zeile in Tabellenblatt "GekuendigteVertraege" in die erste freie Zeile aber nicht in die erste
'Lösche dise Zeile in Tabellenblatt "Eingabefenster" und verschiebe alle anderen Zeilen um eins nach oben (behalte aber die Formatierungen jeder einzelnen Zeile)

#End If
Jetzt schon mal Danke!
Viele Grüße
Sammy
Anzeige
AW: Do While... Loop
25.05.2005 10:07:41
Volker
Klar, geht alles, nun aber ungetestet:
Kuendigung = .Cells(z, 14)
If Kuendigung = "x" Then
Rows(z).Copy
'Kopiere diese Zeile in Tabellenblatt "GekuendigteVertraege" in die erste freie Zeile aber nicht in die erste
letzte = WorksheetFunction.Max(2, Sheets("GekuendigteVertraege").Range("A65535").endxl(up).Row+1)
Sheets("GekuendigteVertraege").Range("A" & letze).Paste
'Lösche dise Zeile in Tabellenblatt "Eingabefenster" und verschiebe alle anderen Zeilen um eins nach oben (behalte aber die Formatierungen jeder einzelnen Zeile)
Rows(z).Delete
End If
oder kürzer
If .Cells(z, 14) = "x" Then
Rows(z).Copy
'Kopiere diese Zeile in Tabellenblatt "GekuendigteVertraege" in die erste freie Zeile aber nicht in die erste
letzte = WorksheetFunction.Max(2, Sheets("GekuendigteVertraege").Range("A65535").endxl(up).Row+1)
Sheets("GekuendigteVertraege").Range("A" & letze).Paste
'Lösche dise Zeile in Tabellenblatt "Eingabefenster" und verschiebe alle anderen Zeilen um eins nach oben (behalte aber die Formatierungen jeder einzelnen Zeile)
Rows(z).Delete
End If
End Sub
Gruß
Volker
Anzeige
AW: Do While... Loop
25.05.2005 10:38:57
Sammy
Danke für den Einsatz!
Leider gibt er immer diese Fehlermeldung raus:
Objekt unterstützt diese Eigenschaft oder Methode nicht.
Und er makiert mir dann die Zeile :
letzte = WorksheetFunction.Max(2, Sheets("GekuendigteVertraege").Range("A65535").endxl(up).Row + 1)
habe das da stehen, mit den Variablen Kuendigung als String, letzte und up als Integer
Kuendigung = .Cells(z, 14)

#If Kuendigung = "x" Then

Rows(z).Copy
letzte = WorksheetFunction.Max(2, Sheets("GekuendigteVertraege").Range("A65535").endxl(up).Row + 1)
Sheets("GekuendigteVertraege").Range("A" & letzte).Paste
Rows(z).Delete

#End If
Anzeige
Keine Zeit mehr. Wer übernimmt bitte ?
25.05.2005 10:45:25
Volker
sorry meine Zeit wird knapp.
1. up muß oder sogar darf nicht deklariert werden.
2. ev. muß Blatt("GekuendigteVertraege") vorher aktiviert werden, glaub ich aber eher nicht
3. Schau dir halt mal in der Hilfe die Funtionen an
Ich setzte die Frage auf offen. Vielleicht übernimmt jemand inzwischen.
Gruß
Volker
AW: Keine Zeit mehr. Wer übernimmt bitte ?
25.05.2005 11:12:15
Sammy
Hallo Volker!
Hab raus wie er diesen Fehler nicht mehr macht.
Es muß heißen: ...End(xlUp)...
Leider habe ich direkt den nächsten Bug. Für folgende Zeile:
Sheets("GekuendigteVertraege").Activate.Range("A" & letzte).Paste
gibt er immer diese Fehlermeldung aus: Objekt erforderlich!
Vielleicht steht mir ja noch jemand anderes mit Tat und Rat zur Seite.
Danke im Voraus& Danke Volker!
Viele Grüße Sammy
Anzeige
AW: Keine Zeit mehr. Wer übernimmt bitte ?
25.05.2005 17:36:31
Hajo_Zi
Hallo Sammy,
was soll .Activate in der Zeile?
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


218 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige