Waarde functie niet doorgegeven naar Cel

  • Onderwerp starter Onderwerp starter tuti
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

tuti

Nieuwe gebruiker
Lid geworden
10 jan 2008
Berichten
1
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:

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:
- Heb je de functie in een module geplaatst?
- Hoe roep je de functie op?
- Probeer eens een andere functie uit:
Code:
Function fTestPassed1(strDay As String) As Integer
fTestPassed = 10
end Function
En kijk eens of de waarde 10 wel ingevuld wordt, dan weet je in ieder geval of de fout in je routine zit, of in de manier van aanroepen...
 
Probeer deze code eens, bij lukt het

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
Dim Sht As Worksheet

'nu het aantal executed testcases
iTotal = Sheets.Count

MsgBox (iTotal)
For i = 1 To iTotal
'Sheets(i).Select
Set Sht = Sheets(i)
strNaam = Sht.Name

If Left(strNaam, 2) = "LT" Then
strCelwaarde = Sht.Range("B8").Value
strVergWaarde = strDay

strStatus = Sht.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

in worksheet aanroepen met =ftestpassed(ref)
volgens mij was het probleem dat je niet sheets(i).select kunt doen in een functie...maar dat weet ik niet zeker.
 
Laatst bewerkt door een moderator:
volgens mij was het probleem dat je niet sheets(i).select kunt doen in een functie...

Ik heb de rest van de posts in deze topic niet gelezen, maar een functie kan dit idd niet.

Daan, in het vervolg graag code tags rond code zetten, dan wordt het leesbaar.

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan