Excel VB Datum prüfen
Hallo,
ich wurde dazu degradiert eine Excel Datei zu ertsellen die folgendes kann...
PS
Ich bin vollkommener Neuling in VB
... Man soll alle Gegenstände in eine Tabelle eintragen können und diese Gegenstände sollen den AUTOMATISCH in die jeweiligen Raumlisten bzw Wertlisten kopiert werden.
Soweit so gut und es Funktioniert auch alles super ABER an einer Sache scheiterts bei mir.
JETZT das Problem.
Ab der Zeile 26 bis Zeile 43 wird der Wert geprüft ob der Wert von bis größer kleiner ist.
Aber der soll in der SELBEN Zeile in einer anderen Spalte vorher prüfen ob ein Datum nicht vor dem 31.12.2007 ist.
Dies ist der code für das Auswerten einer Wertetabelle.
Währe echt Dankbar für Hilfe
Mit freundlichen Grüßen
DasBreaker
ich wurde dazu degradiert eine Excel Datei zu ertsellen die folgendes kann...
PS
Ich bin vollkommener Neuling in VB
... Man soll alle Gegenstände in eine Tabelle eintragen können und diese Gegenstände sollen den AUTOMATISCH in die jeweiligen Raumlisten bzw Wertlisten kopiert werden.
Soweit so gut und es Funktioniert auch alles super ABER an einer Sache scheiterts bei mir.
JETZT das Problem.
Ab der Zeile 26 bis Zeile 43 wird der Wert geprüft ob der Wert von bis größer kleiner ist.
Aber der soll in der SELBEN Zeile in einer anderen Spalte vorher prüfen ob ein Datum nicht vor dem 31.12.2007 ist.
Dies ist der code für das Auswerten einer Wertetabelle.
Public Sub FlaechenWertAuswertung_1()
'Ausblenden der Macroaktionen
Application.ScreenUpdating = False
'Deklarieren der Variablen
Dim cell As Range
Dim ExitFor As Integer
ExitFor = 0
'Deklarieren des Tabellenschleifenzählerwertes
Dim tblz As Integer
Dim tblr As String
tblz = 8
tblr = "8:65536"
'Deklarieren der Tabellenschleifenzähler
Dim tblz001 As Integer
'Setzen der Tabellenschleifenzähler
tblz001 = tblz
'Löschen der alten Daten
tbla001.Rows(tblr).ClearContents
'Schreiben der neuen Daten
For Each cell In Tabelle1.Range("J8:J65536")
If cell.Value = "" Then
ExitFor = ExitFor + 1
If ExitFor >= 200 Then
Exit For
End If
End If
If Not cell.Value = "" Then
ExitFor = 0
End If
If cell.Value >= 0.01 Then
If cell.Value < 410 Then
cell.EntireRow.Copy
tbla001.Cells(tblz001, 1).PasteSpecial , Paste:=xlPasteValues
tblz001 = tblz001 + 1
End If
End If
Next cell
Application.ScreenUpdating = True
End Sub
Währe echt Dankbar für Hilfe
Mit freundlichen Grüßen
DasBreaker
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 175169
Url: https://administrator.de/contentid/175169
Ausgedruckt am: 22.11.2024 um 06:11 Uhr
11 Kommentare
Neuester Kommentar
Moin,
wie wäre es mit folgendem:
zuerst vorher im code die Variable Limit deklarieren und den Wert 31.12.2007 zuweisen:
In der Schleife dann prüfen, ob die Differenz in Tagen größer 0 ist:
cell ist hierbei die aktuell ausgewählte Zelle.
Ich gehe davon aus, dass diese bereits als Datum formatiert ist.
Gruß,
DB
wie wäre es mit folgendem:
zuerst vorher im code die Variable Limit deklarieren und den Wert 31.12.2007 zuweisen:
limit = Format("31.12.2007", "dd.mm.yyyy")
In der Schleife dann prüfen, ob die Differenz in Tagen größer 0 ist:
If DateDiff("d", limit, cell) > 0 Then
...
Else
...
Endif
Ich gehe davon aus, dass diese bereits als Datum formatiert ist.
Gruß,
DB
Ich würde das dann ein bisschen umschreiben:
PS: d bei DateDiff steht für days == Tage
limit = Format("31.12.2007", "dd.mm.yyyy")
For i = 8 To 65536
cell = Tabelle1.Range("J" & i)
If cell.Value = "" Then
ExitFor = ExitFor + 1
If ExitFor >= 200 Then
Exit For
End If
End If
If Not cell.Value = "" Then
ExitFor = 0
End If
If DateDiff("d", limit, Tabelle1.Range("F" & i)) > 0 Then
If cell.Value > 150.01 Then
If cell.Value < 1000 Then
cell.EntireRow.Copy
tbla002.Cells(tblz001, 1).PasteSpecial , Paste:=xlPasteValues
tblz001 = tblz001 + 1
End If
End If
End If
Next i
PS: d bei DateDiff steht für days == Tage
Das könnte theoretisch gehen.
Ich weiß aber nicht, ob vba dafür eine Funktion bietet.
Gruß,
DB
Ich weiß aber nicht, ob vba dafür eine Funktion bietet.
Gruß,
DB