Ecrire une formule dans une cellule Excel en utilisant VBA

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

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
demandé sur 0m3r 2008-12-04 19:43:50

5 réponses

vous pouvez essayer D'utiliser la propriété FormulaLocal au lieu de Formula. Alors le point-virgule devrait fonctionner.

20
répondu 2008-12-09 02:54:31

le caractère correct à utiliser dans ce cas est un colon entier (:), pas un point-virgule (;).

5
répondu e.James 2012-03-16 09:24:36

le caractère correct (virgule ou deux points) dépend du but.

Virgule (,) somme que les deux cellules en question.

Côlon (:) va additionner toutes les cellules dans la gamme avec des coins définis par ces deux cellules.

5
répondu KnomDeGuerre 2012-03-16 09:24:53

Treb, le problème de Matthieu a été causé par L'utilisation D'Excel dans une langue autre que l'anglais. Dans de nombreuses versions linguistiques ";" est le séparateur correct. Même les fonctions sont traduites (la somme peut être SOMMA, SUMME ou n'importe quoi selon la langue dans laquelle vous travaillez). Excel comprendra généralement ces différences et si un cahier français est ouvert par un Brésilien, il n'y aura normalement aucun problème. Mais VBA ne parle que L'anglais US donc pour ceux d'entre nous qui travaillent dans un (ou plusieurs) étranger langues, cela peut être un mal de tête. Vous et CharlesB avez tous les deux donné des réponses qui auraient été OK pour un utilisateur américain, mais Mikko comprendre le vrai problème et a donné la bonne réponse (qui était également la bonne pour moi aussi - je suis un britannique travaillant en Italie pour une entreprise de langue allemande).

5
répondu DiGiMac 2013-07-09 13:38:36

je ne sais pas pourquoi, mais si vous utilisez

(...)Formula = "=SUM(D2,E2)"
,' au lieu de ';'), il fonctionne.

si vous passez par votre sub dans l'éditeur de script VB (F8), vous pouvez ajouter Range("F2").Formula de la fenêtre d'observation et voir ce que le formulaire ressemble à de VB point de vue. Il semble que le formulaire montré dans Excel lui-même est parfois différent du formulaire que VB voit...

-1
répondu Treb 2008-12-04 16:58:32