Ajouter une somme d'une pièce jointe dans le corps d'un mail

Bonjour,

dans le fichier ci-joint la macro génère un fichier provisoire à envoyer par outlook, par client.

La macro se décompose en deux modules :

- lancement --> création du fichier provisoire

- Mail --> envoi du fichier

Dans le corps du mail (Module Mail) je souhaiterait ajouter aux ligne de texte suivantes :

"Pour information, le montant global de votre situation s'élève à XX1 euros et se décompose comme suit :" où XX1 est le total de la colonne I du fichier provisoire en PJ du mail
"- Le montant des factures échues est de XX2 euros" & vbCrLf & _ où XX2 est la somme des valeurs en colonne I si la colonne T = ECHUE
"- Le montant des factures non échues est de XX3 euros" & vbCrLf & vbCrLf & _ où XX3 est la somme des valeurs en colonne I si la T = NON ECHU

On aurait donc XX2 + XX3 = XX1

Mais je pense que je ne dois pas l'ajouter au bon endroit dans la macro car cela ne fonctionne pas :/

Par avance merci pour votre aide !!!

Bonjour,

Ajoutez ceci au debut de la fonction Send_Fichier

    Dim rngECHU As Range
    With ThisWorkbook.Worksheets("Temp").Range("T2")
      Set rngECHU = Range(.Cells, .End(xlDown))
    End With
    Dim rngSUM As Range
    With ThisWorkbook.Worksheets("Temp").Range("I2")
      Set rngSUM = Range(.Cells, .End(xlDown))
    End With

    Dim XX1 As Double
    XX1 = WorksheetFunction.Sum(rngSUM)
    Dim XX2 As Double
    XX2 = WorksheetFunction.SumIf(rngECHU, "ECHU", rngSUM)
    Dim XX3 As Double
    XX3 = XX1 - XX2

Pour l'intégration dans le corps de texte je vous laisse voir, les valeurs sont dans XX1,XX2,XX3. Vous pouvez les ajouter avec & comme vous l'avez fait pour les retours à la ligne.

Super merci beaucoup ! A tout hasard, existe t-il une fonction pour mettre en forme le chiffre avec un séparateur de milliers et deux chiffres après la virgule?

Re,

Oui bien sur, comme avec le formatage des nombres dans Excel (même syntaxe), vous pouvez utiliser Format function (Visual Basic for Applications) | Microsoft Learn

Pour obtenir le résultat demandé, voici comment faire

"blablabla " & Format(XX1, "# ###,00") & " blablabla"

Bonjour saboh12617, Delloue,

Sauf erreur la virgule dans la fonction Format correspond au séparateur des milliers ...

Format(XX1, "# ##0.00") pour la partie en français et Replace(Format(XX1, "# ##0.00"), ",", ".") pour la partie en anglais.

Cdlt,

Cylfo

Absolument Cylfo !

Et effectivement, comme relevé, les formats dépendent de la langue du système d'exploitation. Personnellement, j'obtiens le résultat demandé avec ta première formule.

Merci pour la correction.

Bonjour Cylfo,

je confirme ! Et merci beaucoup à saboh12617, je vais toper le topic en résolu et garder précieusement cette partie de code dans mon book VBA ! :D

Belle fin de journée à tous !

Rechercher des sujets similaires à "ajouter somme piece jointe corps mail"