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 :

Modification de ComboBox_Change ()


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 39
    Par défaut Modification de ComboBox_Change ()
    Bonjour,

    j'ai un prb avec des comboBox

    Explication:
    j'ai 2 comboBox et je voudrais que la modification de l'une change l'autre.

    prb:
    comme l'une change l'autre puis que l'autre change l'une puis que l'une...

    est-ce qu'il y a une maniere de garder la fonction sans que je fasse tout bugger?

    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
    Private Sub ComboBox_code_Change()
    Dim k As Integer, nb_lignes As Integer, Code As String
     
    Code = ComboBox_code
    nb_lignes = WorksheetFunction.CountA(Sheets("DATOS").Range("A:A"))
     
    ComboBox_choixfrs.Value = ""
    For k = 2 To nb_lignes
     
        If Sheets("DATOS").Range("A" & k).Value = Code Then
            ComboBox_choixfrs.Value = Sheets("DATOS").Range("B" & k).Value
        End If
    Next
     
    End Sub
     
    Private Sub ComboBox_choixfrs_Change()
    Dim l As Integer, nb_lign As Integer, Nomfr As String
     
    Nomfr = ComboBox_choixfrs
    nb_lign = WorksheetFunction.CountA(Sheets("DATOS").Range("B:B"))
     
    ComboBox_code.Value = ""
    For l = 2 To nb_lign
     
        If Sheets("DATOS").Range("B" & l).Value = Nomfr Then
            ComboBox_code.Value = Sheets("DATOS").Range("A" & l).Value
        End If
    Next
     
    End Sub
    merci de votre aide

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Tes 2 combobox sont remplies des mêmes plages mais de colonnes différentes? Exemple A1:A10 et B1:B10?

    Si affirmatif, pourquoi utiliser 2 Combobox?

    Pour synchroniser 2 combos qui prennent source de la même structure (item y de Combo1 correspond à l'item y de Combo2), une piste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub ComboBox1_Change()
     
    If ComboBox2.ListIndex <> ComboBox1.ListIndex Then ComboBox2.ListIndex = ComboBox1.ListIndex
    End Sub
     
    Private Sub ComboBox2_Change()
     
    If ComboBox1.ListIndex <> ComboBox2.ListIndex Then ComboBox1.ListIndex = ComboBox2.ListIndex
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 39
    Par défaut
    bien en faite il y a le nom et le code (même ligne mais colonne différente)

    et je veux que les personnes puissent verifier qu'elles ont selectionné la bonne chose en verifiant avec l'autre comboBox.

    est-il possible sinon de selectionner la valeur de la comboBox (nom par exemple) dans une listbox avec code et nom (Code - Nom) que j'ai faite deja?

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Oui, tu peux utiliser une listebox multicolonnes ou même une combobox avec 2 colonnes

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub UserForm_Initialize()
     
    With Me.ComboBox1
        .ColumnCount = 2
        .ColumnWidths = "100;60"
        .RowSource = "DATOS!A2:B12"
    End With
    End Sub

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2012
    Messages : 39
    Par défaut
    ok c cool comme truc

    le prb que je rencontre maintenant c'est que lorsque l'on a cliqué sur ce que l'on veux c'est le code qui s'affiche (pk c la 1ere colonne des deux je suppose) mais je veux pas changer l'ordre des colonnes dans mon fichier ni dans la présentation de la comboBox.

    de plus la variable prend le code maintenant

    Nomfr = ComboBox_choixfrs

    comment faire pour afficher ou les deux ou juste le nom sans toucher a mon fichier?

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub UserForm_Initialize()
     
    With Me.ComboBox1
        .ColumnCount = 2
        .ColumnWidths = "100;60"
        .TextColumn = 2
        .BoundColumn = 2
        .RowSource = "DATOS!A2:B12"
    End With
    End Sub

Discussions similaires

  1. Erreur lors de modification d'une table
    Par seb.49 dans le forum SQL
    Réponses: 11
    Dernier message: 13/01/2003, 17h16
  2. [VB6] modification de menu
    Par rikko23 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/11/2002, 21h30
  3. [] Datagrid vide après modification des propriétés
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 20/09/2002, 16h37
  4. Modification de l'évènement OnClick
    Par MrJéjé dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/08/2002, 12h52
  5. Réponses: 11
    Dernier message: 23/07/2002, 14h33

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