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

VBA Word Discussion :

Combox via Excel


Sujet :

VBA Word

  1. #21
    Candidat au Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2020
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Juillet 2020
    Messages : 16
    Points : 3
    Points
    3
    Par défaut
    Merci, mais ce n'est pas ce que je cherche à reproduire...

    Je n'ai pas besoin de listbox, encore une fois ceci est juste un exemple pour pouvoir refaire le code sur mon projet existant, mon projet de comporte pas de listbox et encore moins de "région, de villes etc"... c'est juste avoir un exemple de code à reproduire.

    Pour ce qui est d'insérer les items choisi sur des signets, j'ai déjà trouver le code.

    Ce que je cherche vraiment c'est ce que vous avez reproduit dans votre exemple plus haut, sur l'image ci dessous, mais en word.

    Nom : Capture.JPG
Affichages : 81
Taille : 21,0 Ko


    Merci

  2. #22
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Max2Gr Voir le message

    Soit la série de tableaux structurés comme dans ce vidage d'écran :
    Nb : Les champs ne contenant que des chiffres comme le département sont précédés du signe ' pour les typer alphanumériques.


    Pièce jointe 574827

    Dans un module standard du document :

    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
     
    Option Explicit
     
    Public MatriceRegions() As Variant, MatriceDep() As Variant, MatriceVilles() As Variant, MatriceCodes() As Variant
     
    Sub LancerLaBoiteDeDialogue()
     
    Dim IndexRegions As Integer
     
        Application.ScreenUpdating = False
        ChargerLesMatrices
        Application.ScreenUpdating = True
     
        With UserForm1
     
             .ComboBoxRegions.Clear
             .ComboBoxDep.Clear
             .ComboBoxVilles.Clear
             .ComboBoxCodes.Clear
     
             For IndexRegions = LBound(MatriceRegions) To UBound(MatriceRegions)
                 .ComboBoxRegions.AddItem MatriceRegions(IndexRegions)
             Next IndexRegions
             .ComboBoxRegions.ListIndex = -1
     
             .Show
     
        End With
     
    End Sub
     
     
    Sub ChargerLesMatrices()
     
    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
    Dim AireRegion As Excel.Range, AireDep As Excel.Range, AireVilles As Excel.Range, AireCodes As Excel.Range
     
     
            On Error GoTo Fin:
     
            Chemin = ActiveDocument.Path & "\Base de données.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
                 Set AireRegion = .ListObjects("TableRegions").DataBodyRange
     
                 ReDim MatriceRegions(AireRegion.Count - 1)
                 For J = 1 To AireRegion.Count
                     MatriceRegions(J - 1) = AireRegion(J).Value
                 Next J
     
                 Set AireDep = .ListObjects("TableDep").ListColumns(1).DataBodyRange
                 ReDim MatriceDep(AireDep.Count - 1, 1)
                 For J = 1 To AireDep.Count
                     MatriceDep(J - 1, 0) = AireDep(J).Value
                     MatriceDep(J - 1, 1) = AireDep(J).Offset(0, 1).Value
                 Next J
     
                 Set AireVilles = .ListObjects("TableVilles").ListColumns(1).DataBodyRange
                 ReDim MatriceVilles(AireVilles.Count - 1, 1)
                 For J = 1 To AireVilles.Count
                     MatriceVilles(J - 1, 0) = AireVilles(J).Value
                     MatriceVilles(J - 1, 1) = AireVilles(J).Offset(0, 1).Value
                 Next J
     
                 Set AireCodes = .ListObjects("TableDesCodes").ListColumns(1).DataBodyRange
                 ReDim MatriceCodes(AireCodes.Count - 1, 3)
                 For J = 1 To AireCodes.Count
                     MatriceCodes(J - 1, 0) = AireCodes(J).Value
                     MatriceCodes(J - 1, 1) = AireCodes(J).Offset(0, 1).Value
                     MatriceCodes(J - 1, 2) = AireCodes(J).Offset(0, 2).Value
                     MatriceCodes(J - 1, 3) = AireCodes(J).Offset(0, 3).Value
                 Next J
     
            End With
     
            GoTo Fin:
     
    Fin:
     
            xlWb.Close savechanges:=False
            xlApp.Quit
     
            Set AireRegion = Nothing
            Set AireDep = Nothing
            Set AireVilles = Nothing
            Set AireCodes = Nothing
            Set xlWs = Nothing
            Set xlWb = Nothing
            Set xlApp = Nothing
     
    End Sub

    Dans ThisDocument :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Document_Open()
     
          LancerLaBoiteDeDialogue
     
    End Sub


    A l'ouverture du document, la boite de dialogue donnerait cela :

    Pièce jointe 574828

    Dans le module de la boite de dialogue :
    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
     
    Option Explicit
     
     
    Private Sub ComboBoxRegions_Change()
     
    Dim I As Long
     
            Me.ComboBoxDep.Clear
            Me.ComboBoxVilles.Clear
            Me.ComboBoxCodes.Clear
     
            For I = LBound(MatriceDep, 1) To UBound(MatriceDep, 1)
                If MatriceDep(I, 0) = Me.ComboBoxRegions.Value Then
                   ComboBoxDep.AddItem MatriceDep(I, 1)
                End If
            Next I
     
    End Sub
     
     
    Private Sub ComboBoxDep_Change()
     
    Dim I As Long
     
            Me.ComboBoxVilles.Clear
            Me.ComboBoxCodes.Clear
     
            For I = LBound(MatriceVilles, 1) To UBound(MatriceVilles, 1)
                If CStr(MatriceVilles(I, 0)) = CStr(Me.ComboBoxDep.Value) Then
                   ComboBoxVilles.AddItem MatriceVilles(I, 1)
                End If
            Next I
     
    End Sub
     
    Private Sub ComboBoxVilles_Change()
     
    Dim I As Long
     
            Me.ComboBoxCodes.Clear
     
            For I = LBound(MatriceCodes, 1) To UBound(MatriceCodes, 1)
                If CStr(MatriceCodes(I, 1)) = CStr(Me.ComboBoxDep.Value) And MatriceCodes(I, 2) = Me.ComboBoxVilles.Value Then
                   ComboBoxCodes.AddItem MatriceCodes(I, 3)
                End If
            Next I
     
    End Sub

  3. #23
    Candidat au Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2020
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Juillet 2020
    Messages : 16
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Ceci m'a l'air super !!!

    Pouvez vous me joindre les fichier avec ?

    En tous cas merci énormément, je m'empresse de le tester !

  4. #24
    Candidat au Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2020
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Juillet 2020
    Messages : 16
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    j'ai un débogage au moment de l'action "L'indice n'appartient pas à la sélection"

    Nom : Capture.JPG
Affichages : 74
Taille : 73,6 Ko

    Auriez vous le fichier excel de façon à représenter à l'identique ce que vous avez fait ?

    Merci

  5. #25
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Max2Gr Voir le message
    Bonjour,

    Il vous faut apprendre à travailler avec des tableaux structurés.

  6. #26
    Candidat au Club
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2020
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Juillet 2020
    Messages : 16
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    C'est parfait !! je vais maintenant essayer de l'intégrer à mon projet

    Un grand merci à vous pour votre aide et votre réactivité

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/08/2006, 15h21
  2. Réponses: 1
    Dernier message: 09/03/2006, 18h15
  3. Naviguer sur Internet via Excel
    Par Mickaël|Mitch dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/12/2005, 18h19
  4. Connexion base SQL via Excel
    Par dp_favresa dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/01/2005, 14h32
  5. [FireBird] Accéder à une vue via Excel
    Par Vonotar dans le forum Débuter
    Réponses: 1
    Dernier message: 07/12/2004, 09h31

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