Hallo, ik heb een probleem met vba excel waar ik al een paar uur op zit te dubben en waar niemand me bij kan helpen. Dus daarom ben ik hier terecht gekomen.
Wat wil ik? Ik heb in vba een Function geschreven welke aanroepbaar zou moeten zijn vanuit een willekeurige cel. De bedoeling van deze function is, is dat hij van een aantal (variabel!) aantal tabbladen een tweetal velden ophaalt: een datum en een status.
Nu wil ik dat deze twee waarden in de function van alle tabbladen gehaald worden, en dat het aantal genoteerd wordt in de cel die aangeroepen wordt. De bedoeling is dat ALLEEN gevallen genoteerd worden waarbij datum is bijv. "10-1-2008" en status = "P"
Ik heb hiervoor onderstaande code geschreven:
Het rare is nu, dat als ik de function nu vanuit een SUB aanroep, dat er wel een waarde in de SUB zichtbaar is; maar als ik de functie aanroep vanuit het Excel-werkblad(dus als formule in een cel plaats) dat er dan GEEN waarde terug komt.
Ik hoop dat mijn probleem een beetje duidelijk is en dat iemand hier uitkomst kan bieden
Wat wil ik? Ik heb in vba een Function geschreven welke aanroepbaar zou moeten zijn vanuit een willekeurige cel. De bedoeling van deze function is, is dat hij van een aantal (variabel!) aantal tabbladen een tweetal velden ophaalt: een datum en een status.
Nu wil ik dat deze twee waarden in de function van alle tabbladen gehaald worden, en dat het aantal genoteerd wordt in de cel die aangeroepen wordt. De bedoeling is dat ALLEEN gevallen genoteerd worden waarbij datum is bijv. "10-1-2008" en status = "P"
Ik heb hiervoor onderstaande code geschreven:
Code:
Function fTestPassed(strDay As String) As Integer
Dim iTotal As Integer
Dim i As Integer
Dim j As Integer
Dim iAantal As Integer
Const Eerstecel = 3
Const Laatstecel = 105
Dim strCelwaarde As String
Dim strVergWaarde As String
Dim strNaam As String
Dim strStatus As String
'nu het aantal executed testcases
iTotal = Sheets.Count
For i = 1 To iTotal
Sheets(i).Select
strNaam = ActiveSheet.Name
If Left(strNaam, 2) = "LT" Then
strCelwaarde = Range("B8").Value
strVergWaarde = strDay
strStatus = Range("H2").Value
Select Case strStatus
Case "P"
If strCelwaarde = strVergWaarde Then
iAantal = iAantal + 1
End If
'Case "F"
' If strCelwaarde = strVergWaarde Then
' iAantal = iAantal + 1
' End If
'Case "I"
' If strCelwaarde = strVergWaarde Then
' iAantal = iAantal + 1
'End If
End Select
End If
Next i
fTestPassed = iAantal
End Function
Het rare is nu, dat als ik de function nu vanuit een SUB aanroep, dat er wel een waarde in de SUB zichtbaar is; maar als ik de functie aanroep vanuit het Excel-werkblad(dus als formule in een cel plaats) dat er dan GEEN waarde terug komt.
Ik hoop dat mijn probleem een beetje duidelijk is en dat iemand hier uitkomst kan bieden

Laatst bewerkt door een moderator: