Liste de diffusion de Messagerie

lolo54

XLDnaute Nouveau
Bonjour,

j'ai déjà fait appel aux experts de ce forum lesquels m'ont apporté leur expertise pour écrire du code VBA
à l'intérieur d'un classeur pour pouvoir regrouper des adresses de messagerie en fonction d'un type de document particulier.
Je souhaiterai améliorer ce projet.

J'ai créé un classeur excel nommé : ProjetDiffusion.xls au format 97-2003 que je joins à cette discussion.

Dans ce classeur on trouve une feuille nommée :

- CIRCUIT

Pour être simple dans mon explication :
dans la feuille CIRCUIT:
en A4:A33 figurent les types de documents à diffuser;
en B1:AE3 figurent les destinataires concernés / le nom du destinataire / la ou les adresse(s) émail;
dans la zone B4:AE33 est précisé le chiffre 1 pour indiquer le ou les types de documents à transmettre à chaque destinataire. Les destinataires et les adresses émail changent assez souvent.

mon voeu :
Etant placé dans dans n'importe laquelle des cellules de la zone A4:A33 et sur double clic dans l'une des cellules, obtenir la copie (dans le presse-papier de Windows) du regroupement des adresses e-mèl de la ligne concernée.
Exemple :
Je souhaite avoir dans le presse-papier de Windows le regroupement des adresses emèl des destinataires concernés par le document 1 - DOC
je dois avoir dans le presse-papier de Windows les adresses e-mèl suivantes:
dupont@free.fr; durand@hotmail.fr; carton@caramail.com;
Vous l'aurez compris, Il suffira alors de copier le contenu de chaque cellule et la copier dans la zone destinataire du logiciel de messagerie.


merci d'avance pour vos lumières.


lolo54
 

Pièces jointes

  • ProjetDiffusion.xls
    43 KB · Affichages: 50
  • ProjetDiffusion.xls
    43 KB · Affichages: 56
  • ProjetDiffusion.xls
    43 KB · Affichages: 54

lolo54

XLDnaute Nouveau
Re : Liste de diffusion de Messagerie

autant pour moi :

au lieu de :
Vous l'aurez compris, Il suffira alors de copier le contenu de chaque cellule et la copier dans la zone destinataire du logiciel de messagerie.
il convient de lire :
Vous l'aurez compris, Il suffira alors de coller le contenu du presse-papier dans la zone destinataire du logiciel de messagerie.
 

pyfux

XLDnaute Occasionnel
Re : Liste de diffusion de Messagerie

Bonjour,

Es-ce normal que ligne n°3 il y a plusieurs adresses de courriel?
Quel est votre client de messagerie? (Outlook,Outlook express...)
Vous parlez de circuit de validation, où se trouve la notion de circuit dans votre fichier?
Quel est le cadre d'utilisation de cet outil?

++
Pyfux
 

lolo54

XLDnaute Nouveau
Re : Liste de diffusion de Messagerie

Bonjour Pyfux,

que de questions...
Merci pour cette réponse dont j'ai depuis 90 % de la solution.
Cette liste de diffusion est utilisée pour transférer des documents préformatés à un ou plusieurs destinataires concernés.
Par exemple :
au lieu de DOC1 on va préciser cartes de voeux 2013 et dans les entêtes de colonnes au lieu de boite 1 on va écrire Famille DUPONT et dans la boite 3 Famille DURAND on va aussi pouvoir préciser une ou plusieurs adresses dans les cellules concernées (dans ce cas il ne faudra pas oublier d'ajouter après chaque adresse un point-virgule et un espace).
Ensuite tout double-clic opéré sur le type de document entrainera la copie de l'ensemble des adresses dans le presse-papier de Windows qu'il suffira de coller dans la zone des adresses dans le logiciel de messagerie.

Voilà pour les explications.

@+

lolo54

:)
 

pyfux

XLDnaute Occasionnel
Re : Liste de diffusion de Messagerie

Bonjour,

Vite fait:
Code:
Dim loSheet As Worksheet
Set loSheet = ActiveSheet

Dim loCell As Range
Set loCell = ActiveCell

Dim llRow As Long
llRow = loCell.Row

Dim sDoc As String
sDoc = loSheet.Range("A" + CStr(llRow)).Value

Dim loCellMax As Range
loSheet.Range("B1").Select
Selection.End(xlToRight).Select
Set loCellMax = ActiveCell

loCell.Activate

Dim lsCourriel As String
Dim llCol As Long

For llCol = 2 To loCellMax.Column
    If loSheet.Cells(llRow, llCol).Value = 1 Then
        lsCourriel = loSheet.Cells(3, llCol).Value + lsCourriel
    End If
Next
    
Debug.Print lsCourriel

Set MyData = New DataObject
MyData.SetText lsCourriel
MyData.PutInClipboard

Notez: toutes les adresses de courriel doivent finir par ;

++
Pyfux
 

Pièces jointes

  • ProjetDiffusion.xlsm
    23.4 KB · Affichages: 32
  • ProjetDiffusion.xlsm
    23.4 KB · Affichages: 34
  • ProjetDiffusion.xlsm
    23.4 KB · Affichages: 37
Dernière édition:

pyfux

XLDnaute Occasionnel
Re : Liste de diffusion de Messagerie

Bonsoir,

Le double-click est utile pour entrer en saisie de la cellule sur laquelle il est effectué. Ma macro dans ce cas ne fonctionnera pas (à priori).
C'est vrai que faire CTRL+m cela est contraignant.
Pourquoi ne pas associer cette macro à l'appuie sur la touche "windows" ?
Ou sur le bouton power de votre UC ? :)

Allez, courage.
 

pyfux

XLDnaute Occasionnel
Re : Liste de diffusion de Messagerie

Allez,

je suis pas un méchant:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Launch
End Sub

++
 

Pièces jointes

  • ProjetDiffusion.xlsm
    24.3 KB · Affichages: 34
  • ProjetDiffusion.xlsm
    24.3 KB · Affichages: 37
  • ProjetDiffusion.xlsm
    24.3 KB · Affichages: 35

lolo54

XLDnaute Nouveau
Re-salut pyfux,

excellent travail mais il reste un point perfectible :

pourquoi juste après le double-clic je me retrouve brutalement placé en colonne AB ce qui va obliger l'utilisateur à prendre l'ascenseur pour se placer en colonne B.

Voilà c'est tout et encore merci pour ton aide.


cordialement


lolo54

:)
 

pyfux

XLDnaute Occasionnel
Re : Liste de diffusion de Messagerie

Bonsoir,

C'est parce que je change de cellule active afin de déterminer la largeur du tableau. Lorsque je reviens à la cellule sur laquelle le double-click a été réalisé, Excel recentre la feuille.
Il y a certainement une solution mais faut que je cherche.
Sorry
 

Discussions similaires

Réponses
2
Affichages
241

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote