Variabelen gebruiken in een formule

Status
Niet open voor verdere reacties.

RJD1986

Gebruiker
Lid geworden
10 jan 2012
Berichten
9
Ik hoop dat jullie me verder kunnen helpen.

Op het blad 'Tabel_Data' staat een een tabel geïmporteerd uit Acces. Deze wil ik uitlezen. De volgende formule geeft de juiste waarde

Code:
ActiveCell.FormulaR1C1 = _
        "=SUMIFS(Tabel_Data!C6,Tabel_Data!C5,""Kantoor uren"",Tabel_Data!C1,""BADIN"",Tabel_Data!C2,""2012"",Tabel_Data!C11,""8"")"

Het moet naar het volgende blad geschreven worden

Naamloos.jpg

Wanneer de code uitgevoerd wordt en ik in excel klik op cel I12 om de formule te bekijken zie ik dit:

Code:
=SOMMEN.ALS(Tabel_Data!$F:$F,Tabel_Data!$E:$E,Kantoor uren,Tabel_Data!$A:$A,Badin,Tabel_Data!$B:$B,2012,Tabel_Data!$K:$K,8)

Hij leest dus wel correct uit ik mis alleen de " want in excel geeft hij wel de juiste waarde met de volgende formule:

Code:
=SOMMEN.ALS(Tabel_Data!$F:$F,Tabel_Data!$E:$E,"Kantoor uren",Tabel_Data!$A:$A,"Badin",Tabel_Data!$B:$B,"2012",Tabel_Data!$K:$K,"8")

Ik gebruik de volgende code in VBA. Deze moet nog uitgebreid worden. Uiteindelijk moet er een loop die alle cellen automatisch moet gaan vullen. Ik wil variabelen gebruiken zodat ik maar 1 keer de formule hoef te maken en niet voor ieder cel een formule in hoef te vullen. Ik heb de variabelen(zoals aan de benaming te zien is :P) als geprobeerd als String en Integer.

Code:
Option Explicit

Sub Macro1()
'
' Macro1 
'

''''''''''''''''''''''''''Variables''''''''''''''''''''''''''
Dim strYear As Variant
Dim strMonth As Variant
Dim strName As Variant
Dim strOmschr As Variant

Range("I12").Select

strName = Range("I1")
strYear = Range("C1")

If ActiveCell.Column = 2 Then strMonth = "1"
    If ActiveCell.Column = 3 Then strMonth = "2"
    If ActiveCell.Column = 4 Then strMonth = "3"
    If ActiveCell.Column = 5 Then strMonth = "4"
    If ActiveCell.Column = 6 Then strMonth = "5"
    If ActiveCell.Column = 7 Then strMonth = "6"
    If ActiveCell.Column = 8 Then strMonth = "7"
    If ActiveCell.Column = 9 Then strMonth = "8"
    If ActiveCell.Column = 10 Then strMonth = "9"
    If ActiveCell.Column = 11 Then strMonth = "10"
    If ActiveCell.Column = 12 Then strMonth = "11"
    If ActiveCell.Column = 13 Then strMonth = "12"

If ActiveCell.Row = 9 Then strOmschr = "Productief"
    If ActiveCell.Row = 10 Then strOmschr = "Ziek uren"
    If ActiveCell.Row = 11 Then strOmschr = "Speciaal verlof"
    If ActiveCell.Row = 12 Then strOmschr = "Kantoor uren"
    If ActiveCell.Row = 13 Then strOmschr = "Verlof"
    
    
Range("I24") = strYear
Range("I25") = strOmschr
Range("I26") = strMonth


''''''''''''''''''''''''''Formula''''''''''''''''''''''''''
ActiveCell.FormulaR1C1 = _
    "=SUMIFS(Tabel_Data!C6,Tabel_Data!C5," & strOmschr & ",Tabel_Data!C1," & strName & ",Tabel_Data!C2," & strYear & ",Tabel_Data!C11," & strMonth & ")"
        


'This gives the right value
'ActiveCell.FormulaR1C1 = _
'       "=SUMIFS(Tabel_Data!C6,Tabel_Data!C5,""Kantoor uren"",Tabel_Data!C1,""BADIN"",Tabel_Data!C2,""2012"",Tabel_Data!C11,""8"")"
End Sub
 
Als je een " teken in een string wilt wegschrijven moet je geen " teken gebruiken maar Chr(34).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan