[Catégorie modifiée .Net -> VBA] VBA copier éléments listbox vers une cellule

wiidle Messages postés 16 Date d'inscription mardi 3 mai 2011 Statut Membre Dernière intervention 5 octobre 2011 - 2 mai 2011 à 17:15
wiidle Messages postés 16 Date d'inscription mardi 3 mai 2011 Statut Membre Dernière intervention 5 octobre 2011 - 3 mai 2011 à 10:14
Bonjour et à l'aide SVP.

Je viens vers vous car j'ai éplucher le web mais en vain.

J'essaie désespérément de copier les choix d'une listbox vers une cellule définie.

Je souhaite envoyer un mail via outlook depuis excel (sa j'y arrive!!!)
et pour choisir les destinataires je souhaiterais que l'utilisateur sélectionne les contacts dans une listbox (qui va chercher les données dans la feuille 2 (mail)).

Je souhaiterais qu'une fois les éléments sélectionnés, ils soient envoyés dans la cellule c4 de ma feuille 1 (qui pourrait d'ailleurs être incrémentées si il y a plusieurs messages à envoyer).

Il faudrait aussi que les choix soient séparés par des ; (pour que outlook puisse comprendre plusieurs destinataires si besoin est) (ou alors autre solution bienvenue évidemment!)

Le code ci-dessous ne marche malheureusement pas.
cela me fait apparaître la liste mais ne les copie pas !

Sub liste()

Dim i As Integer
Dim contact(1 To 15, 1 To 3) As String

Sheets("mail").Select
i = 1
While Range("a" & i) <> ""

contact(i, 1) = Range("a" & i)
contact(i, 2) = Range("b" & i)
contact(i, 3) = Range("c" & i)

i = i + 1

Wend

MaBoite.Show 0

Sheets("feuil1").Select

With ListBox1
For i = 0 To 3
Sheets("feuil1").Range("c" & i).Value = ListBox1.List(ListBox1.ListIndex)

Next i

End With

End Sub


Voili voilo,
Je vous remercie par avance de vous pencher sur ma question.

PS : au début je défini mon tableau et i =0 to 15 mais je préférerais qu'il aille jusque la fin de mes données contacts.

Merci à vous.

/!\ rrrrrrrrrrrrr /!\

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
2 mai 2011 à 19:48
Salut

Avant de cherche 'en vain' sur le web, faut penser à regarder dans l'aide :
- Les propriétés et évènements des objets y sont décrits
- il y a des exemples

Idée de départ à approfondir :
    Dim sTemp As String
    Dim r As Long
    With ListBox1
        sTemp = ""
        For r = 0 To (.ListCount - 1)
            If .Selected(r) Then
                sTemp = sTemp & ";" & .List(r)
            End If
        Next r
    End With
    If Len(sTemp) > 1 Then
        sTemp = Mid$(sTemp, 2)
    End If
    Range("A1").Value = sTemp

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
[img]http://allproj
0
wiidle Messages postés 16 Date d'inscription mardi 3 mai 2011 Statut Membre Dernière intervention 5 octobre 2011
3 mai 2011 à 10:14
Bonjour et merci de ta réponse,

Je suis novice en VBA et j'ai pourtant épluché votre site web, trouvé des exemples, mais pas réussi à faire ce que je souhaite.

Merci pour le code mais cependant y'a encore des tits problèmes.

J'ai un bug au niveau :
For r = 0 To (.ListCount - 1)
--> erreur exécution 424 : objet requis.

Et aussi, je vais chercher les données listbox en feuille 2 et voudrais les mettre dans feuille 1.
dois-je faire un tit sheets("xxxx").select ?

Dernière question, a quoi sert le code chaine de caractère à la fin et que fait-il ?

Merci pour ton aide.

/!\ rrrrrrrrrrrrr /!\
0
Rejoignez-nous