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

Taalselectie VBA formules

Status
Niet open voor verdere reacties.

Neocon

Gebruiker
Lid geworden
28 dec 2009
Berichten
57
Goedemorgen,

Voor Excel op de MAC 2012 heb ik een macro geschreven van een aantal A4'tjes.
Deze verwerkte alleen Engelse formules. Zojuist heb ik de nieuwe versie (2016) geïnstalleerd, echter krijg ik allemaal foutmeldingen.
Als ik een aantal formules omzet naar het NL wordt deze wel goed uitgevoerd.
Echter is het ondoenlijk om de gehele macro te herschrijven naar het NL.

Weet iemand of dit op een makkelijke manier om te zetten is, of dat er ergens een taalselectie gekozen kan worden voor VBA?
Ik hoor het graag als iemand iets weet.
Alvast bedankt.

Groet,
Jeffrey
 
VBA verwerkt en verstaat enkel UK's.
Als je je formules in Local hebt gezet moet je alle formules aanpassen.
Post eens een voorbeeld van je code om te zien wat er precies aan de hand is.
 
Beste Cobbe,

Dank voor je reactie.
Echter is het probleem net contra.

De oorspronkelijke formules bevatten enkel Engelse formules: LEN (ipv LENGTE) AND (ipv EN).
Nu met Excel 2016 voor de MAC krijg ik hierop een foutmelding.
Excel accepteert nu alleen nog maar LENGTE en EN, dus de Nederlandse VBA codering.

Graag wil ik dat Excel VBA standaard Engels leest. Hopelijk is dit mogelijk...
 
Je gaat met VBA (dat uitsluitend Amerikaans-engelstalig is) toch geen Excelformules in een werkblad zetten ?

Plaats de gebruikte code eens.
 
Excuses als mijn vraag niet duidelijk is.

Zie hieronder stapsgewijs wat er verkeerd gaat:

1. In Excel 2013 heb ik een macro gemaakt.
De macro is te lang om hier neer te zetten dus een klein stukje hieruit:

Range("D18").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=len(D18)<4"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Ongeldige invoer"
.InputMessage = ""
.ErrorMessage = "Geef een receptnummer in dat correspondeert met de AGF actie (zie tabblad AGF recepten)"
.ShowInput = True
.ShowError = True
End With

Deze is logischerwijs Engelstalig.

2. Zojuist is Excel 2016 geïnstalleerd (zelfde taal).

3. Het runnen van de macro levert een fout op.
Het gaat om dit stukje:
xlBetween, Formula1:="=len(D18)<4"

4. Wanneer ik de formule in mijn macro aanpas naar xlBetween, Formula1:="=lengte(D18)<4"
pakt excel de macro wel weer. Kortom, ik moet mijn formule in Excel 2016 in het Nederlands zetten om de macro weer werkbaar te maken.

Echter is de macro een aantal A4'tjes lang, waardoor het omzetten naar NL ondoenlijk is.
Wat ik eigenlijk zou willen is dat Excel 2016 ook engelse gecodeerde macro's leest (ipv NL) zoals Excel 2013 ook deed.

Hopelijk heb ik het zo beter verwoord.
 
Waarom zou je hier überhaupt iets doen ?
Validation hoef je meestentijd niet te veranderen en als toch, dan met Validation.modify

Code:
Sub M_snb()
   Range("D18").Validation.modify , , , "=len(D18)<4"
End Sub

Als de 'verbetering' van Excel 2016 inhoudt dat geen automatische vertaling naar de ingestelde taal plaatsvindt kun je het zo doen

Code:
Sub M_snb()
   cells(1,100)="=len(D18)<4"
   Range("D18").Validation.modify , , , cells(1,100).formulalocal
End Sub
 
Kan ik deze 'Formulalocal' ook eenmalig bovenin mijn macro zetten ipv het achter elke formule te zetten?
 
Het antwoord op die vraag staat in de hulpbestanden van de VBeditor.
 
Als dat kryptisch is, is het verstandig eerst een basisboek VBA door te nemen.
 
Ik doelde meer op het feit dat jij schijnbaar het antwoord weet, maar het niet wenst te vertellen.
Maar goed, dank tot zo ver.
 
Als het enkel om deze formule gaat kan je toch simpel via:
Bewerken - Vervangen - Len door Lengte
in je VbEditor.
 
Helaas gaat het om tal van formules. De macro bevat meer dan 1.000 regels en veel diverse functies.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan