Word Menu déroulant msgbox dans un word

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

bonoboas

XLDnaute Occasionnel
Bonjour à tous,

Je bloque sur un sujet simple. Je souhaite mettre le contenu d'une liste déroulante dans un msgbox .

Merci d'avance pour votre aide
 

Pièces jointes

Maintenant sur Excel on peut par exemple concaténer les éléments d'une liste de validation.

Voyez le fichier joint et exécutez cette macro :
VB:
Sub Liste()
Dim mem$, f$, x$, c As Range, message$
With [A1] 'à adapter
    On Error Resume Next
    If .Validation.Type <> 3 Then Exit Sub 'il faut une liste
    On Error GoTo 0
    mem = .Formula
    .Formula = .Validation.Formula1 'copie la formule de validation
    x = .Formula
    .Formula = mem
End With
If IsError(Evaluate(x)) Then
    MsgBox x
Else
    For Each c In Evaluate(x)
        message = message & vbLf & c
    Next
    MsgBox Mid(message, 2)
End If
End Sub
 

Pièces jointes

Dernière édition:
Bien que ce ne soit pas le bon forum, voyez le fichier Word joint et la macro lancée par le bouton :
VB:
Sub Liste()
Dim c As ContentControl, n&, message$, i&
For Each c In ActiveDocument.ContentControls
    n = n + 1
    message = ""
    For i = 1 To c.DropdownListEntries.Count 'collection
        message = message & vbLf & c.DropdownListEntries(i)
    Next i
    If i > 1 Then MsgBox i - 1 & " éléments :" & vbLf & message, , "Contrôle " & n
Next c
End Sub
Tous les contrôles de contenu du document sont étudiés.
 

Pièces jointes

Bonjour Bonoboas,

Il vous faut transformer votre fichier en Docm.

Dans le module ThisDocument, 2 possibilités :
  • Soit à partir d'un événement sur le ContentControl
  • Soit à à partir du CommandButton.
VB:
Option Explicit

Private Sub CommandButton1_Click()

Dim I As Integer

    For I = 1 To ContentControls.Count
        With ContentControls(I)
             If .Title = "Demandeur" Then MsgBox .Range
        End With
    Next I


End Sub

Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)

  MsgBox ContentControl.Range
  Cancel = False
 
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
118
Réponses
72
Affichages
1 K
Réponses
22
Affichages
661
Réponses
14
Affichages
172
Retour