Traduction formules en vVBA

Bonjour à tous,

Je galère pour traduire une formule en VBA.

J'ai une colonne et sur celle d'a côté RC[-1] je souhaite appliquer jusqu'en bas de la colonne la formules suivante en français.

=SI(GAUCHE(AI15;2)="DZ";"NAF";SI(GAUCHE(AI15;2)="LY";"NAF";SI(GAUCHE(AI15;2)="TN";"NAF";SI(GAUCHE(AI15;2)="MA";"NAF";"OTHER"))))

Mon début en vba.

.FormulaR1C1 = "=if(left(RC[-1];2)=""DZ"";""NAF""))"

En vous remerciant par avance,

Cordialement.

Bonjour,

Essaie ta formule telle que tu l'écris avec FormulaLocal.

(NB- Je n'ai pas lu la formule pour savoir si sans erreur)

Pourquoi insérer formule en VBA plutôt que la taper tout bêtement ?

(Je considère en général que (sans justification incontournable) utiliser VBA pour insérer une formule est d'une totale absurdité.)

Cordialement.

Merci,

En fait c'est pour dérouler dans une colonne la formule au lieu de le faire à la main.

Je vais tester formule local, mais on m'a dit que c’était mon fiable si classeur en anglais par exemple. Mais je sais pas trop si c'est vrai lol.

Je viens de la lire !

Comme formule on peut tout de même faire un peu mieux sans effort !

Je suggèrerais de commencer par là.

FormulaLocal ne fonctionne que sur les paramètres régionaux, donc en français sur des paramètres FR

Etendre une formule ne prend que quelques secondes ! Il t'en faudra infiniment plus avant d'arriver au bout en VBA.

Oui, bon j'ai abandonné la formule et j'ai utilisé une bonne veille boucle.

    DerLigne = ws.Cells(65536, 3).End(xlUp).Row

'Traduction de la formule :
'=SI(GAUCHE(AI15;2)="DZ";"NAF";SI(GAUCHE(AI15;2)="LY";"NAF";SI(GAUCHE(AI15;2)="TN";"NAF";SI(GAUCHE(AI15;2)="MA";"NAF";"OTHER"))))

'initialisation
i = 15

'boucle

For i = i To DerLigne
        If Cells(i, 37) Like "DZ*" Then
        Cells(i, 37).Value = "NAF"

        ElseIf Cells(i, 37) Like "LY*" Then
        Cells(i, 37).Value = "NAF"

        ElseIf Cells(i, 37) Like "TN*" Then
        Cells(i, 37).Value = "NAF"

        ElseIf Cells(i, 37) Like "MA*" Then
        Cells(i, 37).Value = "NAF"

        Else: Cells(i, 37).Value = "OTHER"

        End If
Next

Bon w-k.

Rechercher des sujets similaires à "traduction formules vvba"