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 qui affiche seulement certaines lignes d'une feuille


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Collégien
    Inscrit en
    Avril 2019
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Avril 2019
    Messages : 17
    Points : 19
    Points
    19
    Par défaut ComboBox qui affiche seulement certaines lignes d'une feuille
    Bonjour,
    Je ne sais pas trop comment expliquer mieux mon problème.

    J'ai une feuille avec des données qui proviennent de différentes équipe de travail. J'aimerais que si c'est l'équipe 2 qui ouvre mon userform, que ce soit seulement les données que l'équipe 2 a alimenté qui soient disponible dans le combobox. J'ai essayé un petit code qui fonctionne bien pour limiter ce qu'il y a dans le combobox

    (eqtri est le numéro d'équipe)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    eqtri = wi.Range("A1").Value
     
        For j = 2 To ws.Range("D65536").End(xlUp).Row
              If ws.Range("B" & j) = eqtri Then
              With ComboNom
             .AddItem ws.Range("D" & j)
            End With
            End If
        Next j
    Mais mon problème est celui-ci, les données qui sont alimentés dans mon userform lorsque l'on change le combobox le sont avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        If Me.ComboNom.ListIndex = -1 Then Exit Sub
      Ligne = Me.ComboNom.ListIndex + 2
    Donc, les choix de mon combobox ne sont plus liés avec la bonne ligne de ma feuille. J'ai essayé de faire un tri dans mon tableau avant d'Afficher mon userform mais ça ne fonctionne pas plus.

    Merci

  2. #2
    Membre chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    Bonjour,
    Citation Envoyé par cagodue Voir le message
    Donc, les choix de mon combobox ne sont plus liés avec la bonne ligne de ma feuille.
    Pour cela tu peux associer ta ligne dans le combo sur la seconde colonne (la première est index 0)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
             .AddItem ws.Range("D" & j)
             .List(.ListCount - 1, 1) = j
    ensuite pour l'utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ligne = Me.ComboNom.List(Me.ComboNom.ListIndex, 1)

  3. #3
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Bonjour,
    sur le même principe que ma réponse sur ton autre discussion:

    une liste de validation, pour l'exemple cellule E6 de la Feuil1, une sélection dans la liste ouvre le userform:
    Nom : C200.JPG
Affichages : 115
Taille : 41,9 Ko

    le code pour détecter le changement de valeur sélectionnée dans la liste à mettre dans la partie code de la sheets:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal target As Range)
    If target.Address = [E6].Address And [E6].Value <> "" Then
        UserForm1.Show
    End If
    End Sub
    code de l'userform1:
    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
    Private Sub UserForm_Initialize()
    Dim NumEquip As String, i As Integer, fin As Integer
     
    Me.Label1.Caption = ""
     
    With Sheets("Feuil1")
        NumEquip = .Range("E6").Value
       fin = .Range("E" & Rows.Count).End(xlUp).Row
     
       If .Range("E6") <> "" Then
            Me.Label1.Caption = NumEquip
     
            For i = 10 To fin
                If .Range("E" & i).Value = NumEquip Then
                    Me.ComboBox1.AddItem (.Range("E" & i).Offset(0, 1).Value)
                End If
            Next i
     
        Else: Exit Sub
     
        End If
    End With
    End Sub
    donc ici à chaque fois qu'on va faire un choix dans la liste de validation l'userform va s'ouvrir et afficher dans le combo les items correspondants.
    c'est bien sûr un exemple à adapter à ton cas.
    @+

    Si vous avez trouvé la solution à votre problème n'oubliez pas d'appuyer sur
    Et n'oubliez pas de voter en appuyant sur si ce message a repondu à vos attentes.
    Ou sur si ce n'est pas le cas

Discussions similaires

  1. Afficher seulement certaines lignes avec un choix de liste déroulante
    Par MaraVen83 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/05/2016, 17h27
  2. Réponses: 2
    Dernier message: 01/07/2014, 17h14
  3. [AC-2010] Afficher seulement certains enregistrements pour une synthèse.
    Par theolivier dans le forum IHM
    Réponses: 5
    Dernier message: 13/06/2013, 11h41
  4. [Débutant] Problème combobox qui affiche les valeurs(int) d'une table
    Par arngrimur dans le forum C#
    Réponses: 4
    Dernier message: 06/07/2011, 10h52
  5. [XL-2003] Afficher seulement certaines lignes de TCD - VBA
    Par giuliao dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/05/2011, 20h20

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