Parcourir les onglets pour envoyer des mails automatique

Bonjours à tous,

j'ai fais une macro qui envoi la page active par mail et qui fonctionne très bien

chaque onglets correspond à un fournisseur diffèrent.

je ne peux pas exécuter manuellement la macro (aller d'onglet en onglet) pour envoyer le mail car j'ai trop d'onglets et pas assez de temps.

est-il possible d'avoir une macro qui parcourt chaque onglet automatiquement et qui active la macro d'envoi de mail a chaque fois.

il faudrait aussi que les 5 premières pages ne s'envoient pas car il s'agit uniquement de données pour créer les onglets fournisseurs

voila un fichier test pour vous aider a comprendre (ne pas envoyer les page "Macro", "data", "extrait", "adresses", "msg mail" mais toute les autres)

n'hésitez pas à me demander si vous avez des questions,

jawst

27test-macro.xlsm (79.93 Ko)

re-bonjour,

une proposition (non testée)

Sub mail_pdf()
    For Each sh In Worksheets
        Select Case sh.Name
        Case "macro", "DATA", "extrait", "adresses", "msg mail"
        Case Else
            sh.Activate
            ActiveSheet.Copy
            Range("E:H").EntireColumn.Hidden = True
            ActiveSheet.SaveAs Filename:="C:\Users\cccuia\Documents\poubelle\" & Range("B2").Value
            ' Nécessite la référence : Microsoft Outlook 1x Object Library
            Dim olApp As Outlook.Application
            Dim olMail As MailItem
            Dim CurFile As String
            Set olApp = New Outlook.Application
            Set olMail = olApp.CreateItem(olMailItem)
            CurFile = ThisWorkbook.Path & "\" & Range("B2") & ".pdf"
            ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=CurFile, _
                                            Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, _
                                            OpenAfterPublish:=False
            With olMail
                .To = Range("E2")
                '.CC = "name2@domain2.com"
                .Subject = "sujet"
                .Body = "Vous trouverez ci-joint le fichier PDF ..."
                .Attachments.Add CurFile
                .Display
                '.Send
            End With

            ' Effacer les variables objets
            Set olMail = Nothing
            Set olApp = Nothing

            ActiveWorkbook.Close
            Kill "C:\Users\cccuia\Documents\poubelle\*.xls"
        End Select
    Next
End Sub

re merci h2os4 ^^

ca marche super bien

puis-je abuser de ton savoir et te demander s'il est possible de supprimer le panneau de demande de confirmation d'envoi (en PJ)

Jawst

outlook

bonjour,

as-tu regardé l'aide outlook ? comme suggéré dans le message qui s'affiche.

oui mais ils disent que c'est à cause de la sécurité et qu'il faut la désactiver ou un truc comme ca. je craint que dans mon ca s ca ne soit pas possible et je ne peux pas non plus installer un yes clic

la solution est ne pas envoyer le message directement, de tous les laisser charger et de spam clic "envoyer"

Rechercher des sujets similaires à "parcourir onglets envoyer mails automatique"