Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Export contenu ListBox vers Word

bilbinou

XLDnaute Nouveau
Bonjour à toute la communauté !!
Je suis nouveau sur ce forum et je débute aussi depuis quelques jours le language VBA donc j'espère que j'arriverai à trouver ici la solution à mon problème.

Le problème que je rencontre est à propos d'une ListBox. J'aimerai exporter depuis excel LES lignes sélectionnées par l'utilisateur d'une ListBox vers un signet se trouvant dans un document word déjà ouvert. J'arrive à exporter une ligne de la listBox vers le signet Word mais pas plusieurs lignes de la listBox. Quel est le code VBA qu'il faut écrire pour pouvoir exporter toutes les lignes sélectionnées par l'utilisateur ?

Je joins une capture d'écran du problème

Merci d'avance pour l'aide que vous pourrez m'apporter. En espérant que certains pourront m'aider
 

Pièces jointes

  • Problème export contenu ListBox.JPG
    122.2 KB · Affichages: 32
Solution
Bonsoir bilbinou, bienvenue sur XLD,
J'arrive à exporter une ligne de la listBox vers le signet Word mais pas plusieurs lignes de la listBox.
Donc vous avez su créer l'objet Wdoc représentant le document Word et le code VBA du genre :
VB:
Wdoc.Bookmarks("toto").Range = x
toto étant le nom du signet.

Alors complétez ce code ainsi :
Code:
With ActiveSheet.OLEObjects("ListBox1").Object
    For i = 0 To .ListCount - 1
        If .Selected(i) Then x = x & vbLf & .List(i)
    Next
End With
x = Mid(x, 2)
Wdoc.Bookmarks("toto").Range = x
Si vous n'y arrivez pas joignez les fichiers et votre macro.

A+

job75

XLDnaute Barbatruc
Bonsoir bilbinou, bienvenue sur XLD,
J'arrive à exporter une ligne de la listBox vers le signet Word mais pas plusieurs lignes de la listBox.
Donc vous avez su créer l'objet Wdoc représentant le document Word et le code VBA du genre :
VB:
Wdoc.Bookmarks("toto").Range = x
toto étant le nom du signet.

Alors complétez ce code ainsi :
Code:
With ActiveSheet.OLEObjects("ListBox1").Object
    For i = 0 To .ListCount - 1
        If .Selected(i) Then x = x & vbLf & .List(i)
    Next
End With
x = Mid(x, 2)
Wdoc.Bookmarks("toto").Range = x
Si vous n'y arrivez pas joignez les fichiers et votre macro.

A+
 

bilbinou

XLDnaute Nouveau
Bonjour job75 ,

Merci de votre retour rapide et efficace !! J'ai intégré votre partie de code à ma macro et elle marche parfaitement !
Cependant, quelle est la fonctionnalité de " x = Mid(x , 2) ?

Merci encore à vous pour cette précieuse aide et bonne continuation !!
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…