Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
756to760
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
756to760
756to760
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Probleme mit ParamArray

Probleme mit ParamArray
19.04.2006 12:17:44
stefanie
Hallo,
ich habe folgende funktion geschrieben.

Function GetError(ParamArray InputRange())
Dim Str1 As Variant
NumberOfFailures = 0
For Each Str1 In InputRange
GetError = 0
ipos1 = InStr(Str1, ":")
ipos2 = InStr(Str1, "/")
If ipos1 = 0 Then
If ipos2 = 0 Then
NumberOfFailures = NumberOfFailures + 0
Else
NumberOfFailures = NumberOfFailures + Val(Mid(Str1, 1, ipos2 - 1))
End If
Else
If ipos2 = 0 Then
NumberOfFailures = NumberOfFailures + 0
Else
NumberOfFailures = NumberOfFailures + Val(Mid(Str1, 1, ipos2 - 1))
End If
End If
If ipos1 = 0 And ipos2 = 0 Then
NumberOfFailures = NumberOfFailures + 0
Else
NumberOfFailures = NumberOfFailures + Val(Mid(Str1, 1, ipos2 - 1))
End If
Next Str1
GetError = NumberOfFailures
MsgBox (GetError)
End Function

Soll heißen ich möchte alle Werte aufaddieren die vor einem "/" sind.
2/112
1/32
1/18
3:30
3:30/80
100
hier: =Geterror(A1:A6)
soll rauskommen 34
wer kann weiterhelfen?
Gruß

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit ParamArray
19.04.2006 13:17:40
Erich
Hallo Stefanie,
versuchs mal mit
Option Explicit
Function GetError(ParamArray InputRange())
Dim Str1 As Variant, NumberOfFailures As Integer
Dim ipos1 As Integer, ipos2 As Integer, ii As Integer
NumberOfFailures = 0
For ii = LBound(InputRange(0)) To UBound(InputRange(0))
Str1 = InputRange(0)(ii)
ipos2 = InStr(Str1, "/")
If ipos2 > 0 Then
ipos1 = InStr(Left(Str1, ipos2 - 1), ":")
NumberOfFailures = NumberOfFailures + Val(Mid(Str1, ipos1 + 1, ipos2 - 1))
End If
Next ii
GetError = NumberOfFailures
End Function
Sub tst()
Dim arr
arr = Array("2/112", "1/32", "1/18", "3:30", "3:30/80", "100")
MsgBox GetError(arr)
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Probleme mit ParamArray
19.04.2006 14:44:30
Heiko
Hallo Stefanie,
wenn das
"Soll heißen ich möchte alle Werte aufaddieren die vor einem "/" sind."
deine Bedingung ist dann tuts auch dieses einfache Makro für dein Beispiel.

Function GetError(InputRange As Range)
Dim rng1 As Range
Dim intPos1 As Integer
Dim dblError As Double
For Each rng1 In InputRange
If InStr(rng1.Text, "/") > 0 Then
intPos1 = InStr(rng1.Text, "/")
If InStr(rng1.Text, ":") > 0 And InStr(rng1.Text, ":") < intPos1 Then
dblError = dblError + Val(Mid(rng1.Text, InStr(rng1.Text, ":") + 1, intPos1))
Else
dblError = dblError + Val(Left(rng1.Text, intPos1 - 1))
End If
End If
Next rng1
GetError = dblError
End Function

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Probleme mit ParamArray
19.04.2006 17:17:32
Erich
Hallo Stefanie,
hier noch mal alle Möglichkeiten - ob mit Range, Array oder ParamArray:
Option Explicit
Function AnzErr1(arrIn As Range)
Dim rg As Range, iiS As Integer
For Each rg In arrIn
iiS = InStr(rg, "/") - 1
If iiS > 0 Then _
AnzErr1 = AnzErr1 + Val(Mid(rg, InStr(Left(rg, iiS), ":") + 1, iiS))
Next rg
End Function
Function AnzErr2(arrIn As Variant)
Dim iiS As Integer, ii As Integer
For ii = LBound(arrIn) To UBound(arrIn)
iiS = InStr(arrIn(ii), "/") - 1
If iiS > 0 Then AnzErr2 = AnzErr2 _
+ Val(Mid(arrIn(ii), InStr(Left(arrIn(ii), iiS), ":") + 1, iiS))
Next ii
End Function
Function AnzErr3(ParamArray arrIn())
Dim Str1 As Variant
Dim iiS As Integer, ii As Integer
For ii = LBound(arrIn(0)) To UBound(arrIn(0))
Str1 = arrIn(0)(ii)
iiS = InStr(Str1, "/") - 1
If iiS > 0 Then AnzErr3 = AnzErr3 _
+ Val(Mid(Str1, InStr(Left(Str1, iiS), ":") + 1, iiS))
Next ii
End Function
Sub tst()
Dim arr
MsgBox AnzErr1(Range("A1:A6"))
arr = Array("2/112", "1/32", "1/18", "3:30", "3:30/80", "100")
MsgBox AnzErr2(arr)
MsgBox AnzErr3(arr)
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige