Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Daten von einer Woche berechnen

Betrifft: Daten von einer Woche berechnen von: Ryu_Hoshi
Geschrieben am: 19.08.2004 10:29:28

Hallo jetzt hatte mich eine Kolleging gefragt ob ich ihr ein Macro machen könnte der nur die Daten von heute bis in einer Woche (z.B. heute : 19.08-26.08) anzeigt und die restlichen Zeilen löscht. Ich habe schon mal die Zeilen nach Datum aufsteigend sortiert und bin am überlegen wie ich das mit einer Woche hinkriege. Die Spalte mit Datumsangaben ist D (d2-Dx). ES gibt Daten die weiter in Zukunft reichen als eine Woche und andere die in der Vergangenheit liegen. Hat jemand eine Idee?

Gruss
Ryu

  


Betrifft: AW: Daten von einer Woche berechnen von: Mac4
Geschrieben am: 19.08.2004 11:18:31

Hi,

versuchs mal hiermit:

Sub test()
For i = [D65536].End(xlUp).Row To 2 Step -1
If Cells(i, 4) - Date > 7 Or _
Date - Cells(i, 4) > 0 Then
Rows(i).Delete
End If
Next
End Sub


Marc (aus Köln)


  


Betrifft: AW: Daten von einer Woche berechnen von: PeterW
Geschrieben am: 19.08.2004 11:30:39

Hallo Marc,

mische mich nicht gerne ein aber warum löschst du die Daten (die ja auch in der Zukunft liegen können!!) und blendest nicht einfach die entsprechenden Zeilen aus?

Gruß
Peter


  


Betrifft: AW: Daten von einer Woche berechnen von: Mac4
Geschrieben am: 19.08.2004 11:36:05

Hi Peter,

hier war Dein Einmischen aber auch angesagt. Habe nicht weit genug gedacht!
Danke!

Marc (aus Köln)


  


Betrifft: AW: Daten von einer Woche berechnen von: PeterW
Geschrieben am: 19.08.2004 11:51:26

Hallo Ryu,

mit folgendem Code blendest du die Daten aus:
Sub Datumsbereich()
Dim lgzeile As Long
For lgzeile = 2 To Range("D65536").End(xlUp).Row
    If Cells(lgzeile, 4) < Date Or Cells(lgzeile, 4) > Date + 6 Then
        Rows(lgzeile).Hidden = True
    End If
Next
End Sub

Und damit wieder ein:

Sub AlleTermine()
    Rows.Hidden = False
End Sub

Gruß
Peter


  


Betrifft: AW: Daten von einer Woche berechnen von: Mac4
Geschrieben am: 19.08.2004 13:02:00

Hallo Peter,

was hälst Du hiervon?

Sub Datumsbereich()
Dim lgzeile As Long
For lgzeile = 2 To Range("D65536").End(xlUp).Row
Rows(lgzeile).Hidden = Cells(lgzeile, 4) < Date Or Cells(lgzeile, 4) > Date + 6
Next
End Sub


Marc (aus Köln)


  


Betrifft: AW: Daten von einer Woche berechnen von: Ryu_Hoshi
Geschrieben am: 19.08.2004 13:32:53

Hallo ihr beiden danek für eure Tips. Es klappt prima. Könnt ihr mir den Code bitte erklären?
[code]
Dim lgzeile As Long
[/code]
Die Zeile ist klar. Man definiert Variable lgzeile als Datentyp Long

[code]
For lgzeile = 2 To Range("D65536").End(xlUp).Row
[/code]
Hier markiert man glaube ich die Zeilen D2 bis D65536(höchste Zeile in excel)
MIr ist nicht klar warum lgzeile =2 und nicht z.B. "D2" und warum es "end(xlUp)" und nicht "end(xlDown) heisst. Man geht doch von D2 nach D65536 runter.

könnte man auch das so schreiben damit nicht alle Zeilen sondern nur die Zeilen mit Inhalt darauf überprüft werden?
[code]
For lgzeile = 2 To Range("D" & ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row ).End(xlUp).Row
[/code]

Und die Zeile ist noch unklar der Rest ist wieder klar

[code]
If Cells(lgzeile, 4) < Date Or Cells(lgzeile, 4) > Date + 6 Then
[/code]

Wofür ist hier 4 und welche ROlle spielt 6? Warum sthen hiere date und cells, variablen können es ja nicht sein, die sind ja nicht definiert.

Gruss
Ryu


  


Betrifft: AW: Daten von einer Woche berechnen von: Mac4
Geschrieben am: 19.08.2004 14:05:49

For lgzeile = 2 To Range("D65536").End(xlUp).Row
Hier wird nicht markiert! Der Ausdruck Range("D65536").End(xlUp).Row liefert die letzte gefüllte Zelle in Spalte D

UsedRange und SpecialCells sind zum Teil etwas unzuverlässige Kandidaten!

If Cells(lgzeile, 4) < Date Or Cells(lgzeile, 4) > Date + 6 Then
Die Syntax von Cells ist Cells(Zeilennr.,Spaltennummer), somit steht die 4 für Spalte D, über lgzeile wird die Zeilennummer gesteuert

Die 6 steht für die Anzahl der Tage über dem heutigen (Date) Datum!

Marc (aus Köln)


  


Betrifft: AW: Daten von einer Woche berechnen von: Ryu_Hoshi
Geschrieben am: 19.08.2004 14:20:53

MIr ist nich nicht klar wofür Step in deiner ersten Version war und wofür "_" nach in der 3 Zeile stand.


  


Betrifft: AW: Daten von einer Woche berechnen von: Mac4
Geschrieben am: 19.08.2004 14:26:03

Hi,

da in meiner Version die Zeilen ja gelöscht wurden, habe ich die For-Schleife vom letzten Wert bis zum ersten Wert (also rückwärts, das ist bei Löschvorgängen besser)laufen lassen.
mit "_" kann man innerhalb einer Zeile einen Umbruch erzeugen

Marc (aus Köln)


  


Betrifft: AW: Daten von einer Woche berechnen von: Ryu_Hoshi
Geschrieben am: 19.08.2004 15:06:24

Ah dann kann man also lange Zeilen mit "_" trennen. Gut. Danke.! Ich werde demnächst mal wieder eine Frage mit Datum haben, weil ich momentan selber einen Macro mache bei dem die Daen analysiert werden sollen z.B. für eltzte KW, letzten Monat, letzten Jahr usw. Ich werde mich dann wieder später melden. Bis dahin muss ich einen Teil von macro zuende schreiben und noch eine Fehlermöglichkeit abfangen.


 

Beiträge aus den Excel-Beispielen zum Thema "Daten von einer Woche berechnen"