Envoi d'un reporting quotidien
Bonjour,
Je bosse dans la logistique et sur mon entrepôt j'ai mis en place d'un outil VBA d'aide à la gestion de stock de consommables (cartons, ect...). Ce programme fut ma toute première programmation VBA
Mon fichier excel contient plusieurs feuilles, dont la feuille 6 appelée "Reporting". Cette feuille indique le niveau de stock actuel pour chaque référence via un tableau.
Mon chef de service souhaiterait avoir ce tableau dans sa boîte mail tous les matins à 9h dès son arrivée.
Donc j'aimerais mettre en place une macro qui enverrait ce fichier d'une manière automatique quotidiennement SANS avoir à appuyer sur un bouton si possible.
Pour cela il faudrait que :
- la feuille soit envoyée en pdf car j'ai essayé sous forme excel et la "#valeur#" est affichée dans les cases comme il n'y a plus les autres feuilles dans l'extraction
- le code prévoit un envoi quotidien (lundi au vendredi)
- et surtout un envoi à 8h50 chaque jour pour mon chef l'ait à 9h.
En espérant avoir été clair.
SVP HEEEEEEEEELP !!
Mon chef est tellement satisfait de mon taff que si j'arrive à lui pondre çà ca serait le MUST
Merci d'avance
bonjour et bienvenu,
merci de fournir un fichier exemple pour test...
Fred
fred2406 a écrit :bonjour et bienvenu,
merci de fournir un fichier exemple pour test...
Fred
Voici mon code de fermeture de mon fichier (quand je clique sur le bouton quitter)
(Je t'envoie le fichier pour test comment ?)
Private Sub CommandButton6_Click()
'Voulez-vous confirmer ?
If MsgBox("Voulez-vous confirmer ?", vbYesNo, "Vous avez demandé la fermeture de l'outil GDS") = vbYes Then
'Sauvegarde du travail
ActiveWorkbook.Save
'Message enregistrement des données
CreateObject("Wscript.shell").Popup "Votre travail a été enregistré", 3, "Enregistrement des données", vbExclamation
'Fermeture du fichier
ActiveWorkbook.Close
End If
End Sub
fred2406 a écrit :Re suivre le tuto pour joindre un fichier :
https://www.youtube.com/watch?v=EbNYLzTz5wM
fred
Merci beaucoup
Christy86 a écrit :fred2406 a écrit :Re suivre le tuto pour joindre un fichier :
https://www.youtube.com/watch?v=EbNYLzTz5wM
fred
Merci beaucoup
Je vais voir ça je suis au bureau
J'espère que c'est bon
Bonjour
Il faut regler excel pour qu'il fasse en sorte que les macros soient activées automatiquement pour ce fichier..
ci joint le fichier a ouvrir et a adapter : (l'ouvrir en maintenant le touche majuscule enfoncée, pour que la macro qui s’exécute a l'ouverture du fichier ne se fasse pas....)
le chemin
nom de fichier source,
adresse mail du destinataire,
éventuellement nom du fichier pdf de sortie,
le sujet du mail
corps de message envoyé
il faut que Outlook soit paramétré sur la machine en question pour permettre l’envoi des mails...
Faire une tache planifiée sous Windows pour ouvrir ce fichier aux jours et heures voulues....
Fonctionnement du fichier :
a l'ouverture :
vérification si le fichier cible est ouvert ou fermé.
si ouvert : impression pdf dans fichier temporaire, puis envoi par mail, puis suppression du fichier pdf temporaire
si fermé : ouverture du fichier cible, impression pdf, envoi par mail, puis fermeture du fichier. suppression du pdf temporaire
a+
Fred
Bonjour Merci bcp Fred pour tout ça je vais essayer de suite.
fred2406 a écrit :Fred, Merci je t'envoie le code que j'ai adapté mais ça ne passe pas
Je t'ai indiqué la ligne qui ne passe pas... Il y a peut-être d'autres erreurs.
Sub envoi_mail()
Dim rep, fich, onglet As String
Dim retour As Boolean
Dim NameFichPDF As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim adresse As String
Dim message As String
Dim sujet As String
'nom et emplacement ou se trouve le fichier a traiter
rep = Feuil1.[B1]
fich = Feuil1.[B2]
'nom du fichier temporaire
NameFichPDF = Etat_stock("temp") & "\" & Feuil1.[B3]
onglet = Feuil1.[B4]
'pour l'email
adresse = Feuil1.[B6]
sujet = Feuil1.[B7]
message = Feuil1.[B8]
'******************************************************
'programme :
'******************************************************
Application.ScreenUpdating = False
'ouverture du fichier si pas encore ouvert
retour = Ouvrir_avec_test_deja_ouvert(rep & fich)
'enregistrement du fichier au format pdf dans un fichier temporaire
wbo.Sheets(onglet).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
NameFichPDF, Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
'envoi de l'email
Set OutlookApp = CreateObject("outlook.application")
Set OutlookMail = OutlookApp.createitem(0)
With OutlookMail
.Subject = sujet 'sujet du mail
.To = "christy.lecko@gmail.com" 'adresse mail destinataire
.body = "message" 'corps du message
.Attachments.Add Etat_stock <========
Cette ligne plante '.Display
.send 'on envoie le mail créé
End With
'libération de la mémoire
Set OutlookMail = Nothing
Set OutlookApp = Nothing
'suppression du fichier pdf temporaire
Kill NameFichPDF
'si le fichier n'était pas ouvert on le referme
If retour = True Then wbo.Close False
'libération de la mémoire
Set wbo = Nothing
End Sub
BOnjour
a aucun moment j'ai dis qu'il fallait changé quoi que ce soit dans le code......................................
Tu as fait n'importe quoi..... il est vrai que je n'ais pas précisé qu'il fallait modifier sur la feuille 1 du classeur mais bon quand on ouvre le fichier on voit quand même ceci .....
Fred
Salut Fred,
En fait j'ai modifié les deux !!
La feuille 1 et le code je pensais qu'il fallait le faire également je vais réessayer.
Je tiens au courant
fred2406 a écrit :BOnjour
a aucun moment j'ai dis qu'il fallait changé quoi que ce soit dans le code......................................
Tu as fait n'importe quoi..... il est vrai que je n'ais pas précisé qu'il fallait modifier sur la feuille 1 du classeur mais bon quand on ouvre le fichier on voit quand même ceci .....
Fred
Merci ça marche à la perfection.
C'est parfait !!