Vendredi, Mars 01 2019
  0 Réponses
  3.2K visites
0
Votes
annuler
Bonjour,
Je suis nouveau sur VBA. J'ai écrit un code pour envoyer un e-mail s'il y a un changement de valeur de cellule dans la colonne F, et le code fonctionne très bien. Mais je veux m'assurer que le classeur est enregistré avant d'envoyer l'e-mail. Le corps du texte de l'e-mail doit inclure la valeur de la cellule de référence, qui est la valeur de la colonne A de la ligne de valeur modifiée. Veuillez ne pas utiliser msg, cela ne fonctionnera pas avec le classeur. Le classeur a un formulaire et il chargera la valeur d'entrée dans les cellules désignées. Le code fonctionne bien avec le formulaire. Mais si quelqu'un entre dans la feuille et met à jour manuellement la valeur, l'e-mail sera envoyé aux utilisateurs, ce que je ne veux pas tant que le fichier n'est pas enregistré. S'il vous plaît aidez-moi! Merci d'avance.

Private Sub Worksheet_Change (Cible ByVal en tant que plage)
Dim s1, s2, s3, s4, s5, s6 selon la plage
Définir s1 = Plage("F1310:F1334")
Définir s2 = Plage("F1426:F1450")
Définir s3 = Plage("F1339:F1363")
Définir s4 = Plage("F1455:F1479")
Définir s5 = Plage("F1368:F1392")
Définir s6 = Plage("F1397:F1421")
On Error Resume Next
Si Target.Cells.Count > 1 Alors Quittez Sub
'trouver la valeur modifiée dans la colonne F
Si l'intersection (cible, union (s1, s2, s3, s4, s5, s6)) n'est rien, alors quittez Sub
Si IsNumeric(Target.Value) et Target.Value <> "" Alors
Dim xOutApp en tant qu'objet
Estomper xOutMail en tant qu'objet
Estomper xMailBody en tant que chaîne
Dim xMailText en tant que chaîne
Set xOutApp = CreateObject("Outlook.Application")
Définir xOutMail = xOutApp.CreateItem(0)
'valeur d'index de la colonne A de la ligne dont la valeur a été remplacée par incluse dans le corps du message
xMailText = Target.Offset(, -5).Value
xMailBody = "Bonjour" & vbNewLine & vbNewLine & _
« Facture reçue pour » & xMailText & vbNewLine & vbNewLine & _
"Merci" & vbNewLine & vbNewLine & _
"Monsieur J"
On Error Resume Next
Avec xOutMail
.À = ""
.CC = ""
.BCC = ""
.Subject = "Facture reçue"
.Corps = xMailBody
.Envoyer
Terminer par
En cas d'erreur GoTo 0
Définir xOutMail = Rien
Définir xOutApp = Rien
Si fin
End Sub
Il n'y a pas encore de réponse faites pour ce poste.