Manipulation des formules EXCEL 2000 via VB. Une bizarrerie à résoudre
plg0037
Messages postés3Date d'inscriptionmercredi 9 février 2011StatutMembreDernière intervention21 février 2012
-
11 févr. 2011 à 11:34
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 2013
-
14 févr. 2011 à 15:04
Une bizarrerie, résolue mais non élucidée:
Sous VB Excel 2000 la programmation de formule dans une cellule Excel pose parfois qq problèmes. Par exemple le programme ci dessous:
Sub essai7()
Dim formule, code As String
code = "A"
formule = "=SOMME.SI(F2:F92;""" & code & """;G2:G92)-SOMME.SI(F2:F92;""" & code & """;J2:J92)"
Worksheets("Février").Range("J108").Formula = formule
MsgBox Worksheets("Février").Range("J108").Formula
End Sub
plante à l'exécution.(Error 1004)
Par contre le même programme légèrement modifié ci-dessous:
Sub essai7()
Dim formule, code As String
code = "A"
formule = "=SOMME.SI(F2:F92;""" & code & """;G2:G92)-SOMME.SI(F2:F92;""" & code & """;J2:J92)"
Worksheets("Février").Range("J108").FormulaLocal = formule
MsgBox Worksheets("Février").Range("J108").Formula
End Sub
fonctionne correctement.
Trouvez l'erreur!
Ancien développeur en retraite
A voir également:
Manipulation des formules EXCEL 2000 via VB. Une bizarrerie à résoudre
plg0037
Messages postés3Date d'inscriptionmercredi 9 février 2011StatutMembreDernière intervention21 février 2012 11 févr. 2011 à 12:08
Du même auteur avec présentation + soignée. Pardon je n'avais pas remarqué les subtilités propres à ce forum.
Sub essai7()
Dim formule, code As String
code = "A"
formule = "=SOMME.SI(F2:F92;""" & code & """;G2:G92)-SOMME.SI(F2:F92;""" & code & """;J2:J92)"
Worksheets("Février").Range("J108").Formula = formule
MsgBox Worksheets("Février").Range("J108").Formula
End Sub
Sub essai7()
Dim formule, code As String
code = "A"
formule = "=SOMME.SI(F2:F92;""" & code & """;G2:G92)-SOMME.SI(F2:F92;""" & code & """;J2:J92)"
Worksheets("Février").Range("J108").FormulaLocal = formule
MsgBox Worksheets("Février").Range("J108").Formula
End Sub
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 14 févr. 2011 à 15:04
Salut,
Le VBA intègre une aide qui répond très bien à ce type de questionnement !
extrait de l'aide a propos de "Formula"
Cette propriété renvoie ou définit la formule de l'objet en notation de style A1 et dans le langage de la macro
Ici il faut comprendre le langage natif qui est Anglais US
[u]
extrait de l'aide a propos de "FormulaLocal"/u [i]
Cette propriété renvoie ou définit la formule de l'objet, en utilisant les références du style A1 dans le langage de l'utilisateur/i
Ici il faut comprendre le langage d’installation de ton excel.
En résumé "Formula" ne comprend que les formules écrites avec le nom et la structure des fonctions en natif, soit l'anglais
dans ton cas la formule aurait fonctionnée si elle avait été ecrite comme suit :