Création et appel de fonction

  • Initiateur de la discussion Gillou
  • Date de début
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
 

galopin01

XLDnaute Occasionnel
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 !
 

Abel

XLDnaute Accro
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.
 
G

Gillou

Guest
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
 

JCA06

XLDnaute Occasionnel
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.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 669
Messages
2 090 740
Membres
104 644
dernier inscrit
MOLOKO67