Pièce jointe + Suppression
Résolu
Villette54
Messages postés
300
Date d'inscription
Statut
Membre
Dernière intervention
-
Villette54 Messages postés 300 Date d'inscription Statut Membre Dernière intervention -
Villette54 Messages postés 300 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'ai besoin d'un petit coup de main afin de finir une macro. Comme le titre l'indique le but de ma macro est de partir d'un fichier vierge de référence, qu'il faut compléter puis une fois compléter je souhaiterais que ce fichier s'enregistre sous un nom particulier (en fonction des données saisient), se mette en pièce jointe d'un mail et enfin se supprime (car je ne souhaite pas l'archivage de ces fichiers, le fait qu'ils soient dans un mail suffit) afin de retourner sur mon fichier de base.
J'ai réussi à faire les 2 premières étapes (grâce à l'aide du forum pour mes precedents besoins), or je suis incapable de faire la dernière (la suppression du fichier) car pour supprimer le fichier, il faut qu'il soit fermé et s'il est fermé la macro ne s'execute pas. En gros je tourne en rond...
Ci-dessous ma macro.
Si quelqu'un à une solution à mon problème, ou alors une alternative : je suis preneur !
Merci d'avance,
J'ai besoin d'un petit coup de main afin de finir une macro. Comme le titre l'indique le but de ma macro est de partir d'un fichier vierge de référence, qu'il faut compléter puis une fois compléter je souhaiterais que ce fichier s'enregistre sous un nom particulier (en fonction des données saisient), se mette en pièce jointe d'un mail et enfin se supprime (car je ne souhaite pas l'archivage de ces fichiers, le fait qu'ils soient dans un mail suffit) afin de retourner sur mon fichier de base.
J'ai réussi à faire les 2 premières étapes (grâce à l'aide du forum pour mes precedents besoins), or je suis incapable de faire la dernière (la suppression du fichier) car pour supprimer le fichier, il faut qu'il soit fermé et s'il est fermé la macro ne s'execute pas. En gros je tourne en rond...
Ci-dessous ma macro.
Sub Messagerie() Application.DisplayAlerts = False Application.EnableEvents = True Dim OL As Object Dim OLmail As Object Dim pj As String pj = ThisWorkbook.Path & "" & ThisWorkbook.Sheets("BDD - Code Matières").Cells(2, 10).Value & ".xlsm" ThisWorkbook.SaveAs Filename:=pj, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False Set OLk_Appli = CreateObject("Outlook.Application") If OLk_Appli.Explorers.Count > 0 Then 'Ok outlook ouvert Else OLk_OK = Shell("C:\Program Files\Microsoft Office\Office14\outlook.exe", vbHide) End If Set OL = CreateObject("Outlook.Application") Set OLmail = OL.CreateItem(0) With OLmail .To = "xxx" .Subject = "Rapport de production : " & ThisWorkbook.Sheets("BDD - Code Matières").Cells(2, 10).Value .Body = "Bonjour," & vbCrLf & vbCrLf & "Ci-joint le rapport de production." & vbCrLf & vbCrLf & "Bien à vous," .Attachments.Add pj .Display '.Send End With Set OLmail = Nothing Set OL = Nothing Set OLk_Appli = Nothing 'Kill pj Application.Quit Kill pj End Sub
Si quelqu'un à une solution à mon problème, ou alors une alternative : je suis preneur !
Merci d'avance,
A voir également:
- Pièce jointe + Suppression
- Forcer suppression fichier - Guide
- Pièce d'identité - Accueil - Services publics
- 1 pièce jointe - Guide
- Pps piece jointe ✓ - Forum Windows
- One piece kai vf - Forum Cinéma / Télé
1 réponse
slt,
Est-ce vraiment obligatoire de nomer le fichier excel ?
Parce que sinon une façon de contourner le problème serait de ne jamais et de mettre un
Si c'est obligatoire t'es coincé parce que tu peux pas changer le nom d'un classeur sans l'enregistrer (la propriété
sinon tu peux l'enregistrer dans un dossier tampon et rajouter dans ta macro qu'au lancement des procédure 1 et 2 (que tu ne montre pas parce qu'elles marche tu supprime le contenu du dossier en question comme ça t'as que 1 déchet entre chaque rapport)
Je sais que c'est pas exactement ce que tu cherche, mais qui ne tente rien n'a rien.
Dis-moi si ça te va
Est-ce vraiment obligatoire de nomer le fichier excel ?
Parce que sinon une façon de contourner le problème serait de ne jamais et de mettre un
application.displayAlert = falsepour pas qu'il t'affiche un message d'erreur
Si c'est obligatoire t'es coincé parce que tu peux pas changer le nom d'un classeur sans l'enregistrer (la propriété
.nameest en lecture seule).
sinon tu peux l'enregistrer dans un dossier tampon et rajouter dans ta macro qu'au lancement des procédure 1 et 2 (que tu ne montre pas parce qu'elles marche tu supprime le contenu du dossier en question comme ça t'as que 1 déchet entre chaque rapport)
Je sais que c'est pas exactement ce que tu cherche, mais qui ne tente rien n'a rien.
Dis-moi si ça te va
Merci de ta réponse, alors pour un peu plus d'explication :
- Oui je suis oblige de renommer mon fichier, car ce sont des rapports de production, et le fichier doit prendre le nom : "numéro du rapport@matière produite" en gros afin de pouvoir être identifié et classé.
- Je ne pense pas que la solution du dossier qu'il faut vider soit efficace puisque c'est +/- ce que nous avons actuellement (un dossier où l'on enregistre tout directement) mais cela pose des soucis (plusieurs personnes qui encode le meme rapport, bref)
Peut-être que ce que je demande est impossible, auquel cas je trouverais une alternative (en enregistrant mes fichiers dans un dossier perdu au fin fond de notre réseau par exemple, mais je préfère éviter si possible).
En tout cas merci pour ton aide.
Sinon en dernier recours tu peux faire un classeur qui sert qu'à générer ces fichiers : il ouvre un nouvl excel, fais tout ce que tu veux lui faire faire, détruit le fichier qu'il vient de créer et enfin se ferme.
Le problème reste du même niveau, il faut le ranger quelque part.