Listbox vers variable (selections multiples)

Bonjour,

Je viens à bout de mes capacités pour peaufiner mon projet et vous demande de l'aide.

Je suis partie comme idée de créer un email Outlook à partir d'excel en lui injectant quelques données issues de sélections sur Userform, à savoir, une liste de destinataires en fonction des applications que j'aurai choisi et une description de l'application choisie.

Mon fichier Excel en PJ affiche un Userform après clic sur le bouton en feuil1.

Le Userform contient 2 ListBox, la ListBox1 qui récupère la colonneA de la feuille "listes" et la ListBox2 qui affiche la colonne B suivant le choix en ListBox1.

Le bouton du Userform sélectionne tous les résultats de la ListBox2 et les met en variable "Var_BCC" (enfin pas tout à fait)

Une autre variable "Var_App" est valorisée suivant le choix de ListBox1 (qui peut être multiple)

Mes problèmes :

- Ma ListBox2 affiche des doublons d'emails car répétitifs si je sélectionne plusieurs applications en ListBox1. Comment faire apparaitre un résultat sans doublons ?

- En cas de sélection multiple en ListBox1 et ListBox2, mes variables n'en tiennent pas compte et n'affichent qu'un choix dans le mail Outlook chargé par le Module1.

Exemple, au choix en ListBox1 de Application_1 et Application_2, la variable Var_App n'affichera qu'un des deux dans l'objet ou le corp du mail.

pareil pour les choix en ListBox2, la variable Var_BCC n'affichera qu'un email dans le champ CCi du mail

Comment avoir la totalité des mes choix des ListBox dans les variables ?

Aussi, je ne vois pas comment valoriser une variable avec le descriptif d'une Application en ListBox1.

Exemple, suivant l'application valorisée suite à la sélection en ListBox1, aller chercher dans la feuille "descriptif_app" son descriptif (colonne B correspondante) et le mettre dans une nouvelle variable.

Des idées ?

Merci d'avance pour votre aide.

18createemail.xlsm (30.06 Ko)

Bonjour,

petit fichier qui peut, peut-être, vous orienter vers une solution :

22listbox-maj.xlsm (22.72 Ko)

@ bientôt

LouReeD

Merci LouReeD

Mon problème va se situer dans la récupération des sélections multiples en listbox dans une variable pour qu'à l'affichage du mail il puisse les récupérer

Je n'y parviens que pour une sélection simple, des que j'en sélectionne plusieurs, il ne me les reprend pas

Au vu de mon fichier, vous vous retrouvez avec une sélection "validée" par une liste box sur une feuille.

Votre variable sera égale à cette plage de cellule de cette feuille, et pour parcourir la variable il suffit d'une boucle.

@ bientôt

LouReeD

Bonjour,

merci pour le fichier super détaillé.

J'arrive aussi à faire ressortir mes sélections sur une feuille à part mais mon problème reste inchangé.

je dois prendre le contenu de la listbox2 (ou de la feuille dans le cas de votre exemple) et le mettre en variable pour le faire ressortir sur le modèle de mail lorsque Outlook se lance.

La variable ne prend qu'un choix de la liste et non l'ensemble de mes sélections.

Bonsoir,

je comprend mieux le problème après lecture de votre code

Je crois que les variables définies comme public dans un USF ne sont public qu'au niveau de ce USF, du coup votre variable qui "se remplie" avec votre boucle en fonction des données de la liste box ne se répercute pas dans le code de création de l'email qui se trouve dans un module standard.

Première chose :

définir cette variable en Public au début de l'un des deux module standard.

Deuxième chose :*lorsque vous écrivez ceci :

For i = 0 To Me.ListBox2.ListCount - 1
ListBox2.Selected(i) = True
If ListBox2.Selected(i) = True Then
Var_BCC = ListBox2.List(i)
End If
Next i

En effet vous bouclez bien sur l'ensemble des valeurs de la liste box 2, mais votre variable n'étant pas un tableau elle ne prendra en valeur que la dernière itération

Si les adresses mails doivent être écrites les unes derrières les autres avec une séparation par un point virgule il faut alors le spécifier dans votre code :

For i = 0 To Me.ListBox2.ListCount - 1
ListBox2.Selected(i) = True
If ListBox2.Selected(i) = True Then
Var_BCC = Var_BBC & ListBox2.List(i) & ";"
End If
Next i

Avec ces deux points votre projet devrait avancer...

@ bientôt

LouReeD

Bonsoir,

La déclaration en publique dans l'USF me permet ensuite de la récupérer à partir du module de création d'email avec le code :

Var_BCC = UserForm1.Var_BCC

J'ai suivi les 2 consignes, la déclaration en public dans le module, ainsi que la modification du code pour pouvoir écrire les emails à la suite et séparés d'un point-virgule, mais sans succès. La variable dans l'email ne fait remonter que la dernière itération de la liste.

Bonjour,

veuillez trouver ci-joint le fichier modifié :

16createemail.xlsm (34.67 Ko)

A vous de l'adapter, car il n'y a que les destinataires en copie cachée...

@ bientôt

LouReeD

Merci LouReeD

j'ai pu adapter cela à mon fichier et enfin avoir mes sélections en variables !

Sans vouloir abuser de votre gentillesse, sauriez-vous m'orienter pour que ma sélection en listbox1 serve aussi pour récupérer d'autres informations.

Exemple de l'actuel :

Sélection d'un application en Listbox1 qui récupère les adresses emails correspondantes à l'application sur différentes lignes

l'attendu :

Sélection d'un application en Listbox1 qui récupère les adresses emails correspondantes à l'application sur différentes lignes

+

En fonction de l'application choisie en Listbox1, aller récupérer la valeur d'une autre cellule sur une autre feuille (exemple : le descriptif de l'application).

Faut-il que ce soit sur le meme programme ?

*je n'arrive pas à concevoir le programme dans cette optique

Bonsoir,

danse ce cas il faudrait un fichier... Je sais je suis pénible, mais j'ai du mal à "capter" !

Au moins un fichier qui montre le résultat attendu. En plus vous dites avoir adapté "mon code" sur votre fichier, du coup qu'Est-ce qu'il en reste ? C'est pourquoi, dans le vide, je vous demande un fichier...

@ bientôt

LouReeD

Bonsoir,

Oui je comprend tout à fait.

J'ajoute en PJ le fichier retouché.

Actuellement le lancement de la macro sous le bouton 'Charger email' lance le userform1, qui suivant le choix en listbox1 (nom de l'application), va récupérer la liste d'emails correspondante dans la feuille 'listes' et l'écrit dans la feuille 'temp' (pour qu'ensuite la variable récupère le contenu'.

Mon idée était de récupérer également la 'description de l'application équivalente au choix réalisé dans la listbox1, qui se trouve dans la feuille 'descriptif_app' et la mettre en variable

En résumé, le besoin, est que pour une application sélectionnée en ListBox1, je puisse récupérer la liste des emails (déjà fait et merci encore), tout comme la description de l'application que je ferai remonter ensuite dans l'email qui se lance.

Ma difficulté est dans la structure du code. J'ai du mal à imaginer la conception, vu qu'actuellement mon choix en listbox1 me sert déjà à récupérer les emails de l'application choisie.

merci de votre aide

Petit up si quelqu'un a une solution

Add-Type -AssemblyName System.Windows.Forms

while ($true)

{

$Pos = [System.Windows.Forms.Cursor]::Position

$x = ($pos.X % 500) + 1

$y = ($pos.Y % 500) + 1

[System.Windows.Forms.Cursor]::Position = New-Object System.Drawing.Point($x, $y)

Start-Sleep -Seconds 10

}

Rechercher des sujets similaires à "listbox variable selections multiples"