SummenFunktion Uhrzeitformat ausnehmen
26.11.2013 12:32:00
Alexander
ich habe für mein Anliegen (aufsummieren von Zahlenwerten in jeweils einer Spalte; Zahlen mit dem Format Uhrzeit ([hh]:mm) sollen nicht mitgezählt werden)
diesen Code gefunden:
Function MeineSumme(ByVal vBereich As Range) As Double
Dim lZeilen As Long
Dim lSpalten As Long
Dim lZaehlerZeilen As Long
Dim lZaehlerSpalten As Long
Dim dSumme As Double
lZeilen = vBereich.Rows.Count ' Die Anzahl Zeilen werden bestimmt
lSpalten = vBereich.Columns.Count ' Die Anzahl Spalten werden bestimmt
dSumme = 0 ' Wert Initialisieren, ist eigentlich in VBA bei erstmaliger Verwendung nicht _
notwendig,
' aber eine alte Gewohnheit
For lZaehlerZeilen = 1 To lZeilen ' Hier werden die Werte in den einzelnen Zellen _
aufsummiert
For lZaehlerSpalten = 1 To lSpalten
If IsDate("07:00")(vBereich.Cells(lZaehlerZeilen, lZaehlerSpalten).Value) Then ' _
IsNumeric() prüft, ob es sich um eine
' Zahl handelt
dSumme = dSumme + vBereich.Cells(lZaehlerZeilen, lZaehlerSpalten).Value
End If
Next lZaehlerSpalten
Next lZaehlerZeilen
MeineSumme = dSumme ' Übergabe des Summenergebnisses an das Rückgabeergebnis von MeineSumme
End Function
Und hier ist dann mein Versuch die Funktion anzupassen, sodass Zahlen summiert werden und Uhrzeiten (sind ja auch Zahlenwerte) eben nicht.
Function MeineSumme(ByVal vBereich As Range) As Double
Dim lZeilen As Long
Dim lSpalten As Long
Dim lZaehlerZeilen As Long
Dim lZaehlerSpalten As Long
Dim dSumme As Double
lZeilen = vBereich.Rows.Count ' Die Anzahl Zeilen werden bestimmt
lSpalten = vBereich.Columns.Count ' Die Anzahl Spalten werden bestimmt
dSumme = 0 ' Wert Initialisieren, ist eigentlich in VBA bei erstmaliger Verwendung nicht _
notwendig,
' aber eine alte Gewohnheit
For lZaehlerZeilen = 1 To lZeilen ' Hier werden die Werte in den einzelnen Zellen _
aufsummiert
For lZaehlerSpalten = 1 To lSpalten
If IsNumeric(vBereich.Cells(lZaehlerZeilen, lZaehlerSpalten).Value) And IsDate(vBereich. _
Cells(lZaehlerZeilen, lZaehlerSpalten).Value) Then ' IsNumeric() prüft, ob es sich um eine
dSumme = dSumme + 0
Else
If Not IsDate(vBereich.Cells(lZaehlerZeilen, lZaehlerSpalten).Value) And IsNumeric( _
vBereich.Cells(lZaehlerZeilen, lZaehlerSpalten).Value) Then ' Zahl handelt
dSumme = dSumme + vBereich.Cells(lZaehlerZeilen, lZaehlerSpalten).Value
End If
End If
Next lZaehlerSpalten
Next lZaehlerZeilen
MeineSumme = dSumme ' Übergabe des Summenergebnisses an das Rückgabeergebnis von MeineSumme
End Function
Soweit ich weiß, ist es möglich Zahlenformate auszulesen und dann wohl auch damit weiter zu arbeiten (außer Bedingte Formatierung).Kann mir jemand helfen, die Funktion anzupassen?
Danke im Voraus
Alexander