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
5 réponses
le caractère correct à utiliser dans ce cas est un colon entier (:
), pas un point-virgule (;
).
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.
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).
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...