web-dev-qa-db-fra.com

Écrire une formule dans une cellule Excel à l'aide de VBA

J'essaie d'utiliser VBA pour écrire une formule dans une cellule dans Excel. Mon problème est que lorsque j'utilise un point-virgule (;) dans ma formule, j'obtiens une erreur:

Run-time error 1004

Ma macro est la suivante:

Sub Jours_ouvres()
    Dim Feuille_Document As String
    Feuille_Document = "DOCUMENT"        
    Application.Worksheets(Feuille_Document).Range("F2").Formula = "=SUM(D2;E2)"    
End Sub
20
Matthieu

Vous pouvez essayer d'utiliser la propriété FormulaLocal au lieu de Formula. Ensuite, le point-virgule devrait fonctionner.

20
Mikko

Le caractère correct à utiliser dans ce cas est un deux-points (:), pas un point-virgule (;).

5
e.James

Treb, le problème de Matthieu a été causé par l'utilisation d'Excel dans une langue non anglaise. Dans de nombreuses versions linguistiques ";" est le bon séparateur. Même les fonctions sont traduites (SUM peut être SOMMA, SUMME ou autre selon la langue dans laquelle vous travaillez). Excel comprendra généralement ces différences et si un classeur créé en français est ouvert par un Brésilien, il n'aura normalement aucun problème. Mais VBA ne parle que l'anglais américain, donc pour ceux d'entre nous qui travaillent dans un (ou plusieurs) langages étrangers, cela peut être un casse-tête. Vous et CharlesB avez tous deux donné des réponses qui auraient été correctes pour un utilisateur américain, mais Mikko a compris le VRAI problème et a donné la bonne réponse (qui était aussi la bonne pour moi aussi - je suis un britannique travaillant en Italie pour un germanophone). entreprise).

5
DiGiMac

Le caractère correct (virgule ou deux-points) dépend de l'objectif.

Virgule (,) résumera uniquement les deux cellules en question.

Colon (:) additionnera toutes les cellules de la plage avec des coins définis par ces deux cellules.

5
KnomDeGuerre