VBA Dispatch d'onglet + envoyer par mail les fichiers

Bonjour,

J'aurai besoin d'aide car je n'arrive pas assembler plusieurs macro VBA.

J'ai dans mon dossier personnel vba, une macro qui dispatch des onglets dans un fichier.

Et ensuite, j'ai un fichier avec une macro qui envoi en automatique mes fichiers dans un dossier (sans que j'ouvre les fichiers).

Je voudrais sur ce fichier de macro qui envoi en automatique, pouvoir dispatcher mes onglets sans ouvrir les fichiers puis qu'ils soient envoyés.

Merci pour votre aide !

Sub DispatchOngletaClasseur()

Dim resultat As String

resultat = InputBox("Bonjour, veuillez renseigner le titre à ajouter derrière le nom du magasin.", "titre") 'La variable reçoit la valeur entrée dans l'InputBox

If resultat <> "" Then 'Si la valeur est différente de "" on affiche le résultat

MsgBox resultat

End If

MsgBox "Merci !"

For Each feuille In ActiveWorkbook.Sheets

feuille.Copy

With ActiveWorkbook

.Title = feuille.Name

.Subject = feuille.Name

.SaveAs Filename:=feuille.Name + resultat + ".xlsx"

End With

ActiveWindow.Close

Next

MsgBox "Les fichiers ont été enregistrés dans votre dossier principal. Bonne journée ! "

End Sub

Sub SuppLigne()

'

' Macro2 Macro

' Macro enregistrée le 25/05/2012 par XXXXX

'

'

Windows("Fichier pour envoi TDB par mail.xls").Activate

Sheets("BASE").Select

Rows("16:16").Select

Selection.Copy

Rows("15:15").Select

ActiveSheet.Paste

Application.CutCopyMode = False

Rows("16:16").Select

Selection.Delete Shift:=xlUp

Application.Run ("Envoi")

End Sub

Sub Test()

'

' SuppLigne Macro

' Macro enregistrée le 18/05/2012 par XXXXX

'

'For i = 1 To 192

Application.Wait (Now + TimeValue("00:00:01"))

Application.Run "Send_Mails"

Application.Run "SuppLigne"

' Next

End Sub

Sub Send_Mails()

' envoie de message via outlook

Dim appOutLook As Object

Dim MailOutLook As Object

Dim Fichier As String

Dim rep_fic As String

rep_fic = [FICHE] '"C:\Users\anthony\Documents\STATISTIQUES\TDB FDM\2018\2018-10\Vide TDB 2018-10.xls"

Set appOutLook = CreateObject("Outlook.Application")

Set MailOutLook = appOutLook.CreateItem(olMailItem)

With MailOutLook

'où se trouve l'adresse du destinataire

.To = Worksheets("BASE").Range("C11")

.Subject = "Fichier Tableau de bord - Mois & Cumul"

'.Body = "Bonjour, Ce message est envoyé par un processus automatique, veuillez ne pas y répondre. Cordialement"

.Body = "Bonjour, " & vbCrLf & vbCrLf & "Veuillez trouver en pièce jointe le tableau de bord mois et cumul. " & vbCrLf & vbCrLf & "Cordialement," & vbCrLf & vbCrLf & "Contrôle de Gestion Réseau."

'Seulement si tu veux joindre un fichier

'If rep_fic <> "" Then

.Attachments.Add rep_fic

' End If

.Display

' pour envoie automatique

.Send

End With

Set MailOutLook = Nothing

Set appOutLook = Nothing

Set VariableObjet = Nothing

End Sub

Bonjour Anthony,

Pour avoir plus de chance d'obtenir une aide sur ce forum, je te recommande de fournir un extrait de ton classeur.

J'ai récupéré ton code et, à la compilation j'obtiens quelques erreurs dont j'ai pu corriger certaines mais pour d'autres, le classeur dans son ensemble serait utile.

Bonjour Gérald,

Voici le fichier en PJ, j'ai enlevé ma base d'adresse mail.

Les deux macros en séparés fonctionnent très bien, j'ai du mal a les assembler pour gagner encore plus de temps

Merci

Dans l'exemple fourni, je trouve pas la macro "DispatchOngletaClasseur()"

Est-ce à dire qu'elle se trouve dans un second classeur (contenant les feuilles à envoyer) ?

Dans ce cas, l'enchainement des macros doit se réaliser d'un classeur vers l'autre.

Est-ce bien ça?

oui la macro est dans mon classeur personnel vba.

je suis donc obligé d'ouvrir mes fichiers à dispatcher, les enregistrer dans un dossier, puis lancer la macro qui est dans le fichier excel que j'ai joint.

Ce que j'aimerai, c'est d'avoir dans le fichier de la PJ, ma macro de disptach qui vient séparer les onglets d'un fichier nommé sans l'ouvrir (exemple TDB 2019-01).

Par exemple, mon fichier récurrent tous les mois s'appelle TDB 2019-01, je suis obligé de l'ouvrir et dispatcher tous les onglets via la macro de dispatch.

Et ensuite, je viens ouvrir le fichier d'envoi des fichiers et je lance la macro qui vient chercher directement la PJ là ou je l'ai enregistrer et qui m'envoi le mail en automatique.

D'accord,

En ce cas, pourquoi ne pas copier les macros qui font les envois dans le classeur qui fait le "Dispatch"?

Oui mais il va me dispatcher mon fichier d'envoi.

Je peux rajouter la macro de dispatch sur la macro d'envoi, mais il faut que j'arrive à corriger la macro de dispatch pour lui dire que je veux dispatcher un fichier en particulier avec le chemin du dossier où se trouve le fichier.

Rechercher des sujets similaires à "vba dispatch onglet envoyer mail fichiers"