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 :

Comment relier les 2 liste roulantes (Combobox) [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 24
    Par défaut Comment relier les 2 liste roulantes (Combobox)
    Bonjour,

    J'ai deja cree les 2 liste roulantes (type Combobox), je ne sais pas comment faire pour que le macro ne realise qu'apres la selection de 2e combobox

    Par exemple, 2 liste roulantes Select an activity (1er) and Select a Country (2e). Je voudrais que le macro va lancer seulement apres le choix du country.

    Une autre question, comme j'ai deja ecrit des codes pour le choix des Activités, je veux que apres le choix de Country, le macro va realiser tous ces 2 Sub (c'est a dire va remplir exactemenet les chiffres de l'activite et pays choisi), comment je peux faire?????

    Je pense a ajouter le code "Call Activities" dans le Sub pour Country. Je ne sais pas si on peut faire comme ca ou non.

    Voila les codes que j'ai ecrit, pour le code pour Activite, ca fonctionne bien mais pour Country, je pense qu'il y problemes, ca prend bc de temps et ca ne remplit pas exactement les chiffres des pays.

    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
    Sub PowerActivities()
     
    act = Worksheets("Data Power").Cells(3, 2).Value
     
    If act = 1 Then Exit Sub Else
     
    'CCO
     
    For Column = 5 To 7
    For Row1 = 47 To 76
     
    Select Case Column
     
        Case 5
        Worksheets("Data Act").Cells(Row1, (act - 2) * 3 + Column).Copy
        Worksheets("Power Summary").Cells(Row1 - 34, 4).PasteSpecial (xlPasteValues)
     
        Case 6
        Worksheets("Data Act").Cells(Row1, (act - 2) * 3 + Column).Copy
        Worksheets("Power Summary").Cells(Row1 - 34, 8).PasteSpecial (xlPasteValues)
     
        Case 7
        Worksheets("Data Act").Cells(Row1, (act - 2) * 3 + Column).Copy
        Worksheets("Power Summary").Cells(Row1 - 34, 12).PasteSpecial (xlPasteValues)
     
    End Select
     
    Next Row1
    Next Column
     
     
    'Conso
     
    For Column = 5 To 7
    For Row2 = 12 To 41
     
    Select Case Column
     
        Case 5
        Worksheets("Data Act").Cells(Row2, (act - 2) * 3 + Column).Copy
        Worksheets("Power Summary").Cells(Row2 + 1, 16).PasteSpecial (xlPasteValues)
     
        Case 6
        Worksheets("Data Act").Cells(Row2, (act - 2) * 3 + Column).Copy
        Worksheets("Power Summary").Cells(Row2 + 1, 20).PasteSpecial (xlPasteValues)
     
        Case 7
        Worksheets("Data Act").Cells(Row2, (act - 2) * 3 + Column).Copy
        Worksheets("Power Summary").Cells(Row2 + 1, 24).PasteSpecial (xlPasteValues)
     
    End Select
     
    Next Row2
    Next Column
     
    End Sub
     
    Sub Geography()
        Geo = Worksheets("Data Power").Cells(7, 2).Value
        Row = Geo + 2164
        If Geo = 0 Then Exit Sub Else
     
    For A = Row To Row + 30
     
    Call PowerActivities
     
    Next A
    End Sub
    Est - ce que quelqu'un peut m'aider???

    Merci beaucoup
    Fichiers attachés Fichiers attachés

  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
    Par défaut
    Bonjour,
    Je n'ai pas examiner tes macros en profondeur, je suppose qu'elle fonctionnent !!
    Juste une remarque... Ne pas employer de mot réserver tel que Column pour des noms de variable, ça risque de poser problème, emploi plutôt des mots comme Col pour colonne et Lig pour ligne.
    Concernant ta question..
    tu met A2 et A6 avec 1 (pour le démarrage).
    tu colle le code ci-dessous dans le module de ta feuille "Data Power" ...
    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
    Option Explicit
    Dim ValideActi As Boolean
    Dim NoAction As Boolean
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        If NoAction Then Exit Sub
        If Target.Address = "$A$2" Then
            If Target > 2 And Target < 46 Then ValideActi = True
        ElseIf Target.Address = "$A$6" Then
            If Not ValideActi Then
                MsgBox "Vous devez d'abord sélectionner une activité"
                Exit Sub
            End If
            If Target > 6 And Target < 85 Then
                '--------------------------
                'ICI TU APPEL TES PROCEDURES
                '--------------------------
                ValideActi = False
                NoAction = True
                Range("A2") = 1
                Range("A6") = 1
                NoAction = False
            End If
        End If
    End Sub
    A+
    Edit,
    Comme j'ai vu en premier ta feuille Power Data avec la possibilité de faire des sélections je n'ai pas regarder les autres feuilles. Je viens de trouver tes 2 combos, je refait un autre code et te le communique.

    J'ai du remplacer tes comboBox par des combo de la boite à outils (tu avais mis des combo "Formulaires" qu'ont ne peu intercepter)
    Je les ai quand même laisser mais tu peu les supprimer.
    Je n'ai toujours rien compris a tes data, j'ai juste un peu optimiser tes macros.
    Tu dis...
    A+
    Fichiers attachés Fichiers attachés

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 24
    Par défaut
    Merci beaucoup

    Je suis en train de lire tes codes, c'est un peu complique pour moi car je suis vraiment debutant en macro

    Une autre question c'est quoi la difference entre Combobox et Combo"Formulaire", Combobox est mieux ????? Parce que je trouve pour moi, le Combo "Formulaire" est plus facile, je peux changer plus vite

    En fait, j'ai deja fait 2 fois le comboBox, mais je ne comprends pas pourquoi une fois je n'arrive pas a remplacer ListfillRange = Une liste que j'ai cree.

    Vous pouvez me renseigner?

    Merci beaucoup

  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
    Par défaut
    Il y a deux boites à outils, la boite avec les outils "Formulaire" et la boite à outils avec les outils ActiveX, ces dernier sont beaucoup plus performant quand ont veux travailler par macros. (beaucoup plus de possibilités)
    Pour voir la différence...
    >> Affichage >> Barre d'outils >> Boite à outils contrôles .. Tu coche
    >> Affichage >> Barre d'outils >> Formulaires.. Tu coche
    Tu vois que les 2 ont des outils plus ou moins similaires.
    Avec les combo Formulaire tu peu juste lui affecter une macros !
    Avec le combo Contrôle tu a les événement qui sont disponnibles, savoir si ont clic dessus.. si ont promène la souris, etc..
    Tu peu aussi le commander, l'obliger à sélectionner une ligne, changer sont texte etc..

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

Discussions similaires

  1. Comment éviter les doublons dans une ComboBox
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 27/07/2017, 17h03
  2. Comment extraire les selections d'une combobox vers une feuille excel
    Par froggyaz dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 22/09/2008, 17h58
  3. Réponses: 3
    Dernier message: 29/01/2008, 19h36
  4. Réponses: 9
    Dernier message: 02/08/2007, 18h08
  5. [vbexcel]Comment supprimer les doublons dans une combobox?
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 24/11/2005, 12h12

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