Envoie de mail avec pièce-jointe selon données dans un tableau
anizzz
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Le principe est le suivant: J'ai une première feuille excel " DMS TS generator " avec un tableau listant des auditeurs et les cartes qu'ils doivent utiliser pour faire des audits. J'ai une première macro qui copie ce tableau et assigne aléatoirement des cartes aux auditeurs. Dans chaque nouvelle feuille créée (ici appelée "semaine1") j'aimerai qu'en cliquant sur le nom de la personne la carte qui lui est assignée par le tableau lui soit envoyée ( les adresses sont dans la colonne AU ) , les cartes à envoyer sont des feuilles de ce document ( onglets de 1 à 18 ).
J'ai deux macro qui normalement permettent de réaliser cela mais ça ne fonctionne pas : une première qui vérifie que les données sont bien dans le tableau ( Worksheet_BeforeDoubleClick) et une qui envoie les mails ( EnvoiMail ).
Voici le lien contenant mon fichier : https://www.cjoint.com/?0KnmqsYSanR
Merci d'avance pour votre aide.
Bonne journée ! :)
Le principe est le suivant: J'ai une première feuille excel " DMS TS generator " avec un tableau listant des auditeurs et les cartes qu'ils doivent utiliser pour faire des audits. J'ai une première macro qui copie ce tableau et assigne aléatoirement des cartes aux auditeurs. Dans chaque nouvelle feuille créée (ici appelée "semaine1") j'aimerai qu'en cliquant sur le nom de la personne la carte qui lui est assignée par le tableau lui soit envoyée ( les adresses sont dans la colonne AU ) , les cartes à envoyer sont des feuilles de ce document ( onglets de 1 à 18 ).
J'ai deux macro qui normalement permettent de réaliser cela mais ça ne fonctionne pas : une première qui vérifie que les données sont bien dans le tableau ( Worksheet_BeforeDoubleClick) et une qui envoie les mails ( EnvoiMail ).
Voici le lien contenant mon fichier : https://www.cjoint.com/?0KnmqsYSanR
Merci d'avance pour votre aide.
Bonne journée ! :)
A voir également:
- Envoie de mail avec pièce-jointe selon données dans un tableau
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Pièce d'identité - Accueil - Services publics
- Imprimer un tableau excel - Guide
7 réponses
Bonjour,
Worksheet_BeforeDoubleClickcomme c'est indique (Worksheet) doit etre dans le VBA de la feuille "semaine1" sans oublier
Cancel=True, pas dans un module !!!!!!!
Bonjour,
Merci pour votre réponse. La macro fonctionne mais fait bugger Excel dès que je clique sur un nom donc que j'envoie un seul mail. Cette méthode n'est donc pas terrible sachant que je dois envoyer à 35 personnes ...
Y 'a t'il possibilité d'avoir un macro qui en appuyant sur un bouton envoie au auditeurs la carte qui leur est assignée ?
Merci d'avance ! :)
Merci pour votre réponse. La macro fonctionne mais fait bugger Excel dès que je clique sur un nom donc que j'envoie un seul mail. Cette méthode n'est donc pas terrible sachant que je dois envoyer à 35 personnes ...
Y 'a t'il possibilité d'avoir un macro qui en appuyant sur un bouton envoie au auditeurs la carte qui leur est assignée ?
Merci d'avance ! :)
Bonjour,
Ma macro fonctionne si le numéro de carte est toujours dans la colonne B ce qui est normal car on lui dit d'envoyer l'onglet dont le numéro se trouve colonne B :
Comment faire en sorte qu'il récupère le numéro de carte dans la bonne case sachant que la colonne varie selon la personne à qui on veut envoyer le mail ?
Ma macro fonctionne si le numéro de carte est toujours dans la colonne B ce qui est normal car on lui dit d'envoyer l'onglet dont le numéro se trouve colonne B :
sOnglet = Range("B" & Target.Row).Value.
Comment faire en sorte qu'il récupère le numéro de carte dans la bonne case sachant que la colonne varie selon la personne à qui on veut envoyer le mail ?
Bonjour,
Vous avez le numero dans colonne B ou K ou T ou AC ou AL suivant la personne. Testez les cellules de la iigne et prenez celle qui a un numero puisqu' il n'y en a qu'une qui a un numero
Vous avez le numero dans colonne B ou K ou T ou AC ou AL suivant la personne. Testez les cellules de la iigne et prenez celle qui a un numero puisqu' il n'y en a qu'une qui a un numero
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mon problème est pour écrire le code correspondant au test...
On modifie la définition de l'onglet ?
Je suis un peu perdue ...
On modifie la définition de l'onglet ?
sOnglet = Range("B" & Target.Row).Value
Je suis un peu perdue ...
Re,
une facon de faire, ai repris un peu votre code:
A+
une facon de faire, ai repris un peu votre code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim sOnglet As String
Dim sAdresseMail As String
Dim sTexteMail As String, lig As Integer
Dim TNcarte, Point As Byte, LCol As String
If Not Application.Intersect(Target, Range("A5:A209")) Is Nothing And Target.Count = 1 And Target.Value <> "" Then
Cancel = True
'tableau colonne Num Carte
TNcarte = Array("B", "K", "T", "AC", "AL")
lig = Target.Row
LCol = ""
'boucle de recherche Num Carte
For Point = 0 To 4
If Cells(lig, TNcarte(Point)) <> Empty Then
LCol = TNcarte(Point)
Exit For
End If
Next Point
' test si trouve
If LCol <> "" Then
sOnglet = Range(LCol & lig).Value
Else
MsgBox "Veuillez renseigner le n° de carte (cellule " & LCol & lig & ")", vbExclamation
Exit Sub
End If
sAdresseMail = Range("AU" & lig).Value
If sAdresseMail = "" Then
MsgBox "Veuillez renseigner l'adresse mail (cellule AU" & lig & ")", vbExclamation
Exit Sub
End If
sTexteMail = Range("AV" & lig).Value
If sTexteMail = "" Then
MsgBox "Veuillez renseigner le texte du mail (cellule AV" & lig & ")", vbExclamation
Exit Sub
End If
EnvoiMail sOnglet, sAdresseMail, sTexteMail
End If
End Sub
A+