IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Word Discussion :

Liste déroulante dépendante de excel


Sujet :

Word

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    artiste peintre
    Inscrit en
    Mai 2017
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : artiste peintre
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2017
    Messages : 66
    Points : 39
    Points
    39
    Par défaut Liste déroulante dépendante de excel
    Bonjour à tous,

    je viens vers vous car j'ai un petit souci je connais certaines choses sur Excel mis sur le Word je débute.

    J'aurais voulu savoir comment je peux alimenter ma liste déroulante Word avec un tableau Excel colonne A je vous mets en fichier joint.

    Je n'arrive pas à vous fournir le fichier Word il refuse.

    En vous remerciant.

    Tadresses.xlsx

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par dubdub87000 Voir le message
    Bonjour,

    Une piste :
    Dans un module standard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
     
    Option Explicit
     
    ' La DLL Excel doit être cochée
     
    Public ListeCle As Variant, ListeElement As Variant
     
    Sub ChargerLaCombobox1()
     
    Dim J As Long, DerniereLigne As Long
    Dim Chemin As String
     
    Dim xlApp As Excel.Application 'Application Excel pour ouvrir un fichier XLS
    Dim xlWb As Excel.Workbook     'Classeur Excel
    Dim xlWs As Excel.Worksheet    'Feuille du classeur
     
            On Error GoTo Fin:
     
            Chemin = ActiveDocument.Path & "\Tadresses.xlsx" ' "\test.xlsx"
     
            Set xlApp = New Excel.Application
            Set xlWb = xlApp.Workbooks.Open(Chemin) 'Ouverture du fichier
            Set xlWs = xlWb.Worksheets(1)           'Utilisation de la première feuille
     
            With xlWs
                 DerniereLigne = .UsedRange.SpecialCells(xlCellTypeLastCell).Row
                 If DerniereLigne <= 2 Then GoTo Fin
                 ChargerEtTrierLaListe .Range("A2:A" & DerniereLigne)
            End With
     
            'Récupère les données triées de la matrice ListeCle
            With ThisDocument
                 .ComboBox1.Clear
                 For J = LBound(ListeCle) To UBound(ListeCle)
                     .ComboBox1.AddItem ListeCle(J)
                 Next J
                 .ComboBox1.ListIndex = 0
            End With
     
    Fin:
     
            xlWb.Close savechanges:=False
            xlApp.Quit
     
            Set xlWs = Nothing
            Set xlWb = Nothing
            Set xlApp = Nothing
     
    End Sub
     
     
     
    Sub ChargerEtTrierLaListe(ByVal AireCombo As Excel.Range)
     
    Dim CelluleCombo As Excel.Range
    Dim CtrI As Integer, CtrJ As Integer
    Dim Tempo1, Tempo2
    Dim MaListe As Object
     
        On Error GoTo FinDico
     
        Set MaListe = CreateObject("Scripting.Dictionary")
     
        ' Ajout des différents enregistrements sans doublons dans le Dico
        '-----------------------------------------------------------------
        For Each CelluleCombo In AireCombo
            If Trim(CelluleCombo.Value) <> "" Then
               If Not MaListe.Exists(CelluleCombo.Value) Then
                  MaListe.Add (CelluleCombo.Value), CStr(CelluleCombo.Value)
               End If
            End If
         Next CelluleCombo
     
         ListeCle = MaListe.Keys
         ListeElement = MaListe.Items
     
         ' Tri par ordre alphabétique
         '----------------------------
         For CtrI = 0 To MaListe.Count - 2
             For CtrJ = CtrI + 1 To MaListe.Count - 1
                 If ListeElement(CtrI) > ListeElement(CtrJ) Then
     
                    Tempo1 = ListeCle(CtrJ)
                    Tempo2 = ListeElement(CtrJ)
     
                    ListeElement(CtrJ) = ListeElement(CtrI)
                    ListeCle(CtrJ) = ListeCle(CtrI)
     
                    ListeCle(CtrI) = Tempo1
                    ListeElement(CtrI) = Tempo2
     
                 End If
              Next CtrJ
          Next CtrI
     
          GoTo FinDico
     
    FinDico:
     
      Set MaListe = Nothing
     
    End Sub
    Dans ThisDocument
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    Private Sub Document_Open()
              ChargerLaCombobox1
    End Sub
    Plutôt que de cocher la DLL Excel, il est possible de créer une instance Excel en late binding.

Discussions similaires

  1. Zone de liste déroulante dépendante et sous-formulaire
    Par Philosophine dans le forum Access
    Réponses: 6
    Dernier message: 24/10/2006, 22h41
  2. Réponses: 2
    Dernier message: 15/09/2006, 19h03
  3. Réponses: 3
    Dernier message: 30/06/2006, 22h56
  4. Réponses: 4
    Dernier message: 17/03/2006, 14h39
  5. Liste déroulante dépendante
    Par nanas dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/02/2005, 15h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo