[VBA EXCEL] aide constuction formule
Résolu/Fermé
Bonjour,
j'aimerais construire une formule de calcul directement dans une macro mais apparemment j'ai un problème de syntaxe , et je ne vois pas ou se situe mon erreur
str = "=ROUND(SUM(" & c1 & LineNumber & ":" & c2 & LineNumber & ")" & ";" & "0)"
en bref je voudrais calculer une somme sans décimales
merci de votre aide
j'aimerais construire une formule de calcul directement dans une macro mais apparemment j'ai un problème de syntaxe , et je ne vois pas ou se situe mon erreur
str = "=ROUND(SUM(" & c1 & LineNumber & ":" & c2 & LineNumber & ")" & ";" & "0)"
en bref je voudrais calculer une somme sans décimales
merci de votre aide
A voir également:
- [VBA EXCEL] aide constuction formule
- Formule excel si et - Guide
- Formule somme excel colonne - Guide
- Formule excel moyenne - Guide
- Excel mise en forme conditionnelle formule - Guide
- Liste déroulante excel - Guide
3 réponses
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 191
22 mai 2008 à 13:21
22 mai 2008 à 13:21
Bonjour,
Ton erreur c'est que tu emploi un mot réservé comme variable
employé par ex: Txt au lieu de str
A+
Ton erreur c'est que tu emploi un mot réservé comme variable
employé par ex: Txt au lieu de str
A+
Utilisateur anonyme
22 mai 2008 à 13:41
22 mai 2008 à 13:41
Bonjour,
1.) Le mot clé [ str ] est un mot réservé puisqu'il s'agit d'une fonction.
2.) Que représente c1 et c2 ?
Voici un exemple type de construction de formule selon ma méthode !
Lupin
1.) Le mot clé [ str ] est un mot réservé puisqu'il s'agit d'une fonction.
2.) Que représente c1 et c2 ?
Voici un exemple type de construction de formule selon ma méthode !
Sub CreerFormule() Dim Formule As String, LineNumber As Long Dim C1 As String, C2 As String C1 = "C" C2 = "D" LineNumber = 5 Range("A1").Select Formule = "=ROUND(SUM(" & C1 & LineNumber & ":" & C2 & LineNumber & ")" & "," & "0)" ActiveCell.Value = Formule Range("A2").Select ActiveCell.Value = "=ROUND(" & "SUM(" & "C5:D5" & ")" & ",0)" End Sub '
Lupin
merci bcp , ça marche , une dernière question je voudrais ajouter le signe pourcentage apres ma formule sans que la formule ne l'interprète :
ex : mon résultat est 40 -> 40%
j'ai fait comme ça mais ça ne marche pas
wrksheet.Cells(LineNumber, Columnnumberaftertable + 1).Value = Formule & "%"
merci de votre aide
ex : mon résultat est 40 -> 40%
j'ai fait comme ça mais ça ne marche pas
wrksheet.Cells(LineNumber, Columnnumberaftertable + 1).Value = Formule & "%"
merci de votre aide
Utilisateur anonyme
22 mai 2008 à 15:28
22 mai 2008 à 15:28
re :
Tu ne peux pas jumeler ce symbole à la formule.
Il faut jumeler le symbole à la valeur de la cellule.
Je ne puis ici te donner toute la nuance entre la méthode :
wrksheet.Cells(LineNumber, Columnnumberaftertable + 1).FormulaR1C1 = Formule
et
wrksheet.Cells(LineNumber, Columnnumberaftertable + 1).Value = Formule
ce qu'il faut retenir est que la méthode [ .Value ] en lecture te donne la valeur
et en écriture peut recevoir une valeur ou une formule.
ceci dit, pour résoudre ton besoin, procède comme suit :
<code>
wrksheet.Cells(LineNumber, Columnnumberaftertable + 1).Value = Formule
wrksheet.Cells(LineNumber, Columnnumberaftertable + 1).Value = _
wrksheet.Cells(LineNumber, Columnnumberaftertable + 1).Value & "%"
<code>
Lupin
Tu ne peux pas jumeler ce symbole à la formule.
Il faut jumeler le symbole à la valeur de la cellule.
Je ne puis ici te donner toute la nuance entre la méthode :
wrksheet.Cells(LineNumber, Columnnumberaftertable + 1).FormulaR1C1 = Formule
et
wrksheet.Cells(LineNumber, Columnnumberaftertable + 1).Value = Formule
ce qu'il faut retenir est que la méthode [ .Value ] en lecture te donne la valeur
et en écriture peut recevoir une valeur ou une formule.
ceci dit, pour résoudre ton besoin, procède comme suit :
<code>
wrksheet.Cells(LineNumber, Columnnumberaftertable + 1).Value = Formule
wrksheet.Cells(LineNumber, Columnnumberaftertable + 1).Value = _
wrksheet.Cells(LineNumber, Columnnumberaftertable + 1).Value & "%"
<code>
Lupin
22 mai 2008 à 13:43
merci de ton aide
22 mai 2008 à 14:06
Même si tu as par hazard réussi à créer une formule avec le mot [ str ]
je suis tout à fait d'accord avec lermite, le mot [ str ] est un mot réservé
et qui plus est, est une fonction :
Voici le contenu de l'aide de Excel :
_________________________________________________________________________________________
Str, fonction
Renvoie une valeur de type Variant (String) représentant un nombre.
Syntaxe
Str(number)
L'argument number peut être toute valeur de type Long contenant une expression numérique valide.
Remarques
Lorsque des nombres sont convertis en chaînes, un espace à gauche est toujours réservé au signe de l'argument number. Si l'argument number est positif, la chaîne renvoyée contient un espace à gauche et le signe plus est implicite.
Utilisez la fonction Format pour convertir des valeurs numériques à formater en dates, heures ou valeurs monétaires, ou dans d'autres formats définis par l'utilisateur. Contrairement à la fonction Str, la fonction Format ne prévoit pas d'espace à gauche pour le signe de l'argument number.
Note La fonction Str ne reconnaît que le point (.) comme séparateur décimal valide. Lorsqu'il est nécessaire d'utiliser un autre séparateur décimal (par exemple, pour des applications internationales), utilisez la fonction CStr pour convertir un nombre en chaîne.
________________________________________________________________________________________
Lupin
22 mai 2008 à 14:07
Txt = "=ROUND(SUM( C " & LineNumber & ": E " & LineNumber & ")" & ";" & "0)"
fait la somme de la colonne C à E sur la ligne LineNumber
EDIT:
C'est pas encore bon..
RE.EDIT
L'erreur était un ; (point virgule) à la place de , (virgule)