Hallo Pete,
leider hat die SW des Forums malö wieder große Teile verschluckt. Vermutlich liegt es daran, dass ich nicht alle Größer- und Kleinerzeichen vorher entfernt hatte. So ist es hoffentlich richtig:
Es ist nicht klar, ob die Einfärbung im Zeitraum "Datum von Uhrzeit von" bis "Datum bis Uhrzeit bis" erfolgen soll, oder nur in der Zeit "Uhrzeit von" bis "Uhrzeit bis" an den Tagen "Datum von" bis "Datum bis".
Jenachdem muss der Apostroph vor die Zeile
If a + b größer= dvon + uvon And a + b kleiner= dbis + ubis Then
oder
'If a größer= dvon And a kleiner= dbis And b größer= uvon And b kleiner= ubis Then
Sub Eingeben(text, wert)
Static t
t = text
Do
wert = Inputbox(t, Messwerte, wert)
t = text + vbCrLf + "Geben Sie einen vernünftigen Wert ein!"
Loop While wert = ""
End Sub
Sub messungen()
Eingeben "Geben Sie den MinGrenzwert ein!", ming
ming = CDbl(Replace(ming, ".", ","))
Eingeben "Geben Sie den MaxGrenzwert ein!", maxg
maxg = CDbl(Replace(maxg, ".", ","))
Do
Eingeben "Geben Sie ein Datum Zeitraum von bis ein! (Format: tt.mm.jjjj - tt.mm.jjjj)", Datum
Loop Until InStr(Datum, "-")
Do
Eingeben "Geben Sie Uhrzeit Zeitraum von bis an! (Format: hh:mm:ss - hh:mm:ss", uhr
Loop Until InStr(uhr, "-")
Eingeben "Bitte geben Sie die Spalte an, in der Messwerte überprüft werden sollen.", sp
dvon = CDate(Trim(Left(Datum, InStr(Datum, "-") - 1)))
dbis = CDate(Trim(Mid(Datum, InStr(Datum, "-") + 1)))
uvon = CDate(Trim(Left(uhr, InStr(uhr, "-") - 1)))
ubis = CDate(Trim(Mid(uhr, InStr(uhr, "-") + 1)))
Cells.Interior.ColorIndex = xlNone
sp = Columns(sp).Column
For i = 1 To Cells(Rows.Count, sp).End(xlUp).Row
a = Cells(i, 1)
b = Cells(i, 2)
If a + b größer= dvon + uvon And a + b kleiner= dbis + ubis Then
' If a größer= dvon And a kleiner= dbis And b größer= uvon And b kleiner= ubis Then
If Cells(i, sp) größer= ming And Cells(i, sp) kleiner= maxg Then
Cells(i, sp).Interior.Color = vbGreen
Else
Cells(i, sp).Interior.Color = vbRed
End If
End If
Next i
End Sub
Gruß
Holger
Holger schrieb am 18.03.2009 15:04:31:
Hallo Pete,
es ist nicht klar, ob die Einfärbung im Zeitraum "Davon von Uhrzeit von" bis "Datum bis Uhrzeit bis" erfolgen soll, oder nur in der Zeit "Uhrzeit von" bis "Uhrzeit bis" an den Tagen "Davon von" bis "Davon bis".
Jenachdem musst den Apostroph vor die Zeilen
If a + b größer= dvon + uvon And a + b kleiner= dbis + ubis Then
'If a größer= dvon And a kleiner= dbis And b >= uvon And b = uvon And b <= ubis Then
setzen
If a + b größer= dvon + uvon And a + b kleiner= dbis + ubis Then
If Cells(i, sp) größer= ming And Cells(i, sp) kleiner= maxg Then
Cells(i, sp).Interior.Color = vbGreen
Else
Cells(i, sp).Interior.Color = vbRed
End If
End If
Next i
End Sub
Gruß
Holger
Pete schrieb am 15.03.2009 14:28:35:
Hallo an alle VBA Tüftler,
ich hab folgendes Problem.
Gegeben ist eine endlose Tabelle mit minütlichen Messwertaufzeichnungen, gelistet nach Datum und Uhrzeit. Siehe Skizze
Messwertaufzeichnung
Datum Uhrzeit Messung 1 Messung 2 Messung 3 Messung 4 Messung 5 usw.
01.01.2008 07:00
01.01.2008 07:01 1 1 1 1 1
01.01.2008 07:02 2 2 2 2 2
Nun soll ein Programm geschrieben werden, dass folgende Daten in einer bestimmten Schriftfarbe markieren soll.
Inputbox: Geben Sie den MinGrenzwert ein!
Inputbox: Geben Sie den MaxGrenzwert ein!
Inputbox: Geben sie ein Datum Zeitraum von bis ein! (Format)
Inputbox: Geben sie Uhrzeit Zeitraum von bis an! (Format)
Inputbox: Bitte geben Sie die Spalte an, in der Messwerte überprüft werden sollen.
Liegt der Messwert zwischen einer MinGrenzwert und MaxGrenzwert, soll die Zeile z.B. grün unterlegt werden.
Liegt der Messwert unterhalb oder oberhalb der Grenzwerte sollen die Zeilen z.B. rot unterlegt werden.
Die Einfärbungen sollen nur im Eingegeben Datum und Uhrzeit Zeitraum vorgenommen werden.
Wenn jemand einen Lösungsvorschlag hat , bitte melden……
Thanks
pete
|