Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 sélection et mise en page avant envoie mail

julie44

XLDnaute Nouveau
bonjour
j' ai modifié un code vba pour mon projet

j'aimerais réussir a ne sélectionner que les lignes remplis de la première colonne(attention pour le moment j'ai retire les formules du tableau mais en prendre en compte
et que la mise en page avant l'envoie par email se termine a la colonne J

dans un second temps si possible:
ajouter une signature sur le bas du mail exemple julie h***** secretaire medicale pole nord
ajouter les lignes M3,M4 et M5 comme texte corp du message avant le tableau

voici mon code actuel
Sub envoyermail()
Dim Mafeuille As Worksheet
Dim NbLigne As Long
Dim Plage As Range
ActiveWorkbook.EnvelopeVisible = True
Set Mafeuille = ThisWorkbook.Sheets("Feuil1")
Application.ScreenUpdating = False
NbLigne = 3267
NbLigne = Mafeuille.Range("A" & Application.Rows.Count).End(xlUp).Row
Set Plage = Range("A1:J" & NbLigne)
With Range("A1:J" & NbLigne).Parent.MailEnvelope.Item
.To = Mafeuille.Range("M1").Value & Mafeuille.Range("M2").Value
.Subject = Mafeuille.Range("L2").Value
.Display
.send
End With
MsgBox "votre mail a été envoyé", vbInformation + vbOKOnly, "confirmation d'envoi"
Range("A4:J34" & NbLigne).ClearContents
Application.ScreenUpdating = True
End Sub

merci pour votre aide les amis
Julie et Marc
 

Pièces jointes

  • Classeur1.xlsm
    25.4 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Julie, et bienvenue sur XLD,
Pour le premier point, regardez ce fil :
Il ressemble étrangement au votre, y compris dans le code.
La solution pourrait être du genre :
VB:
NbLigne = Mafeuille.Application.CountIf([Tableau1], "><")
Mafeuille.Range("A1:J" & NbLigne + 4).Select
 

julie44

XLDnaute Nouveau
bonjour sylvanu
merci d'avoir regarder mon post
est ce que tu l'a teste ce code il ne fonctionne pas chez moi?
j'ai survolé le post que tu as dit
merci
j'essaye encore de regarder
julie

Sub envoyermail()
Dim Mafeuille As Worksheet
Dim NbLigne As Long
Dim Plage As Range
ActiveWorkbook.EnvelopeVisible = True
Set Mafeuille = ThisWorkbook.Sheets("Feuil1")
Application.ScreenUpdating = False
NbLigne = 3267
NbLigne = Mafeuille.Range("A" & Application.Rows.Count).End(xlUp).Row
Set Plage = Range("A1:J" & NbLigne)
With Range("A1:J" & NbLigne).Parent.MailEnvelope.Item
.To = Mafeuille.Range("M1").Value & Mafeuille.Range("M2").Value
.Subject = Mafeuille.Range("L2").Value
.Display
.send
End With
MsgBox "votre mail a été envoyé", vbInformation + vbOKOnly, "confirmation d'envoi"
Range("A4:J34" & NbLigne).ClearContents
Application.ScreenUpdating = True
End Sub

comment les intégrer dans mon code je suis perdue
NbLigne = Mafeuille.Range("A" & Application.Rows.Count).End(xlUp).Row
NbLigne = Mafeuille.Application.CountIf([Tableau1], "><")
 

Pièces jointes

  • Classeur1.xlsm
    25.4 KB · Affichages: 1
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Il faut adapter à votre contexte :
VB:
Sub envoyermail()
Dim Mafeuille As Worksheet, NbLigne%, Plage As Range
NbLigne = Sheets("Feuil1").Application.CountIf([Tableau1[Type Pay/Grat]], "><")
Set Plage = Sheets("Feuil1").Range("A3:J" & NbLigne + 3)
Plage.Select
End Sub
Je rappelle que c'est juste pour le point 1.
 

Pièces jointes

  • Classeur1 (3).xlsm
    23.1 KB · Affichages: 4

julie44

XLDnaute Nouveau
ok merci c'est parfait
je vais ajouter le reste du code pour l'envoie d'email
il me reste a voir pour ajouter les lignes M3,M4 et M5 comme texte corp du message avant le tableau
je ne sais pas si c est
.body = "nnnn"
ou autre chose
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…