Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème de génération de fichier auto sous mes documents sans r ai

5 réponses
Avatar
PJ
Bonjour,

Je veux envoyer un fichier joint par mail. J'utilise le code ci-dessous mais
le problème est que cela me génère automatiquement une copie sous Mes
Documents.
Quelqu'un sait-il pourquoi et comment le résoudre?
Merci d'avance de votre Aide.
Salutations

CODE:
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sourcewb As Workbook
Dim Destwb As Workbook
Dim TempFilePath As String
Dim TempFileName As String

Sheets("Résumé_Cmde").Activate
Set Sourcewb = ActiveWorkbook
'Copy the sheet to a new workbook
ActiveSheet.Copy
Set Destwb = ActiveWorkbook

'Mail it

TempFileName = "résumé de la nouvelle commande de "

With Destwb
.SaveAs TempFileName & FileExtStr

On Error Resume Next
.SendMail "toto@tata.com", _
"Voici le " & TempFileName

On Error GoTo 0
.Close SaveChanges:=False
End With

5 réponses

Avatar
FFO
Salut à toi

Dans ce code la ligne qui enregistre le document :

.SaveAs TempFileName & FileExtStr

inhibe là en mettant une cote devant ainsi :

'.SaveAs TempFileName & FileExtStr

Et refais des essais
Tiens moi informé du résultat !!!!
Avatar
FFO
Rebonjour à toi

"Auriez-vous une idée pour le sauver sous le bon nom sans générer de fichier?"

Je ne vois pas comment

Le sauver c'est obligatoirement le générer

Pour le supprimer il faudrait qu'il soit fermer

Donc récupérer son chemin et son nom :

Chemin = Activeworkbook.Path & "" & TempFileName

Fermer le document :

ActiveWorkbook.Close

La suite du code ....

A la fin du code supprimer le document :

Kill (Chemin)

Pour celà la macro doit être dans son propre document et non dans celui que
l'on a fermé et envoyé

Ce qui donne au final ce code :

Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sourcewb As Workbook
Dim Destwb As Workbook
Dim TempFilePath As String
Dim TempFileName As String

Sheets("Résumé_Cmde").Activate
Set Sourcewb = ActiveWorkbook
'Copy the sheet to a new workbook
ActiveSheet.Copy
Set Destwb = ActiveWorkbook

'Mail it

TempFileName = "résumé de la nouvelle commande de "

With Destwb
.SaveAs TempFileName & FileExtStr

Chemin = Activeworkbook.Path & "" & TempFileName
ActiveWorkbook.Close
On Error Resume Next
.SendMail "", _
"Voici le " & TempFileName

On Error GoTo 0
.Close SaveChanges:úlse
End With
Kill (Chemin)

Je n'ai pas testé et te laisse le soin de le faire

Tiens moi informé !!!!!


"PJ" wrote:

J'ai parlé trop tôt!!!
Si je ne sauvegarde pas, le fichier joint ne garde pas le bon nom...et n'en
garde plus du tout...
Auriez-vous une idée pour le sauver sous le bon nom sans générer de fichier?
ou en le supprimant ?
Merci.
PJ

"FFO" wrote:

> Salut à toi
>
> Dans ce code la ligne qui enregistre le document :
>
> .SaveAs TempFileName & FileExtStr
>
> inhibe là en mettant une cote devant ainsi :
>
> '.SaveAs TempFileName & FileExtStr
>
> Et refais des essais
> Tiens moi informé du résultat !!!!
>


Avatar
FFO
Rebonjour à toi

Il se peux que dans ma proposition le document soit fermé trop tôt

Dans cette hypothèse essaies comme celà :


Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sourcewb As Workbook
Dim Destwb As Workbook
Dim TempFilePath As String
Dim TempFileName As String

Sheets("Résumé_Cmde").Activate
Set Sourcewb = ActiveWorkbook
'Copy the sheet to a new workbook
ActiveSheet.Copy
Set Destwb = ActiveWorkbook

'Mail it

TempFileName = "résumé de la nouvelle commande de "

With Destwb
.SaveAs TempFileName & FileExtStr

On Error Resume Next
.SendMail "", _
"Voici le " & TempFileName

On Error GoTo 0
Chemin = Activeworkbook.Path & "" & TempFileName
.Close SaveChanges:úlse
End With
Kill (Chemin)

A toi de voir et dis moi !!!!
Avatar
PJ
ça marche parfaitement, merci encore.
Bonne soirée

"FFO" wrote:

Rebonjour à toi

"Auriez-vous une idée pour le sauver sous le bon nom sans générer de fichier?"

Je ne vois pas comment

Le sauver c'est obligatoirement le générer

Pour le supprimer il faudrait qu'il soit fermer

Donc récupérer son chemin et son nom :

Chemin = Activeworkbook.Path & "" & TempFileName

Fermer le document :

ActiveWorkbook.Close

La suite du code ....

A la fin du code supprimer le document :

Kill (Chemin)

Pour celà la macro doit être dans son propre document et non dans celui que
l'on a fermé et envoyé

Ce qui donne au final ce code :

Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sourcewb As Workbook
Dim Destwb As Workbook
Dim TempFilePath As String
Dim TempFileName As String

Sheets("Résumé_Cmde").Activate
Set Sourcewb = ActiveWorkbook
'Copy the sheet to a new workbook
ActiveSheet.Copy
Set Destwb = ActiveWorkbook

'Mail it

TempFileName = "résumé de la nouvelle commande de "

With Destwb
.SaveAs TempFileName & FileExtStr

Chemin = Activeworkbook.Path & "" & TempFileName
ActiveWorkbook.Close
On Error Resume Next
.SendMail "", _
"Voici le " & TempFileName

On Error GoTo 0
.Close SaveChanges:úlse
End With
Kill (Chemin)

Je n'ai pas testé et te laisse le soin de le faire

Tiens moi informé !!!!!


"PJ" wrote:

> J'ai parlé trop tôt!!!
> Si je ne sauvegarde pas, le fichier joint ne garde pas le bon nom...et n'en
> garde plus du tout...
> Auriez-vous une idée pour le sauver sous le bon nom sans générer de fichier?
> ou en le supprimant ?
> Merci.
> PJ
>
> "FFO" wrote:
>
> > Salut à toi
> >
> > Dans ce code la ligne qui enregistre le document :
> >
> > .SaveAs TempFileName & FileExtStr
> >
> > inhibe là en mettant une cote devant ainsi :
> >
> > '.SaveAs TempFileName & FileExtStr
> >
> > Et refais des essais
> > Tiens moi informé du résultat !!!!
> >


Avatar
PJ
la 1ère marche parfaitement donc no problemo.
Et merci.
PJ

"FFO" wrote:

Rebonjour à toi

Il se peux que dans ma proposition le document soit fermé trop tôt

Dans cette hypothèse essaies comme celà :


Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sourcewb As Workbook
Dim Destwb As Workbook
Dim TempFilePath As String
Dim TempFileName As String

Sheets("Résumé_Cmde").Activate
Set Sourcewb = ActiveWorkbook
'Copy the sheet to a new workbook
ActiveSheet.Copy
Set Destwb = ActiveWorkbook

'Mail it

TempFileName = "résumé de la nouvelle commande de "

With Destwb
.SaveAs TempFileName & FileExtStr

On Error Resume Next
.SendMail "", _
"Voici le " & TempFileName

On Error GoTo 0
Chemin = Activeworkbook.Path & "" & TempFileName
.Close SaveChanges:úlse
End With
Kill (Chemin)

A toi de voir et dis moi !!!!