Affichage du résultat d'un calcul dans Msgbox

  • Initiateur de la discussion Fab117
  • Date de début
F

Fab117

Guest
Bonjour,
Durant l'excécution de ma macro, il doit faire la somme des cellules D4:I9. Ensuite, je souhaiterais qu'il m'affiche le résultats dans une boite de dialogue.
J'ai essayé :
Dim Bonsnumeros As Integer
Bonsnumeros = "=SUM(R[-12]C:R[-8]C[6])"
MsgBox "Nombre de bons numéros :" & Bonsnumeros, 0, "Résultats"
Mais dans la boite de dialogue, il m'incrit :"Nombre de bons numéros : =SUM(R[-12]C:R[-8]C[6])"
Quelqu'un a-t-il une solution ?
Merci
 
@

@Christophe@

Guest
Bonjour,

Moi je te conseille de bosser comme ceci:

Dim Bonsnumeros As Integer

Bonsnumeros = WorksheetFunction.Sum(Range("A1:B1"))
MsgBox "Nombre de bons numéros :" & Bonsnumeros, 0, "Résultats"


Bonne journée

@Christophe@
 

Lucie44

XLDnaute Nouveau
bonjour,
J'ai aujourd'hui un problème similaire et je n'arrive pas à trouver la solution. Ma formule fonctionne correctement lorsque je veux le résultat dans une cellule or là je la voudrais dans une boite de dialogue pour être sure que le résultat correspondent bien et donc poser la question avec une réponse par oui ou non. Mais j'ai un message d'erreur qui me dit :
Erreur de compilation, variable non défini en me surlignant le 2nd somme de la formule

Pourriez vous m'aider s'il vous plait

Sub formule()
Dim TotalVrt As Integer


TotalVrt = WorksheetFunction.somme.si("A2:A150000", 6, "H2:H150000") - somme.si("A2:A150000", 7, "H2:H150000")
MsgBox "Le montant de votre virement est il de :" & TotalVrt, 0, resultat

End Sub
 

Lucie44

XLDnaute Nouveau
bonjour,
J'ai aujourd'hui un problème similaire et je n'arrive pas à trouver la solution. Ma formule fonctionne correctement lorsque je veux le résultat dans une cellule or là je la voudrais dans une boite de dialogue pour être sure que le résultat correspondent bien et donc poser la question avec une réponse par oui ou non. Mais j'ai un message d'erreur qui me dit :
Erreur de compilation, variable non défini en me surlignant le 2nd somme de la formule

Pourriez vous m'aider s'il vous plait

Sub formule()
Dim TotalVrt As Integer


TotalVrt = WorksheetFunction.somme.si("A2:A150000", 6, "H2:H150000") - somme.si("A2:A150000", 7, "H2:H150000")
MsgBox "Le montant de votre virement est il de :" & TotalVrt, 0, resultat

End Sub
Je réponds à mon propre message pour vous indiquer que j'ai trouvé une partie de la solution.
Voici la formule qui fonctionne correctement. Maintenant je voudrais un résultat avec 2 décimale, est possible (je pense que oui ;-)) mais comment???
Et je voudrais un choix de réponse Oui et Non pour continuer dans le processus
Merci de m'aider un peu si le coeur vous en dit


TotalVrt = WorksheetFunction.SumIf(Range("A2:A150000"), 6, Range("H2:H150000")) - WorksheetFunction.SumIf(Range("A2:A150000"), 7, Range("H2:H150000"))
MsgBox "Le montant de votre virement est il de :" & TotalVrt
 

Dranreb

XLDnaute Barbatruc
Bonjour.
VB:
MsgBox "Le montant de votre virement est de :" & Format(TotalVrt, "0,00 €")
Je n'avais pas tout lu, c'est plutôt :
VB:
If MsgBox("Le montant de votre virement est-il de :" & Format(TotalVrt, "0,00 €"), _
   vbYesNo, "Confirmation") = vbYes Then
suivi des instructions à effectuer en cas de réponse Oui.
 

Lucie44

XLDnaute Nouveau
J'ai réussi a avoir 2 décimales mais j'ai un doute sur le fiabilité, car quand je fait la formule sur la page j'ai un résultat de 7446.94 or dans ma boite de dialogue j'ai 7447.00

Sub formule()
Dim TotalVrt As Integer


TotalVrt = WorksheetFunction.SumIf(Range("A2:A150000"), 6, Range("H2:H150000")) - WorksheetFunction.SumIf(Range("A2:A150000"), 7, Range("H2:H150000"))
TotalVrt = Format(TotalVrt, "#,##0.00")

MsgBox Format("le montant de votre virement est il de : " & Format(TotalVrt, "#,##0.00"))



End Sub
 

Lucie44

XLDnaute Nouveau
Bonjour.
VB:
MsgBox "Le montant de votre virement est de :" & Format(TotalVrt, "0,00 €")
Je n'avais pas tout lu, c'est plutôt :
VB:
If MsgBox("Le montant de votre virement est-il de :" & Format(TotalVrt, "0,00 €"), _
   vbYesNo, "Confirmation") = vbYes Then
suivi des instructions à effectuer en cas de réponse Oui.
Merci pour votre retour j'ai bien le signe € qui s'affiche mais pas de décimales.
j'ai éssayé de changer les montants pour être sur que le résultats ai des décimal et toujours rien dans la boite de dialogue
 

Lucie44

XLDnaute Nouveau
Le type de donnée Integer ne peut stocker que des entiers compris entre -32767 et 32767.
Une espression As Double y est arrondie si on l'y affecte.
Vous voulez dire:
Dim TotalVrt As Double


TotalVrt = WorksheetFunction.SumIf(Range("A2:A150000"), 6, Range("H2:H150000")) - WorksheetFunction.SumIf(Range("A2:A150000"), 7, Range("H2:H150000"))
TotalVrt = Format(TotalVrt, "#,##0.00")

MsgBox ("Le montant de votre virement est-il de :" & Format(TotalVrt, "0,00 €"))


Car le résultat reste le même
 

Dranreb

XLDnaute Barbatruc
J'ai dit une ânerie en fait: pour produire la virgule décimale spécifiez un point. La virgule désigne le séparateur de milliers.
VB:
MsgBox ("Le montant de votre virement est-il de :" & Format(TotalVrt, "0.00 €"))
Par ailleurs cette instruction n'affiche pas les boutons 'Oui'/'Non' ni ne récupère la réponse.
 

Lucie44

XLDnaute Nouveau
J'ai dit une ânerie en fait: pour produire la virgule décimale spécifiez un point. La virgule désigne le séparateur de milliers.
VB:
MsgBox ("Le montant de votre virement est-il de :" & Format(TotalVrt, "0.00 €"))
Par ailleurs cette instruction n'affiche pas les boutons 'Oui'/'Non' ni ne récupère la réponse.
Merci beaucoup du coup ca marche ;-)
Merci pour tout, la solution mais aussi votre rapidité
 

Discussions similaires

Réponses
22
Affichages
873

Statistiques des forums

Discussions
312 448
Messages
2 088 500
Membres
103 871
dernier inscrit
julienleburton