Microsoft 365 Envoi plage de cellules d'une feuille excel par mail en renommant le fichier envoyé

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Huggy22

XLDnaute Nouveau
Bonjour à tous.

Dans le fichier ci-joint, je parviens à envoyer une feuille de mon classeur excel via outlook. Mais je rencontre deux petits soucis : j'aimerai envoyer uniquement les cellules A01:H35 dans un fichier excel et je souhaiterai que le fichier envoyé porte le nom de la cellule B3.

D'avance merci et bonne journée !
 

Pièces jointes

Dernière édition:
Solution
Bonjour

Feuille.Copy ne crée un classeur que si vous ne spécifiez pas de plage de cellule, la feuille entière est alors créée comme première feuille du classeur.

Si vous voulez copier une plage de cellule, il vous faut d'abord créée le classeur.
VB:
Sub Image4_Cliquer()
'
' Image4_Cliquer Macro
'
    Dim wk As Workbook
    Dim Adr As String 'Adresse
    Dim T As String 'L'objet du message
    Adr = "maurice.bejart@hotmail.com"
    T = "Commande " & Range("B3")
    
    'Création d'un classeur qui recevra la copie de la plage de cellule
    Set wk = Workbooks.Add()
    ' Copier la plage de cellule de la feuille BCI de ce classeur
    ' vers la première feuille du nouveau classeur
    ThisWorkbook.Sheets("BCI").Range("A1:H35").Copy...
Bonjour

Feuille.Copy ne crée un classeur que si vous ne spécifiez pas de plage de cellule, la feuille entière est alors créée comme première feuille du classeur.

Si vous voulez copier une plage de cellule, il vous faut d'abord créée le classeur.
VB:
Sub Image4_Cliquer()
'
' Image4_Cliquer Macro
'
    Dim wk As Workbook
    Dim Adr As String 'Adresse
    Dim T As String 'L'objet du message
    Adr = "maurice.bejart@hotmail.com"
    T = "Commande " & Range("B3")
    
    'Création d'un classeur qui recevra la copie de la plage de cellule
    Set wk = Workbooks.Add()
    ' Copier la plage de cellule de la feuille BCI de ce classeur
    ' vers la première feuille du nouveau classeur
    ThisWorkbook.Sheets("BCI").Range("A1:H35").Copy wk.Sheets(1).Range("A1")
    ' Pour éviter les différents message (enregistrement sans macro etc.)
    Application.DisplayAlerts = False
    wk.SaveAs ThisWorkbook.Path & "\" & T & ".xlsx", 51
    Application.DisplayAlerts = True
    
    Application.Dialogs(xlDialogSendMail).Show Adr, T
End Sub
 

Pièces jointes

Désolé de revenir vers vous, mais j'ai parfois un message d'erreur (voir capture d'écran). D'autre part, existe-t-il une commande pour conserver la largeur des colonnes ?

Merci,
Bien cordialement.
 

Pièces jointes

  • Capture d’écran 2023-02-09 162223.jpg
    Capture d’écran 2023-02-09 162223.jpg
    15.4 KB · Affichages: 12
Re,

votre message d'erreur provient certainement de la construction de votre nom de fichier.
Je ne peux pas ni deviner ni vous dire plus comme ça.
Pour la deuxième question, elle ne rentre pas dans le cadre de cette discussion.
Terminez cette discussion en résolvant son problème puis éventuellement recréez en une autre pour l'autre question.
 
Désolé de revenir vers vous, mais j'ai parfois un message d'erreur (voir capture d'écran). D'autre part, existe-t-il une commande pour conserver la largeur des colonnes ?

Merci,
Bien cordialement.
Je crois que l'erreur provient lorsque la référence du classeur excel créé existe déjà. Est-il possible de supprimer la copie du fichier excel sur mon disque C après envoi du mail ?

Bien à vous,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
447
Réponses
1
Affichages
1 K
Retour