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

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 233
Membres
103 161
dernier inscrit
Rogombe bryan