modifier une listbox

angefou

XLDnaute Nouveau
Bonjour à tous,

j’essaie de créer un petit fichier de planification mais je rencontre quelques petit problèmes.
j'ai une combobox2 qui permet de modifier le rowsource de ma listbox1 code ci dessous :

Code:
Private Sub ComboBox2_Click()

If ComboBox2.Value = "Maintenance des équipements d'assistance" Then
ListBox1.RowSource = "equipement"
End If
If ComboBox2.Value = "Maintenance des organes de roulement" Then
ListBox1.RowSource = "roulement"
End If
If ComboBox2.Value = "Maintenance des bogies, levage caisse" Then
ListBox1.RowSource = "bogies"
End If
If ComboBox2.Value = "Maintenance caisse et portes" Then
ListBox1.RowSource = "caisse"
End If
If ComboBox2.Value = "Maintenance des organes de captage du courant de traction" Then
ListBox1.RowSource = "captage"
End If
If ComboBox2.Value = "Maintenance Frein" Then
ListBox1.RowSource = "frein"
End If
If ComboBox2.Value = "Intervention complètes" Then
ListBox1.RowSource = "intervention"
End If

If ComboBox2.Value = "Autres activités liés à la maintenance des véhicules" Then
ListBox1.RowSource = "autres"
End If

If ComboBox2.Value = "Maintenance des équipements d'assistance" Then
TextBox4.Value = 1

End If

End Sub

Code:
Private Sub ListBox1_Change()
TextBox2.Text = ListBox1.Text

End Sub

et je souhaite afficher une autre rowsource dans cette même listbox avec ma combobox3. sauf que cette fois -ci c'est un tableau de nom et prenom qui doivent s'afficher. Et lorsque je sélectionne un nom et prenom, la valeur de ma textbox5= au nom selectionner et ma textbox3 = le prenom selectionner.

Je vous remercie par avance pour votre aide.
 

Lone-wolf

XLDnaute Barbatruc
Bonjour thebenois :)

Sinon un exemple à adapter à ton cas

Dans un module standard
VB:
Option Explicit
Public Rech_Comb(1 To 7) As String, Rech_List(1 To 7) As String, Sh As Worksheet

Public Sub Init_Valeurs()
    Set Sh = Sheets("Factures")

    'Critères de recherche  Combo   :    'Résultats dans la Listbox

    Rech_Comb(1) = "ID": Rech_List(1) = "Factures!$A$2:$A$65536"
    Rech_Comb(2) = "Vendeur": Rech_List(2) = "Factures!$B$2:$B$65536"
    Rech_Comb(3) = "Client": Rech_List(3) = "Factures!$C$2:$C$65536"
    Rech_Comb(4) = "Date commande": Rech_List(4) = "Factures!$D$2:$D$65536"
    Rech_Comb(5) = "Date livraison": Rech_List(5) = "Factures!$E$2:$E$65536"
    Rech_Comb(6) = "Date paiement": Rech_List(6) = "Factures!$F$2:$F$65536"
    Rech_Comb(7) = "Facture N°": Rech_List(7) = "Factures!$G$2:$G$65536"
End Sub

Dans l'Userform
VB:
Option Explicit
Dim n As Byte, k As Byte, x As Byte, derlig As Long, i As Long,  ColDate

Private Sub UserForm_Initialize()
    Call Init_Valeurs

    n = Sheets("Factures").Range("A:G").Columns.Count
    ListBox1.ColumnCount = Sheets("Factures").Range("A:G").Columns.Count
    ListBox1.ColumnWidths = "50;90;80;70;70;70;60"

    For k = 1 To n
        With Sheets("Factures")
            Me("Label" & k) = .Cells(1, k).Text
        End With
        Me("Label" & k).Top = Me("Label" & k).Top + 5
    Next

    With Sheets("Factures")
       derlig = .Range("a" & Rows.Count).End(xlUp).Row

        For i = 1 To 7
            ComboBox1.AddItem Rech_Comb(i)
        Next i

        For x = 2 To derlig
            ListBox1.AddItem .Range("a" & x)
            For j = 2 To 7
                ListBox1.List(ListBox1.ListCount - 1, j - 1) = .Cells(x, j)
                ColDate = ListBox1.List(ListBox1.ListCount - 1, j - 1)
                If IsDate(ColDate) Then _
                   ListBox1.List(ListBox1.ListCount - 1, j - 1) = Format(ColDate, "dd.mm.yyyy")
            Next j
        Next x
    End With
End Sub

Private Sub UserForm_Activate()
    ComboBox1 = ""
End Sub

Private Sub ComboBox1_Change()
    If ComboBox1 <> "" Then
        Call Recherche
    Else

    End If
End Sub


Private Sub Recherche()
    If ComboBox1 = Rech_Comb(1) Then ListBox1.RowSource = Rech_List(1): Exit Sub
    If ComboBox1 = Rech_Comb(2) Then ListBox1.RowSource = Rech_List(2): Exit Sub
    If ComboBox1 = Rech_Comb(3) Then ListBox1.RowSource = Rech_List(3): Exit Sub
    If ComboBox1 = Rech_Comb(4) Then ListBox1.RowSource = Rech_List(4): Exit Sub
    If ComboBox1 = Rech_Comb(5) Then ListBox1.RowSource = Rech_List(5): Exit Sub
    If ComboBox1 = Rech_Comb(6) Then ListBox1.RowSource = Rech_List(6): Exit Sub
    If ComboBox1 = Rech_Comb(7) Then ListBox1.RowSource = Rech_List(7): Exit Sub
End Sub
 

kaid

XLDnaute Occasionnel
Bonsoir svp; je voudrai ajouter dans le code Range("d2:d" la formule gauche = 4.
par ex dans la colonne D2 j'ai "BADR 958 alors j'aimerai appliquer le code juste sur BADR

Private Sub CommandButton1_Click()
Dim i As Long, derlig As Long

With Sheets("bd")
derlig = .Range("e" & Rows.Count).End(xlUp).Row

For i = 3 To 9
Range("d" & i) = Application.SumIf(.Range("d2:d" & derlig), Range("c" & i), .Range("o2:eek:" & derlig))
Range("e" & i) = Application.CountIfs(.Range("n2:n" & derlig), Range("f" & i), .Range("d2:d" & derlig), Range("c" & i))


Next i
End With
End Sub


Merci
 

Lone-wolf

XLDnaute Barbatruc
Bonsoir kaid

Si il y a des éspaces entre les lettres et les chiffres

With Sheets("bd")
derlig = .Cells( Rows.Count, "D").End(xlUp).Row
For i = 2 To derlig
.Cells(i, "D") = Split(.Cells(i, "D"), " ")
Next i
End With

le résultat sera: BADR
 

kaid

XLDnaute Occasionnel
bonsoir et merci pour votre réponse
*j'ai un autre problème : j'ai commencer a saisir mes données je suis arriver a 900 lignes. et quand je l'ouvre il bug et parfois la userform ne s'affiche pas très très lent !!!!
.
 

Lone-wolf

XLDnaute Barbatruc
Bonjour kaid, le Forum :)

Au faite kaid, c'est quoi cette manie de poster dans les messages des autres?? Ca t'emm... autant de créer une nouvelle discussion et de joindre un fichier avec? :mad: Et ça vaut aussi pour angefou. On est pas là pour vous mettre la tarte au pomme dans la bouche ou et encore une 10ème fois, on est pas des DEVINS.
 

Discussions similaires

Réponses
4
Affichages
194
Réponses
1
Affichages
234

Statistiques des forums

Discussions
312 108
Messages
2 085 375
Membres
102 876
dernier inscrit
BouteilleMan