XL 2019 Renvoi d'erreur sur une somme créée en VBA

  • Initiateur de la discussion Initiateur de la discussion R.Noel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

R.Noel

XLDnaute Nouveau
Bonjour à la communauté,

J'ai créé en VBA un code qui me créé une somme sur une plage dynamiquement créée:
VB:
    Dim ligne_bas As Integer
    cellule_bas = 2
    Dim cellule_haut As Integer
    cellule_haut = 2
    For j = 2 To nbre_lignes
        If Cells(j, 20) <> "" Then
            cellule_haut = j
            Cells(cellule_haut, 23).Formula = "=SOMME(V" & cellule_bas & ":V" & cellule_haut & ")"
            cellule_bas = j + 1
            cellule_haut = 0
        End If
    Next

On peut voir sur la capture que la formule générée est correcte, mais elle renvoie une erreur #VALEUR.

Or j'ai fait le teste de copier/coller cette formule dans la cellule juste à droite et là, elle fonctionne.
Capture.PNG
Capture2.PNG


La seule différence est que, dans la formule générée, le mot "somme" est en minuscules (alors que dans mon code il est en majuscules).

Pouvez-vous m'aider s'il vous plaît ?

PS: excusez si je ne réponds pas tout de suite, je suis un peu surchargé.

Merci d'avance !
 
Solution
Bonjour R.Noel, jean marie,

essaye :

Cells(cellule_haut, 23).Formula = "=SUM(V" & cellule_bas & ":V" & cellule_haut & ")"

si ça ne marche pas, je te propose d'utiliser Application.Sum()

soan

Salut Soan,

Bingo: il fallait écrire "SUM" et non "SOMME": ça fonctionne.

J'ai séché 2 heures en essayant toutes les combines mais je n'ai pas imaginé que le string "SUM" se traduirait automatiquement en "SOMME".

Grâce à vous, me voilà un peu moins novice en VBA.

Mille mercis, et bonne fin de journée 🙂 🙂

PS: je n'ai pas trouvé le moyen de mettre "Résolu".
Bonjour R.Noel
il aurait été super que tu joignes un fichier de quelques Ligne , surtout qu'il n'y a rien de Confidentielle !
jean marie
Bonjour !

Merci de ta réponse 🙂 Mais justement, si: c'est confidentiel: c'est un gros fichier avec des données salariales nominatives.
Or si je l'édite, je risque d'avoir encore plus d'erreurs ...

Mais s'il n'est vraiment pas possible de diagnostiquer ainsi, j'essayerai de trouver une autre solution.

Merci Jean-Marie.
 
Bonjour R.Noel, jean marie,

essaye :

Cells(cellule_haut, 23).Formula = "=SUM(V" & cellule_bas & ":V" & cellule_haut & ")"

si ça ne marche pas, je te propose d'utiliser Application.Sum()

soan

Salut Soan,

Bingo: il fallait écrire "SUM" et non "SOMME": ça fonctionne.

J'ai séché 2 heures en essayant toutes les combines mais je n'ai pas imaginé que le string "SUM" se traduirait automatiquement en "SOMME".

Grâce à vous, me voilà un peu moins novice en VBA.

Mille mercis, et bonne fin de journée 🙂 🙂

PS: je n'ai pas trouvé le moyen de mettre "Résolu".
 
Re
ce que j'ai bidouillé
VB:
Dim ligne_bas As Integer
    Dim cellule_haut As Integer
    cellule_haut = 2
    For j = 2 To 10 'j'ai mis 10 
        If Cells(j, 1) <> "" Then
        Cells(j, 2).Formula = "=SUM(A" & cellule_haut & ":A" & j & ")"   '  la colonne est A 
        End If
    Next
oups c'était résolu Lol
jean marie
 
Re
ce que j'ai bidouillé
VB:
Dim ligne_bas As Integer
    Dim cellule_haut As Integer
    cellule_haut = 2
    For j = 2 To 10
        If Cells(j, 1) <> "" Then
        Cells(j, 2).Formula = "=SUM(A" & cellule_haut & ":A" & j & ")"        
        End If
    Next
ca aussi ca marche je crois
Code:
 Cells(j, 2).FormulaLocal = "=Somme(A" & cellule_haut & ":A" & j & ")"
jean marie
 
Re
ce que j'ai bidouillé
VB:
Dim ligne_bas As Integer
    Dim cellule_haut As Integer
    cellule_haut = 2
    For j = 2 To 10
        If Cells(j, 1) <> "" Then
        Cells(j, 2).Formula = "=SUM(A" & cellule_haut & ":A" & j & ")"       
        End If
    Next
ca aussi ca marche je crois
Code:
 Cells(j, 2).FormulaLocal = "=Somme(A" & cellule_haut & ":A" & j & ")"
jean marie
Je testerai quand même demain ChTI160, juste pour t'apporter une réponse pour ton aide. 🙂
 
Re
ce que j'ai bidouillé
VB:
Dim ligne_bas As Integer
    Dim cellule_haut As Integer
    cellule_haut = 2
    For j = 2 To 10 'j'ai mis 10
        If Cells(j, 1) <> "" Then
        Cells(j, 2).Formula = "=SUM(A" & cellule_haut & ":A" & j & ")"   '  la colonne est A
        End If
    Next
oups c'était résolu Lol
jean marie
Bonjour ChTi160 et Soan,

comme promis hier, j'ai testé la solution de ChTi160 en l'adaptant à mon code, et en définitive, cela m'amène à la solution de Soan. Donc bravo à vous deux.

Merci et à bientôt.

Belle journée à tous.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
45
Réponses
5
Affichages
379
Retour