J’aimerais qu’en ce jour pluvieux d’avril une âme charitable me rende service.
Je souhaiterais envoyer par mail un classeur ou une feuille excel à plusieurs destinataires en même temps.
Ces destinataires seraient stockés dans la feuille où se situe la macro, contrairement au document que je souhaite envoyer.De plus dans la macro il ne devrait pas y avoir les noms des destinataires mais seulement la plage des données.
NB : si en plus vous avez quelque chose pour convertir le classeur ou la feuille envoyé en pdf cela serait magique.
D’avance merci et bonne journée
Edité le 11/04/2008 à 15:52
J’ai déjà regarder ces trois pages avant de poster ici.
En fait imaginons que j’ai un fichier excel repertoire.xls et un fichier Données.xls
Je voudrait dans le module de repertoire.xls où se trouve dans la colonne A les adresses mail une macro qui me prend le fichier données et l’envoie directement au mail de la colonne A
Envoie le classeur actif à plusieurs destinataires. Plage A1:A10
Vous pouvez ajouter des adresses, il suffit de modifier:
la référence de la plage A1:A11
la boucle 1 To 11
et le tableau Array(myadress(11) etc…
Sub EnvoiClasseurAd()
Dim myadress(1 To 10)
Set mylst = ActiveSheet.Range(“a1:a10”)
Count = 1
For Each Envoi In mylst
If Len(Envoi) Then myadress(Count) = Envoi: Count = Count + 1
Next
ActiveWorkbook.SendMail Recipients:=Array(myadress(1), myadress(2), _
myadress(3), myadress(4), myadress(5), myadress(6), myadress(7), _
myadress(8), myadress(9), myadress(10)), Subject:=" Voilà le classeur demandé"
End Sub
tiens regarde la : [dj.joss.free.fr...](http://dj.joss.free.fr/web.htm#mail2)
Ca aussi je l’ai imprimé le problème c’est que la il s’agit du classeur actif. Or le classeur actif sera ici le fichier repertoire et non pas les fichier données.
Sub EnvoiClasseurAd()
Dim myadress(1 To 10)
Set mylst = ActiveSheet.Range(“a1:a10”) -> le problème est ici en fait. Set mylist = “C:…” ca marcherait ?
Count = 1
EDIT : j’ai essayé de mettre le chenmin pour me rendre à mon fichier et cela ne fonctionne pas
Edité le 11/04/2008 à 11:59
J’ai aussi trouver cela mais comme d’hab seul le classeur ouvert peut etre importer et de plus on ne peut saisir les adresse du classeur.
Faut que j’eesaye un mix entre celle-ci et celle plus haut.
Set mylst = Sheets(“Feuil2”).Range(“a1:a1”)
'plage correspondant au nombre d’adresse mail de la colonne A
'Adresse présente sur la feuille 2
Count = 1
For Each Envoi In mylst
If Len(Envoi) Then myadress(Count) = Envoi: Count = Count + 1
Next
'Transfert des données de la Feuille 1
ThisWorkbook.Sheets(“Feuil1”).Copy
Application.DisplayAlerts = False
ActiveWorkbook.Close SaveChanges:=False
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.CutCopyMode = False
Application.ScreenUpdating = True
'Penser à rajouter le bon nombre de myadress(n) pour le compteur
ActiveWorkbook.SendMail Recipients:=Array(myadress(1)), Subject:=" Flash business du " & La_date
Set mylst = Sheets(“Feuil2”).Range(“a1:a1”)
'plage correspondant au nombre d’adresse mail de la colonne A
'Adresse présente sur la feuille 2
Count = 1
For Each Envoi In mylst
If Len(Envoi) Then myadress(Count) = Envoi: Count = Count + 1
Next
'Transfert des données de la Feuille 1
ThisWorkbook.Sheets(“Feuil1”).Copy
Application.DisplayAlerts = False
ActiveWorkbook.Close SaveChanges:=False
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.CutCopyMode = False
Application.ScreenUpdating = True
'Penser à rajouter le bon nombre de myadress(n) pour le compteur
ActiveWorkbook.SendMail Recipients:=Array(myadress(1)), Subject:=" Flash business du " & La_date
End Sub
Voici ce que ca donne, cependant mon chef aimerait ne pas voir besoin de rajouter à la main le nombre d’adress mail a entrer à la fois dans la declaration de myadress ou de la plage.
Il m’a donc dit de passer (“a1:a1”) en parmaetre pour le faire descendre d’un ligne tant que c’est different de 0
or je vois pas du tout comment faire
Edité le 11/04/2008 à 15:55
Voici ce que ca donne, cependant mon chef aimerait ne pas voir besoin de rajouter à la main le nombre d’adress mail a entrer à la fois dans la declaration de myadress ou de la plage.
Il m’a donc dit de passer (“a1:a1”) en parmaetre pour le faire descendre d’un ligne tant que c’est different de 0
or je vois pas du tout comment faire