macro pour envoyer le contenu de plusieurs onglets via outlook 2010

com689

XLDnaute Nouveau
Bonjour à tous,
J’ai créé un fichier de gestion des interventions de maintenance dans un hôtel, qui fonctionne très bien grâce en partie à l’intervention de certains habitués de ce forum.
Il fonctionne tellement bien, que je souhaite le faire évoluer, en même temps que mes connaissances dans excel 2010.
J’ai organisé l’édition de rapports journaliers en fonction des services demandeurs, je m’explique :
A chaque fois qu’une intervention est terminée, elle apparait sur une feuille spécifique en fonction du service demandeur (HK, FO, CO, etc…)
Je voudrais maintenant créer une macro qui lorsque je cliquerai sur un bouton enverrait automatiquement via outlook 2010 le contenu des cases C5 à C50 (si contenu il y a) de l’onglet Mail_HK à l’adresse mail contenue en A1, avec copie à A2 et éventuellement A3 de cette même feuille avec pour objet le contenu des cases C3, D3, E3 et F3 sachant que D3 et F3 sont des fonctions aujourdhui() et maintenant().
Une fois l’envoie réalisé, la macro poursuivrait sur l’onglet suivant à savoir Mail_FO, etc,jusqu’au dernier onglet.
Bien entendu s’il n’y a rien à envoyer, on n’envoie rien.
Comme je le disais plus haut, je souhaite enrichir mes connaissances dans excel, surtout au niveau programmation VBA aussi j’aimerai surtout comprendre ce que je programme.
J'ai bien exploré quelques pistes sur le forum, mais vu mon niveau en VBA (en dessous de zéro ou nonloin...) rien ne fonctionne.
Afin d’éclaircir tout cela, je joins un exemple allégé du fichier, sachant que dans le fichier d’origine, il y a beaucoup plus d’onglet, et que tous ne sont pas à envoyer par mail. Dans l’exemple, je n’ai fais apparaitre que des modèles de rapport à envoyer par service.

Merci d’avance pour toute vos propositions
 

Pièces jointes

  • essai mailing interventions.xlsx
    17.6 KB · Affichages: 113
G

Guest

Guest
Re : macro pour envoyer le contenu de plusieurs onglets via outlook 2010

Bonjour,

tout d'abord, nouvelle journée, nouveau bonjour:)

Pas de solutions ?

Le forum en fourmille de solutions sur ce sujet maintes fois traité.

1- Reste à chercher, ne serait-ce que dans les discussions similaires au bas de cette page.
2- Faire des essais puis revenir avec les difficultés et explications sur les points précis d'achoppement.

A+
 

com689

XLDnaute Nouveau
Re : macro pour envoyer le contenu de plusieurs onglets via outlook 2010

bonjour,

Comme je l'ai déjà précisé dans le premier message, j'ai déjà exploré plusieurs pistes sur le forum comme les sujets similaires en bas de page, mais comme j'ai un niveau trés léger en vba, je ne comprends pas trop ce que je fais, et pourquoi cela ne fonctionne pas.
Je souhaiterais donc profitez de cette demande d'aide pour améliorer (ce qui ne parait pas difficile) ma compréhension de la programmation en vba.

Cordialement,

Bonne journée.
 
G

Guest

Guest
Re : macro pour envoyer le contenu de plusieurs onglets via outlook 2010

Bonjour,

Reste le point 2 de mon post précédent à savoir:
2- Faire des essais puis revenir avec les difficultés et explications sur les points précis d'achoppement.

Je rajouterai, étape par étape, un fichier contenant ta macro représentative du problème.

A+
 

com689

XLDnaute Nouveau
Re : macro pour envoyer le contenu de plusieurs onglets via outlook 2010

Bonjour,

En fait quand j'essaie d'enregistrer une macro qui ouvre outlook et copie colle mes cellules, cela ne fonctionne pas.
La macro ouvre bien outlook mais s'arrête là...
Voici le contenu de la macro:


Sub Mailing()
'
' Mailing Macro
'
' Touche de raccourci du clavier: Ctrl+Shift+M
'
Range("A2").Select
Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True
Range("C5:C35").Select
Selection.Copy
Range("C3:F3").Select
Application.CutCopyMode = False
Selection.Copy
End Sub


Si quelqu'un pouvait m'aiguiller, cela m'aiderait vraiment.
Merci d'avance
 

com689

XLDnaute Nouveau
Re : macro pour envoyer le contenu de plusieurs onglets via outlook 2010

Bonjour,
Alors, voilà où j'en suis actuellement.
Grâce à l'aide d'une personne sur un autre forum, j'arrive à présent à envoyer via une macro.
Le seul problème est que dans le corps du mail seul le contenu de la cellule C5 apparait.
Or je souhaite inclure dans le mail toutes les cellules non vides contiguës à C5 de la colonne C.
Je joins un exemple du fichier avec la macro appelable via le raccourci ctrl+shift+m, ainsi qu'un fichier texte de ma tentative infructueuse de modification de cette macro.
Merci d'avance de toute l'aide que vous pourriez m'apporter.

Cordialement,

Bon courage.
 

Pièces jointes

  • essai mailing interventions toutes cellules.xlsm
    29.1 KB · Affichages: 83
  • macro mailing toutes cellules.docx
    14.1 KB · Affichages: 74
G

Guest

Guest
Re : macro pour envoyer le contenu de plusieurs onglets via outlook 2010

Bonjour,

Ta macro modifiée. Cela devrait le faire.

Code:
Sub Envoyer_Mail_Outlook()
Dim ObjOutlook As New Outlook.Application
Dim oBjMail
Dim LaDate As Date, LHeure As Date
LaDate = Date
LHeure = Time
Dim sh As Worksheet 'Feuille 
Dim Nom_Fichier As String
Dim Signature As String
Dim Datas As Variant
'Dim mois As String
    Set ObjOutlook = New Outlook.Application
    Set oBjMail = ObjOutlook.CreateItem(olMailItem)
    
' Ma signature
'Signature = Sheets("Données").Range("M3").Value
'mois = Sheets("Données").Range("S15").Value

'---------------------------------------------------------
   'Exemple pour envoyer un classeur en pièce jointe
   'Nom_Fichier = Application.GetOpenFilename("Fichier excel (*.xls;*.xlsx;*.xlsm), *.xls;*.xlsx;*.xlsm")
   'If Nom_Fichier = "Faux" Then Exit Sub
'---------------------------------------------------------
   'Ou bien entrer le path et nom du fichier autrement
   Nom_Fichier = "......"
    If Nom_Fichier = "" Then Exit Sub
'---------------------------------------------------------
    Set sh = Sheets("Mail_HK")
    Datas = Application.Transpose(sh.Range(sh.Cells(5, 3), sh.Cells(Rows.Count, 3).End(xlUp)).Value)
     With oBjMail
       .To = sh.Range("A2").Value  ' le destinataire
       .CC = sh.Range("A3").Value  ' en copie à
       .Subject = sh.Range("C3").Value & LaDate & ", à " & LHeure & "."   ' l'objet du mail
       .Body = "Ia orana," & vbCrLf & Join(Datas, vbCrLf) 'le corps du mail ..son contenu
       '.Attachments.Add Nom_Fichier
       .Display  '   Ici on peut supprimer pour l'envoyer sans vérification
       .Send
    End With
    'ObjOutlook.Quit
    Set oBjMail = Nothing
    Set ObjOutlook = Nothing
End Sub

A+
 

com689

XLDnaute Nouveau
Re : macro pour envoyer le contenu de plusieurs onglets via outlook 2010

Bonjour,
J'ai encore un petit souci avec la macro,je n'arrive pas à la modifier pour que le texte se mete en forme dans le mail comme dans excel.
Soit une intervention par ligne, alors que pour l'instant tout se met à la suite ce qui rend le mail difficilement lisible lorsqu'il y a beaucoup d'interventions.

Merci d'avance pour votre aide.

Bon courage
 
G

Guest

Guest
Re : macro pour envoyer le contenu de plusieurs onglets via outlook 2010

Bonjour,

Essaie de remplacer la ligne: .Body=.... par les deux lignes ci-dessous:
Code:
.BodyFormat = olFormatHTML
.htmlBody = "Ia orana,<BR />" & Join(Datas, "<BR /">)

A+
 

com689

XLDnaute Nouveau
Re : macro pour envoyer le contenu de plusieurs onglets via outlook 2010

Bonjour Hasco,

Merci pour cette réponse, mais cela ne fonctionne pas.
En plus sur mon ordi du bureau, celui ou tourne le fichier Excel, lorsque je lance la macro, dans le corps du mail, je ne retrouve que la date du jour transposée en valeur.
Je te joins un extrait allégé du fichier, car les cellules que je souhaite retranscrire dans outlook sont une concaténation de résultats de recherches, peut-être que cela a une incidence ?
Dans le fichier joint, si dans les cellules F2 à F5 tu sélectionne un donneur d'ordre dans le menu déroulant (choisir HK) ensuite les lignes apparaissent dans l'onglet mail_HK (après calcul "f9").
Par contre, dès que tu essai d'envoyer par mail, cela devient une valeur de la date et heure ?

Bon courage, et encore merci .
 

Pièces jointes

  • 05-14 interventions Mai 14essai_mail.xlsm
    237.6 KB · Affichages: 176
G

Guest

Guest
Re : macro pour envoyer le contenu de plusieurs onglets via outlook 2010

Bonjour,

il suffit de remplace 19 par 14 (N° de colonne) dans cells(5,19) et cells(rows.count,19) qui deviennent cells(4,14) et cells(rows.count,14).

C'était pas compliquer à deviner. Essaie de comprendre la macro, sinon je ne répondrai plus.

A+
 

com689

XLDnaute Nouveau
Re : macro pour envoyer le contenu de plusieurs onglets via outlook 2010

Bonjour Hasco,

Merci pour cette réponse, en effet c'était une simple erreur de numéro de colonne de ma part.
En effet, lorsque j'ai ESSAYE DE COMPRENDRE LA MACRO, je me suis trompé dans l'adressage des cellules, et je ne l'ai pas vu lorsque j'ai tenté de comprendre pourquoi cela ne fonctionnait pas.
Ce n'est pas parce que je ne trouve pas mon erreur que je n'ai pas cherché...
Mais effectivement si tu trouves que ma réflexion n'est pas suffisante, arrête de répondre aux messages.

Encore une fois merci.

Nana (au revoir comme on le dit ici)
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 786
Membres
101 817
dernier inscrit
carvajal