Enregistrement et envoie de plusieurs feuilles par mail

Bonjour , j'ai un code pour envoyer une feuille de classeur par mail, mon soucis est que je ne trouve pas la syntaxe après plusieurs différents essaies pour envoyé une 2eme feuille (qui se trouve dans le même classeur)(le nom de l'autre feuille a envoyé se nomme "PARAM"). voici mon code:

capture

Bonjour theovgnl,

Est-ce que tu peux poster le code directement à l'aide des balises </> du ruban de commentaire ? De cette manière, on peut le copier coller .

Est-ce que tu veux un seul fichier avec les 2 feuilles ou 2 fichiers distincts ?

Et tu te souviens, on parlait de nom défini variablement à l'avance et finalement, je vois que le nom de fichier est défini en dur dans le code. D'où provient le numéro à la suite de CMDE_REXEL_AR ?

Cdlt,

bonjour, voila le code:

Sub mail()

With Sheets("general")
    spath = .Parent.Path & "" 'nom dossier
    sname = spath & .Range("A1").Value & " " & Format(Date, "220122") & "CMDE_REXEL_AR_.xlsx" '<<< nom complet fichier : dépend A1 et date
    .Copy 'copie dans nouveau classeur
End With

ActiveWorkbook.Close savechanges:=True, Filename:="CMDE_REXEL_AR_000208353.xlsx"  'ferme et sauve

Dim oOulook As Object
Set oOutlook = CreateObject("Outlook.Application")

Dim oMail As Object
Set oMail = oOutlook.CreateItem(0)

With oMail
.To = Range("T2")
.Subject = "Commande Fournisseur"
.Attachments.Add "C:\Users\ardatem\Documents\CMDE_REXEL_AR_000208353.xlsx"
.Display

End With

End Sub

il me le faudrait dans un seul fichier, et pour le numéro a la suite de CMDE_REXEL_AR vient d'un numéro de commande

Bonjour,

Oui, mais d'où provient ce numéro de commande ? Pour l'exemple, je suppose qu'il est en A1 de la feuille "general". Il faut bien désigner la feuille à laquelle appartient chaque range utilisée dans le code pour éviter tout risque d'erreur :

Sub mail()

Dim oOulook As Object, oMail As Object
dim spath$, sPJ$, sbody$

spath = "C:\Users\ardatem\Documents\"
sPJ = spath & "CMDE_REXEL_AR_" & sheets("general").range("A1").value & ".xlsx" '<<< ADAPTER A1
Sheets(Array("general", "PARAM")).Copy 'copie dans nouveau classeur
ActiveWorkbook.Close savechanges:=True, Filename:=sPJ  'ferme et sauve

'corps du mail
sbody = "Bonjour," & chr(10) & chr(10)
sbody = sbody & "Je vous prie de trouver ci-joint le fichier relatif à la commande " & sheets("general").range("A1").value & "."
sbody = sbody & chr(10) & chr(10)
sbody = sbody & "Je vous en souhaite bonne réception." & chr(10) & chr(10)
sbody = sbody & "Cordialement,"

Set oOutlook = CreateObject("Outlook.Application")
Set oMail = oOutlook.CreateItem(0)

With oMail
    .To = sheets("general").Range("T2") '<<< ADPATER feuille si pas bonne
    .bcc = "monadressemail" 'mettre son adresse pour avoir une copie
    .Subject = "Commande Fournisseur"
    .body = sbody
    .Attachments.Add sPJ
    .Display
    '.send
End With

'kill sPJ 'option destruction de fichier

End Sub

Cdlt,

Il provint d'un fichier pdf donc impossible a aller chercher dans le fichier excel

Non, ce n'est pas impossible mais peut-être difficile.

Une solution consisterait à écrire ce numéro en dur dans le code s'il est toujours le même, Une seconde à écrire ce numéro dans une cellule excel s'il varie, une autre à chercher ce numéro dans les dossiers du système s'il y a une logique qui le permette.

Il y a d'autres possibilités mais ce serait faisable.

Enfin, c'est un détail...

Rechercher des sujets similaires à "enregistrement envoie feuilles mail"