• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

.Formula

Status
Niet open voor verdere reacties.

lcodee

Gebruiker
Lid geworden
26 mei 2006
Berichten
105
Hallo mensen,

Ik heb het volgende:

Als ik via vb een formule in een cel wil invoeren gebeurt het volgende

Range("P1").Formula = "=A1/B2" ( werkt)

Range("P1").Formula = "=Als(B2=0;0;A1/B20" geeft "Door toepassing of object
gedefinieerde fout" als error

Dus zodra ik de Als formule gebruik gaat het fout

Weet iemand hoe dit komt of hoe te omzeilen?

Groeten,
Leo
 
VB werkt alleen met engelse formules.
Probeer een de IF functie.

edit, zie nu dat dat ook niet werkt. mijn kennis gaat hier eigenlijk niet verder, je kan het ook oplossen met een if else:
Code:
Sub test()

    If Range("A1") = 0 Then
        Range("B3") = 0
    Else
        If Range("B1") <= 0 Or Range("B1") = "" Then
            MsgBox "B1 is 0 of niet ingevuld!!!"
            Exit Sub
        Else
            Range("B3") = (Range("A1") / Range("B1"))
        End If
    End If
    
End Sub

Groet,]
Ferenc
 
Laatst bewerkt:
Beetje aan het soeien gegaan icm google:

Prober deze eens:
Code:
Range("P1") = IIf(Range("B2") = 0, 0, Range("A1") / Range("B20"))

Groet,
Ferenc
 
Dit werkt wel:
Range("P1").Formula = "=if(B2=0,0,A1/B20)"

Gebruik in VBA altijd engelse termen en de , voor de scheiding van de argumenten.
Om deze formules juist in VBA te krijgen is het 't gemakkelijkste om ze op te nemen met de macrorecorder. De syntax is dan in elk geval goed.
 
Bedankt Jan,

Steek weer eens wat op.
Ging zelf ook dus de fout in met de ; inplaats van de , .


Groet,
Ferenc
 
Nog even zeggen dat je in plaats van:

Code:
Range("P1").Formula = "=if(B2=0,0,A1/B20)"

ook

Code:
Range("P1").Formula = "=if(B2=0,0," & rngTeller.Address & "/" & rngNoemer.Address & ")"

kan gebruiken. Ik bedoel dus dat je ranges in VBA ook kan gebruiken in je formules. Pas wel goed op voor de " en waar je die moet zetten.

Wigi
 
Mijne heren allemaal hartelijk bedankt voor uw inbreng.

De oplossing van Jan van Asseldonk is de oplossing. Altijd engels(amerikaans) denken.

Als wordt IF en ; wordt ,

Wigi bedankt voor de tip!

Groeten,

Leo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan