Mettre a jour un liste déroulant WORD via un fichier EXCEL

chaelie2015

XLDnaute Accro
Bonjour forum

Je souhaite alimenter (mettre a jour) ma liste déroulante dans un fichier WORD via une liste dans un fichier EXCEL.

EXEMPLE : Si je rajoute une donnée dans la liste (colonne A) de fichier EXCEL, cette donnée s’ajoutera automatiquement dans la liste déroulante de WORD.

Merci
 

Pièces jointes

  • charlie liste deroulante.xlsx
    8.4 KB · Affichages: 19
  • charlie liste deroulante.zip
    11.5 KB · Affichages: 19

job75

XLDnaute Barbatruc
Bonjour chaelie2015,

Voyez ces fichiers zippés et la macro :
Code:
Sub ListeWord()
Dim a, o As Object, i&
With Feuil1 'CodeName
    a = .Range("A2", .Range("A" & Rows.Count).End(xlUp))
End With
Set o = CreateObject(ThisWorkbook.Path & "\charlie liste deroulante.docx") 'à adapter
o.Parent.Visible = True
With o.ContentControls(1)
    .DropdownListEntries.Clear 'RAZ
    For i = 1 To UBound(a)
        .DropdownListEntries.Add a(i, 1)
    Next
End With
AppActivate o.Parent.Caption
End Sub
A+
 

Pièces jointes

  • charlie liste deroulante(1).zip
    32.4 KB · Affichages: 26
Dernière édition:

chaelie2015

XLDnaute Accro
Bonjour chaelie2015,

Voyez ces fichiers zippés et la macro :
Code:
Sub ListeWord()
Dim a, o As Object, i&
With Feuil1 'CodeName
    a = .Range("A2", .Range("A" & Rows.Count).End(xlUp))
End With
Set o = CreateObject(ThisWorkbook.Path & "\charlie liste deroulante.docx") 'à adapter
o.Parent.Visible = True
With o.ContentControls(1)
    .DropdownListEntries.Clear 'RAZ
    For i = 1 To UBound(a)
        .DropdownListEntries.Add a(i, 1)
        .DropdownListEntries = a
    Next
End With
AppActivate o.Parent.Caption
End Sub
A+
Re
merci pour le fichier
J’ai un message d’erreur d’exécution 438
Propriété ou méthode non gérée par cet objet

.DropdownListEntries = a


a+
 

chaelie2015

XLDnaute Accro
Re,

Oui j'avais mis cette instruction pour tester, je corrige mon post #2.

A+
Re
je souhaite généraliser ton code c-a-d
dans le fichier Word j'ai plusieurs liste déroulantes je souhaite les alimenter par le fichier excel chaque colonne sa liste déroulante Word
colonne A pour la liste déroulante SITE dans le Word
colonne C pour la liste déroulante NOM dans le Word
ETC.......
a+
 

job75

XLDnaute Barbatruc
Bonjour chaelie2015,

Il suffit d'ajouter une boucle pour étudier les zones/contrôles :
Code:
Sub ListesWord()
Dim P As Range, n As Byte, o As Object, i&
With Feuil1 'CodeName
    Set P = Union(.Range("A2", .Range("A" & .Rows.Count).End(xlUp)), _
        .Range("C2", .Range("C" & .Rows.Count).End(xlUp)), _
            .Range("E2", .Range("E" & .Rows.Count).End(xlUp)))
End With
Set o = CreateObject(ThisWorkbook.Path & "\charlie liste deroulante.docx") 'à adapter
o.Parent.Visible = True
For n = 1 To P.Areas.Count
    With o.ContentControls(n) 'autant de contrôles que de zones
        .DropdownListEntries.Clear 'RAZ
        For i = 1 To P.Areas(n).Count
            .DropdownListEntries.Add P.Areas(n)(i).Text
        Next
    End With
Next
AppActivate o.Parent.Caption
End Sub
Fichier (2).

A+
 

Pièces jointes

  • charlie liste deroulante(2).zip
    37.2 KB · Affichages: 36

chaelie2015

XLDnaute Accro
Bonjour chaelie2015,

Il suffit d'ajouter une boucle pour étudier les zones/contrôles :
Code:
Sub ListesWord()
Dim P As Range, n As Byte, o As Object, i&
With Feuil1 'CodeName
    Set P = Union(.Range("A2", .Range("A" & .Rows.Count).End(xlUp)), _
        .Range("C2", .Range("C" & .Rows.Count).End(xlUp)), _
            .Range("E2", .Range("E" & .Rows.Count).End(xlUp)))
End With
Set o = CreateObject(ThisWorkbook.Path & "\charlie liste deroulante.docx") 'à adapter
o.Parent.Visible = True
For n = 1 To P.Areas.Count
    With o.ContentControls(n) 'autant de contrôles que de zones
        .DropdownListEntries.Clear 'RAZ
        For i = 1 To P.Areas(n).Count
            .DropdownListEntries.Add P.Areas(n)(i).Text
        Next
    End With
Next
AppActivate o.Parent.Caption
End Sub
Fichier (2).

A+
Bonjour JOB75
j'ai trouvé un autre souci dans l’exécution , c'est les doublons dans la liste word ??
il n'accepte pas les doublons ?????
a+
 

supercopain

XLDnaute Junior
Bonjour JOB75
j'ai trouvé un autre souci dans l’exécution , c'est les doublons dans la liste word ??
il n'accepte pas les doublons ?????
a+


Bonjour,
Je cherche à utiliser cette macro dans un formulaire word , mais ...
L'ajout de listes alimentée par un tableau excel ne fonctionne pas en cas de doublon dans le tableur excel, j'ai aussi un problème lorsque j'ajoute des champs 'Date' et des 'zones de texte' au lancement de la macro je reçois un message d'erreur d'execution '6189'

Merci pour votre aide
 

supercopain

XLDnaute Junior
Bonjour supercopain, bienvenue sur XLD,

chaelie2015 a posé la même question, je n'ai pas répondu car il est évident qu'il suffit d'éliminer les doublons.

A+

Bonjour,
merci pour votre réponse
Dans mon formulaire je souhaite ajouter des autre contrôle tel que "insérez une image" ou "choisir une date" ou alors des simple champ pour du texte.
j'ai essayé avec l'ajout de colonne dans l'Excel et la macro mais j'ai toujours le même message d'erreur ".DropdownListEntries.Clear"

Merci beaucoup pour votre aide
 

Discussions similaires

  • Résolu(e)
Microsoft 365 Menu déroulant
Réponses
3
Affichages
221

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 871
dernier inscrit
Maïmanko