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 :

utiliser une combobox a partir d'une autre combobox [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 89
    Points : 38
    Points
    38
    Par défaut utiliser une combobox a partir d'une autre combobox
    Bonjour,
    dans le cadre de mon travail, je dois effectuer une petite macro, mais je coince un peu.

    dans une userform j'ai une combobox qui détermine les différents sites mais j'ai une deuxième combobox qui détermine les bâtiments du site


    comment faire pour affecter une liste de bâtiment par rapport a un site
    sachant qu'il n'est pas vrai a chaque fois???

    merci d'avance

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour;
    Où est situé la liste des "Sites " et la liste des "Batiment".
    Tu devrais avoir une liste des batiments qui font référence a un site ?
    Tu dis...

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 89
    Points : 38
    Points
    38
    Par défaut
    la liste des sites et des batiments sont situés sur une feuille exel.
    j'ai creer une liste de batiment pour chaque site en nomment les cellules

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Avec tout les renseignements que tu donne..
    Un nouveau UF, tu colle 2 combos que tu nomme Combo1 et Combo2
    dans le module de l'UF tu colle le code ci-dessous
    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
    Option Explicit
     
    Private Sub Combo1_Change()
    Dim cel As Range
        Combo2.Clear
        For Each cel In Sheets("Feuil1").Range(Combo1.List(Combo1.ListIndex, 2))
            Combo2.AddItem cel
        Next cel
        Combo2.ListIndex = 0
    End Sub
     
    Private Sub UserForm_Initialize()
    Dim Lig As Long
    Dim Ad As String, Txt As String
    Dim DerLig As Long
        Combo1.ColumnCount = 2
        Combo1.ColumnWidths = CStr(Combo1.Width - 5) & ";0"
        With Sheets("Feuil1")
            DerLig = .Range("B65536").End(xlUp).Row + 1
            For Lig = 5 To DerLig
                If .Cells(Lig, 1) <> "" Or Lig = DerLig Then
                    If Txt = "" Then
                        Txt = .Cells(Lig, 1)
                        Ad = "B" & Lig
                    Else
                        Ad = Ad & ":B" & Lig - 1
                        Combo1.AddItem Txt
                        Combo1.List(Combo1.ListCount - 1, 2) = Ad
                        Txt = .Cells(Lig, 1)
                        Ad = "B" & Lig
                    End If
                End If
            Next Lig
        End With
        Combo1.ListIndex = 0
    End Sub
    J'ai employé la feuil1 et agencé colonne A et B voir image.
    A+
    Images attachées Images attachées  

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 89
    Points : 38
    Points
    38
    Par défaut
    je t'envoi en piece jointe comment j'ai fait sur ma feuille de donnée pour nommé mes sites et les batiments

    et j'ai déja une userform peut-on affecter le code sur celle ci?
    merci

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Hello l'homme des bois, à quoi servent les lignes
    .....If Txt = "" Then
    ..........Txt = .Cells(Lig, 1)
    et celles après le Else ?
    (je n'ai pas été plus loin dans la forêt )

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    Hello l'homme des bois, à quoi servent les lignes
    et celles après le Else ?
    (je n'ai pas été plus loin dans la forêt )
    Test mon code et tu verras..
    Mais petite explication tout de même
    Le Txt= "" c'est pour la 1ère initialisation.
    après le else met la ligne sélectionnée plus haut dans colonne 0 et plage des bat dans colonne 1
    C'est plus clair ?

    Citation Envoyé par fullmetalknet Voir le message
    je t'envoi en piece jointe comment j'ai fait sur ma feuille de donnée pour nommé mes sites et les batiments

    et j'ai déja une userform peut-on affecter le code sur celle ci?
    merci
    Bien sûr qu'il ira sut ton UF et réfléchi un peu comment adapter mon code pour qu'il fonctionne dans la configuration que tu montre.
    Si tu n'en sort pas revient et ont t'aidera .
    A+

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par Leboiseux
    C'est plus clair ?
    Ah ! Tu fais comme ça ! On n'a pas la même idée de la structure d'une base de données

    fullmetalknet, cela te coûterait-il beaucoup de modifier la structure de ta feuille de calculs pour qu'elle ressemble à quelque chose de rapidement exploitable ?
    Consisterait à placer tes sites en colonnes et les bâtiments en lignes
    Autant de colonnes que de sites
    Autant de lignes que de bâtiments par site
    ... ou le contraire
    Cela premettrait, en sélectionnant un site, de connaître immédiatement la liste des bâtiments correspondant.

    Qu'en penses-tu l'homme des bois ?

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Rien à dire sur ta rematque , mais je voulais laisser fullmetalknet fullminer un peu sur les possibilités qu'il avais avec sa configuration.
    C'est vrai que j'aurais pu faire comme tu dis dans ma démo.. pas penser..

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 89
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par LeForestier Voir le message
    Avec tout les renseignements que tu donne..
    Un nouveau UF, tu colle 2 combos que tu nomme Combo1 et Combo2
    dans le module de l'UF tu colle le code ci-dessous
    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
    Option Explicit
     
    Private Sub Combo1_Change()
    Dim cel As Range
        Combo2.Clear
        For Each cel In Sheets("Feuil1").Range(Combo1.List(Combo1.ListIndex, 2))
            Combo2.AddItem cel
        Next cel
        Combo2.ListIndex = 0
    End Sub
     
    Private Sub UserForm_Initialize()
    Dim Lig As Long
    Dim Ad As String, Txt As String
    Dim DerLig As Long
        Combo1.ColumnCount = 2
        Combo1.ColumnWidths = CStr(Combo1.Width - 5) & ";0"
        With Sheets("Feuil1")
            DerLig = .Range("B65536").End(xlUp).Row + 1
            For Lig = 5 To DerLig
                If .Cells(Lig, 1) <> "" Or Lig = DerLig Then
                    If Txt = "" Then
                        Txt = .Cells(Lig, 1)
                        Ad = "B" & Lig
                    Else
                        Ad = Ad & ":B" & Lig - 1
                        Combo1.AddItem Txt
                        Combo1.List(Combo1.ListCount - 1, 2) = Ad
                        Txt = .Cells(Lig, 1)
                        Ad = "B" & Lig
                    End If
                End If
            Next Lig
        End With
        Combo1.ListIndex = 0
    End Sub
    J'ai employé la feuil1 et agencé colonne A et B voir image.
    A+
    J'ai essayer ton code mais je ne sais pas comment le faire marcher!!
    mes combo sont vides!

  11. #11
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Beh évidement que tes combo sont vide, si tu ne modifie pas la configuration de ta feuille ou les adresses données pour les combo ça marchera jamais.
    Cherche un tout petit peu quand même. (réfléchi en fonction du modèle que je t'ai mis en image)
    A+

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 89
    Points : 38
    Points
    38
    Par défaut
    Citation Envoyé par LeForestier Voir le message
    si tu ne modifie pas la configuration de ta feuille ou les adresses données pour les combo ça marchera jamais.
    Cherche un tout petit peu quand même. (réfléchi en fonction du modèle que je t'ai mis en image)
    A+
    Salut

    c'est ce que j'ai fait!

    comme ca ne fonctionnait pas j'ai recréer une feuille excel et ca marche encore moins!!!

    J'ai bien mes sites et mes batiments, es ce normal qu'il y a des grand espace entre les sites dans la combo? et quand je selectionne un sites il me met erreur non répertorié sur la combo2 sur la ligne "combo2.clear"!
    je ne comprend pas pourquoi!

    Désolé mais je suis débutant dans VBA!!!

    merci

  13. #13
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Re,
    Pour que les noms correspondent il faut les adapter.
    Tu a probablement coller un combobox sur ton UF mais tu n'a pas changer sont nom, voir avec les propriétés du combo

    Un exemple plus concret !!
    A+
    Fichiers attachés Fichiers attachés

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 89
    Points : 38
    Points
    38
    Par défaut
    merci pour cette petite demo!!!

    c'est exactement ce que je voulais faire! meme que ca marche je ne comprend tjs pas les codes VBA que tu m'a fourni!!!

    A+

    encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/10/2010, 11h46
  2. Réponses: 2
    Dernier message: 05/03/2010, 14h15
  3. Update d'une table a partir d'une autre table
    Par Yannis06 dans le forum Oracle
    Réponses: 6
    Dernier message: 11/08/2005, 11h32
  4. [DLL] utiliser une DLL a partir d' une DLL et un .def
    Par venomelektro dans le forum MFC
    Réponses: 9
    Dernier message: 07/12/2004, 14h01
  5. mise a jour d'une base a partir d'une autre base
    Par seb3099 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 18/06/2004, 08h20

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