Création et appel de fonction

  • Initiateur de la discussion Initiateur de la discussion Gillou
  • Date de début Date de début

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 !

G

Gillou

Guest
Re coucou les Pros et Proes
Cette Fois j´aimerai creer un fonction qui encoie des mails: je m´explique.
J´aimerai creer une fonction SendMail(Sheet, Line)
qui en verra un mail dont les paramètres se trouve dans la feuille Sheet à la ligne Line. J´ai le code d´envoie de mail qui est fait et paramétré mais je ne sais pas comment creer une fonction, où la mettre .... pour que je n´ai plus à mettre que SendMail(feuilMail1 , 3) par exemple dans un boutton.
C´est clair??
Merci d´avance à vous.
Gillou
 
Bonsoir,
Les fonctions ne font rien. Elles renvoient un résultat.
Ex :

Function SURFACE(longueur, largeur)
SURFACE = longueur * largeur
End Function

Vouloir en tirer autre chose revient à essayer de faire une omelette avec des boulons...
Bon appétit !
 
Bonsoir Gillou, galopin01,

Gillou, galopin01 a raison.
De plus en fouillant le forum, il y a plein de sujets concernant la programmation de l'envoi de mail.
Ce sujet est redondant aussi dans les archives (le forum 1ère génération. Arf !)

Abel.
 
Coucou
je viens de regarder sur le forum et j´ai pas trouvé mon bonheur.
Je vais aussi essayer de m´expliquer un peu mieux.

Voilà le code en question

Dim TheOLapp As Outlook.Application, TheOLitem As Outlook.MailItem
Dim TheMessage As String
sheet = 'Sheet1'
Line = 2
TheMessage = Worksheets(sheet).Cells(Line, 11)

Worksheets(sheet).Activate

Set TheOLapp = CreateObject('Outlook.Application')
Set TheOLitem = TheOLapp.CreateItem(olMailItem)
With TheOLitem
.To = Worksheets(sheet).Cells(Line, 7)
.CC = Worksheets(sheet).Cells(Line, 8)
.Importance = olImportanceNormal
.Subject = Worksheets(sheet).Cells(Line, 9)
.Body = TheMessage & Worksheets(sheet).Cells(Line, 12)
'.Attachments.Add FilePathDaily & 'TheFile-' & Format(Date, 'YYYY-MM-DD') & '.xls'
.Categories = 'Daily-Report'
.OriginatorDeliveryReportRequested = True
.ReadReceiptRequested = True
'.Send 'TO SEND DIRECTLY
.Display 'TO SEE THE MAIL FIRST
End With

Set TheOLapp = Nothing
Set TheOLitem = Nothing

Ici il est paramétré avec la feuille Sheet1 et la ligne 2.
Je vais faire appel à ce code environ une quarantaine de fois.
Ce que j´aimerai donc ce serait de pouvoir faire appel à cette partie de code depuis n´importe quel Boutton de mon fichier Excel en faisant seulement un truc du style SendMail('FeuilMail5' , 6) par exemple qui enverra donc un mail avec les paramètres de la feuille FeuilMail5 de la ligne 6.
C´est plus clair
Merci encore
Gillou
 
Bonsoir Gillou,

J'ai l'image de ton rosier dans le pied dans la tête 🙂

Je ne comprend pas tout à ton code, mais il me semble qu'il suffit que tu rende variable tes... variables !
Ainsi, au lieu d'écrire :
sheet = 'Sheet1'
Line = 2
Tu fais référence à une cellule ou à un nom de ta feuille avant de lancer la macro, le tour est joué.
Ou s'il y a une liste de feuilles et de lignes, de faire une boucle sur ces variables du genre :
For i = 1 to 40
sheet = 'Sheet' & i
...

Next i

Pour ton rosier, j'espère que tu es à jour de tes rappels de tétanos !

A plus.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

L
Réponses
7
Affichages
2 K
leodaedo
L
L
Réponses
0
Affichages
3 K
LiuXing
L
S
Réponses
14
Affichages
2 K
G
Réponses
2
Affichages
3 K
A
Réponses
1
Affichages
952
G
Réponses
13
Affichages
3 K
R
G
Réponses
3
Affichages
1 K
R
O
Réponses
5
Affichages
2 K
Obi-Wan Kenobi
O
G
Réponses
3
Affichages
1 K
M
Réponses
0
Affichages
1 K
mowbray
M
Retour