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

Macros et VBA Excel Discussion :

combobox en cascade [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour avenir80,

    Où en es-tu dans ton projet ?

    Sinon est-ce qu'il t'es possible dans mettre en pièce jointe un fichier exemple, cela sera plus facile pour t'aider.

  2. #2
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 27
    Par défaut
    bonjour nec14,
    merci de prendre des nouvelles, ben je patauge toujours, tous les essais que je fais en changeant mon code ne remplissent pas les autres contrôles.
    Pourquoi me redemandes-tu un fichier exemple, je t'avais dit que je l'avais mis avec mon premier message, il en faudrait plus? Le reste de mon code est la 1° partie avec un autre onglet sur mon usf pour remplir les classeurs avec d'autres contrôles.
    Sincèrement

  3. #3
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 27
    Par défaut bonjour nec14
    Excuse-moi, je n'ai pas trop eu le temps de te répondre.
    Ton code n'est pas exactement ce que je dois faire.
    J'ai réussi à faire ceci qui fonctionne, mais l'inconvénient c'est que la valeur dans le combobox51 reste toujours par défaut.
    Vois-tu mon erreur?

    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
    Private Sub UserForm_Initialize()
    Set MonDico = CreateObject("Scripting.Dictionary")
    For Each c In Range(Sheets(ComboBox50.Value)([A10], [A65000].End(xlUp)))
    If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value
    Next c
    temp = MonDico.items
    Me.ComboBox51.List = temp
    Me.ComboBox51.ListIndex = 0
     
    Public Sub ComboBox51_Click()
    Workbooks("Etudes.xls").Sheets(ComboBox50.Value).Activate
    Set MonDico = CreateObject("Scripting.Dictionary")
    For Each c In Range([A10], [A65536].End(xlUp))
    If c = Me.ComboBox51 Then
    If Not MonDico.Exists(c.Offset(0, 1).Value) Then
    MonDico.Add c.Offset(0, 1).Value, c.Offset(0, 1).Value
    End If
    Next c
    temp = MonDico.items
    Me.ComboBox53.List = temp
    End If
    End sub
     
    Private Sub ComboBox53_Click()
    Set MonDico = CreateObject("Scripting.Dictionary")
    For Each c In Range([B10], [B65536].End(xlUp))
    If c = Me.ComboBox53 Then
    If Not MonDico.Exists(c.Offset(0, 1).Value) Then
    MonDico.Add c.Offset(0, 1).Value, c.Offset(0, 1).Value
    End If
    End If
    Next c
    Me.ComboBox70.List = MonDico.items
    End sub
     
    Private Sub ComboBox70_Change()
    Set MonDico = CreateObject("Scripting.Dictionary")
    With Range("C10:C" + CStr(Range("C65536").End(xlUp).Row))
    Set c = .Find(ComboBox70.Value, LookIn:=xlValues)
    If Not c Is Nothing Then
    TextBox52 = c.Offset(0, 1).Value
    TextBox55 = c.Offset(0, 2).Value
    TextBox56 = c.Offset(0, 3).Value
    TextBox71 = c.Offset(0, 4).Value
    TextBox72 = c.Offset(0, 5).Value
    TextBox68 = c.Offset(0, 6).Value
    End If
    End With
    End sub
    Sincèrement

  4. #4
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 27
    Par défaut Merci à nec14 et à mercator
    Bonjour au forum,
    en piochant, j'ai trouvé ma solution donc je la mets pour que cela serve à d'autres.

    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
    Private Sub ComboBox50_Click()
                                    Set f = Sheets(ComboBox50.Value)
                                    Set MonDico = CreateObject("Scripting.Dictionary")
                                    For Each c In Range(f.[A10], f.[A65536].End(xlUp))
                                    MonDico(c.Value) = c.Value
                                    Next c
                                    Me.ComboBox51.List = MonDico.items
    End Sub
     
     
    Private Sub ComboBox51_Click()
          Workbooks("Etudes.xls").Sheets(ComboBox50.Value).Activate
          Set MonDico = CreateObject("Scripting.Dictionary")
          For Each c In Range(f.[A10], f.[A65536].End(xlUp))
          If c = Me.ComboBox51 Then MonDico(c.Offset(, 1).Value)_
          = c.Offset(, 1).Value
          Next c                    
          Me.ComboBox53.List = MonDico.items
    End Sub
     
    Private Sub ComboBox53_Change()
              Set MonDico = CreateObject("Scripting.Dictionary")
              For Each c In Range(f.[A10], f.[A65536].End(xlUp))
              If c = Me.ComboBox51 And c.Offset(, 1) = Me.ComboBox53 Then_
              MonDico(c.Offset(, 2).Value) = c.Offset(, 2).Value
              Next c
              Me.ComboBox70.List = MonDico.items
    End Sub
     
    Private Sub ComboBox70_Change()
                   Set MonDico = CreateObject("Scripting.Dictionary")
                   With Range("C10:C" + CStr(Range("C65536").End(xlUp).Row))
                   Set c = .Find(ComboBox70.Value, LookIn:=xlValues)
                   If Not c Is Nothing Then
                  TextBox52 = c.Offset(0, 1).Value
                  TextBox55 = c.Offset(0, 2).Value
                  TextBox56 = c.Offset(0, 3).Value
                  TextBox71 = c.Offset(0, 4).Value
                  TextBox72 = c.Offset(0, 5).Value
                  TextBox68 = c.Offset(0, 6).Value
                  End If
                  End With
    End Sub

    A bientôt, j'avance tout doucement dans mon projet, et encore merci

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

Discussions similaires

  1. Probleme ComboBox en cascade
    Par YOP33 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 17/01/2010, 15h08
  2. fonction pour filtrage avec des combobox en cascade
    Par Montor dans le forum Contribuez
    Réponses: 3
    Dernier message: 09/11/2009, 12h05
  3. [E-00] ComboBox en cascade + TextBox
    Par couistelle dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 20/11/2008, 10h32
  4. Combobox en cascade et sans doublons
    Par humbp dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/11/2007, 13h54
  5. [VBA-E] ComboBox en cascade avec correspondance dans matrice
    Par ViperSpy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/06/2006, 17h01

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