• 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.

Nederlandse Formule omzetten naar Engels voor VBA

Status
Niet open voor verdere reacties.

BasNL

Gebruiker
Lid geworden
30 mei 2021
Berichten
7
Hallo allemaal,

Ik ben bezig met VBA module te schrijven, maar ik loop vast op de volgende formule hieronder die ik niet vertaald krijg naar het Engels om in VBA te gebruiken in .Formula = "formule"

=ALS.FOUT(INDEX(INDIRECT(TEKST.SAMENV("AV";RIJ())):INDIRECT(TEKST.SAMENV("CV";RIJ()));VERGELIJKEN(;INDIRECT(TEKST.SAMENV("AV";RIJ())):INDIRECT(TEKST.SAMENV("CV";RIJ()));-1));"0")

De formule in het Nederlands in werkblad werkt wel. Maar de functievertaler geeft een Error bij het omzetten.
Het zit waarschijnlijk in het INDIRECT(TEKST.SAMENV("AV";RIJ())) gedeelde, want bij een gewone cel verwijzing lukt het wel. Maar ik heb dit echt nodig. Bij andere formules lukt het me wel om (INDIRECT(TEKST.SAMENV("AV";RIJ())) te gebruiken.

Weet iemand de juiste oplossing?

Groet
Bas
 
even opnemen met de macro-recorder zou kunnen volstaan.
Ga op de cel staan, gebruik F2 en daarna enter.
Code:
    ActiveCell.FormulaR1C1 = "=IFERROR(INDEX(INDIRECT(CONCAT(""AV"",ROW())):INDIRECT(CONCAT(""CV"",ROW())),MATCH(,INDIRECT(CONCAT(""AV"",ROW())):INDIRECT(CONCAT(""CV"",ROW())),-1)),""0"")"
 
Nog een tip:

https://nl.excel-translator.de/translator/

PS: deze formule doet precies hetzelfde als die van jou:
Code:
[NL] =ALS.FOUT(INDEX(INDIRECT("AV"&RIJ()&":CV"&RIJ());VERGELIJKEN(;INDIRECT("AV"&RIJ()&":CV"&RIJ());-1));0)
[EN] =IFERROR(INDEX(INDIRECT("AV"&ROW()&":CV"&ROW());MATCH(;INDIRECT("AV"&ROW()&":CV"&ROW());-1));0)
En die hele INDIRECT kan er volgens mij ook uit. Maar goed, daarvoor heb ik te weinig inzicht in wat je wilt bereiken.
 
Laatst bewerkt:
In plaats van een ingewikkelde Excel formule kun je beter VBA gebruiken

Code:
Sub M_snb()
   sn = range("AV1:CV2000")

    for j= 1 to Ubound(sn)
      if sn(j,1)=c00 then Exit for
    next

   if j<=ubound(sn) then msgbox sn(j,ubound(sn,2))
End Sub
 
Doet deze formule niet exact hetzelfde eigenlijk (omlaag gekopieerd vanaf rij 1):

Code:
=IFERROR(INDEX($AV1:$CV1,MATCH(,$AV1:$CV1,-1)),"0")
=ALS.FOUT(INDEX($AV1:$CV1;VERGELIJKEN(;$AV1:$CV1;-1));"0")
 
Laatst bewerkt:
in A1
Code:
=ALS.FOUT(INDEX(INDIRECT(TEKST.SAMENV("AV";RIJ())):INDIRECT(TEKST.SAMENV("CV";RIJ()));VERGELIJKEN(;I NDIRECT(TEKST.SAMENV("AV";RIJ())):INDIRECT(TEKST.SAMENV("CV";RIJ()));-1));"0")
in VBA
Code:
Public Sub FormulaToVBA()
    MsgBox Range("A1").Formula
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan