Bonjour,
Voici mon projet :
j'ai 3 combo : nom prenom, montant et date
chaque combo = une colonne dans excel
Et une listbox qui affiche les choix des combo
Mes pb sont que :
- si je choisi un nom prenom, il m'affiche pas dans la combo montant, le montant de ses dettes
- si je choisi un nom prenom, il m'affiche pas dans la listbox toutes les dettes avec les dates de cette personne
- si je choisi une date, il m'affiche pas dans la listbox toutes les dettes à cette date
- afficher mes choix dans la listbox sous forme de ligne :
Ex : titi 20€ le 14/05/09
titi 30€ le 01/05/09
tutu 10€ le 30/04/09
sachant qu'une personne peut avoir plusieurs dettes
mon autre pb est ke lorsque je choisi par exemple un nom prenom dans la combo et qu'apres je choisi un montant dans la combo il m'efface le choix de la combo nom prenom
Je sais il ya bcp de chose mais je preferais etre clair sachant qu'il y a des parties de code qui marche
En parlant de code le voici
il ya surement du menage a faire car j'ai essayer plein de chose donc si vs pouvez m'aider aussi à l'optimiser svp
Merci bcp à ceux qui m'aideront
Private Sub UserForm_Initialize()
Dim ligneNomPrenom As Integer
ligneNomPrenom = 2
Me.ComboBoxNomPrenom.AddItem ("Tout")
For ligneNomPrenom = 2 To Range("A65536").End(xlUp).Row
ComboBoxNomPrenom = Range("A" & ligneNomPrenom)
If ComboBoxNomPrenom.ListIndex = -1 Then ComboBoxNomPrenom.AddItem Range("A" & ligneNomPrenom)
Next ligneNomPrenom
Dim ligneMontant As Integer
ligneMontant = 2
Me.ComboBoxMontant.AddItem ("Tout")
For ligneMontant = 2 To Range("B65536").End(xlUp).Row
ComboBoxMontant = Range("B" & ligneMontant)
If ComboBoxMontant.ListIndex = -1 Then ComboBoxMontant.AddItem Range("B" & ligneMontant)
Next ligneMontant
Dim ligneDate As Integer
ligneDate = 2
Me.ComboBoxDate.AddItem ("Tout")
For ligneDate = 2 To Range("C65536").End(xlUp).Row
ComboBoxDate = Range("C" & ligneDate)
If ComboBoxDate.ListIndex = -1 Then ComboBoxDate.AddItem Range("C" & ligneDate)
Next ligneDate
End Sub
Private Sub ComboBoxNomPrenom_Change()
Dim i As Integer
Dim a As Integer
Dim tabint(100) As Integer
a = 0
i = 2
If Me.ComboBoxNomPrenom.ListIndex > 0 Then
Me.ListBoxDettes.Clear
Me.ComboBoxMontant.Text = "Sélectionnez un montant"
Me.ComboBoxDate.Text = "Sélectionnez une date"
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value <> "" And Me.ComboBoxNomPrenom.ListIndex <> ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value
i = i + 1
Loop
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value = Me.ComboBoxNomPrenom.ListIndex
tabint(a) = ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value
a = a + 1
i = i + 1
Loop
i = 2
a = 0
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value <> ""
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value <> "" And tabint(a) <> ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value
i = i + 1
Loop
If ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value <> "" Then
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value = tabint(a)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value)
i = i + 1
Loop
End If
Loop
End If
If Me.ComboBoxNomPrenom.ListIndex = 0 Then
Me.ListBoxDettes.Clear
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value <> ""
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value)
i = i + 1
Loop
Me.ComboBoxMontant.Text = "Sélectionnez un montant"
Me.ComboBoxDate.Text = "Sélectionnez une date"
End If
End Sub
Private Sub ComboBoxMontant_Change()
Dim i As Integer
Dim a As Integer
Dim tabint(100) As Integer
a = 0
i = 2
If Me.ComboBoxMontant.ListIndex > 0 Then
Me.ListBoxDettes.Clear
Me.ComboBoxNomPrenom.Text = "Sélectionnez un Nom Prenom"
Me.ComboBoxDate.Text = "Sélectionnez une date"
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value <> "" And Me.ComboBoxMontant.ListIndex <> ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value
i = i + 1
Loop
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value = Me.ComboBoxMontant.ListIndex
tabint(a) = ThisWorkbook.Sheets("Montant").Cells(i, 2).Value
a = a + 1
i = i + 1
Loop
i = 2
a = 0
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value <> ""
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value <> "" And tabint(a) <> ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value
i = i + 1
Loop
If ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value <> "" Then
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value = tabint(a)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value)
i = i + 1
Loop
End If
Loop
End If
If Me.ComboBoxMontant.ListIndex = 0 Then
Me.ListBoxDettes.Clear
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value <> ""
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value)
i = i + 1
Loop
Me.ComboBoxNomPrenom.Text = "Sélectionnez un Nom Prenom"
Me.ComboBoxDate.Text = "Sélectionnez une date"
End If
End Sub
Private Sub ComboBoxDate_Change()
Dim i As Integer
Dim a As Integer
Dim tabint(100) As Integer
a = 0
i = 2
If Me.ComboBoxDate.ListIndex > 0 Then
Me.ListBoxDettes.Clear
Me.ComboBoxNomPrenom.Text = "Sélectionnez un Nom Prenom"
Me.ComboBoxMontant.Text = "Sélectionnez un montant"
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value <> "" And Me.ComboBoxDate.ListIndex <> ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value
i = i + 1
Loop
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value = Me.ComboBoxDate.ListIndex
tabint(a) = ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value
a = a + 1
i = i + 1
Loop
i = 2
a = 0
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value <> ""
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value <> "" And tabint(a) <> ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value
i = i + 1
Loop
If ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value <> "" Then
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value = tabint(a)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value)
i = i + 1
Loop
End If
Loop
End If
If Me.ComboBoxDate.ListIndex = 0 Then
Me.ListBoxDettes.Clear
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value <> ""
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value)
i = i + 1
Loop
Me.ComboBoxNomPrenom.Text = "Sélectionnez un Nom Prenom"
Me.ComboBoxMontant.Text = "Sélectionnez un montant"
End If
End Sub
Voici mon projet :
j'ai 3 combo : nom prenom, montant et date
chaque combo = une colonne dans excel
Et une listbox qui affiche les choix des combo
Mes pb sont que :
- si je choisi un nom prenom, il m'affiche pas dans la combo montant, le montant de ses dettes
- si je choisi un nom prenom, il m'affiche pas dans la listbox toutes les dettes avec les dates de cette personne
- si je choisi une date, il m'affiche pas dans la listbox toutes les dettes à cette date
- afficher mes choix dans la listbox sous forme de ligne :
Ex : titi 20€ le 14/05/09
titi 30€ le 01/05/09
tutu 10€ le 30/04/09
sachant qu'une personne peut avoir plusieurs dettes
mon autre pb est ke lorsque je choisi par exemple un nom prenom dans la combo et qu'apres je choisi un montant dans la combo il m'efface le choix de la combo nom prenom
Je sais il ya bcp de chose mais je preferais etre clair sachant qu'il y a des parties de code qui marche
En parlant de code le voici
il ya surement du menage a faire car j'ai essayer plein de chose donc si vs pouvez m'aider aussi à l'optimiser svp
Merci bcp à ceux qui m'aideront
Private Sub UserForm_Initialize()
Dim ligneNomPrenom As Integer
ligneNomPrenom = 2
Me.ComboBoxNomPrenom.AddItem ("Tout")
For ligneNomPrenom = 2 To Range("A65536").End(xlUp).Row
ComboBoxNomPrenom = Range("A" & ligneNomPrenom)
If ComboBoxNomPrenom.ListIndex = -1 Then ComboBoxNomPrenom.AddItem Range("A" & ligneNomPrenom)
Next ligneNomPrenom
Dim ligneMontant As Integer
ligneMontant = 2
Me.ComboBoxMontant.AddItem ("Tout")
For ligneMontant = 2 To Range("B65536").End(xlUp).Row
ComboBoxMontant = Range("B" & ligneMontant)
If ComboBoxMontant.ListIndex = -1 Then ComboBoxMontant.AddItem Range("B" & ligneMontant)
Next ligneMontant
Dim ligneDate As Integer
ligneDate = 2
Me.ComboBoxDate.AddItem ("Tout")
For ligneDate = 2 To Range("C65536").End(xlUp).Row
ComboBoxDate = Range("C" & ligneDate)
If ComboBoxDate.ListIndex = -1 Then ComboBoxDate.AddItem Range("C" & ligneDate)
Next ligneDate
End Sub
Private Sub ComboBoxNomPrenom_Change()
Dim i As Integer
Dim a As Integer
Dim tabint(100) As Integer
a = 0
i = 2
If Me.ComboBoxNomPrenom.ListIndex > 0 Then
Me.ListBoxDettes.Clear
Me.ComboBoxMontant.Text = "Sélectionnez un montant"
Me.ComboBoxDate.Text = "Sélectionnez une date"
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value <> "" And Me.ComboBoxNomPrenom.ListIndex <> ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value
i = i + 1
Loop
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value = Me.ComboBoxNomPrenom.ListIndex
tabint(a) = ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value
a = a + 1
i = i + 1
Loop
i = 2
a = 0
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value <> ""
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value <> "" And tabint(a) <> ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value
i = i + 1
Loop
If ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value <> "" Then
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value = tabint(a)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value)
i = i + 1
Loop
End If
Loop
End If
If Me.ComboBoxNomPrenom.ListIndex = 0 Then
Me.ListBoxDettes.Clear
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value <> ""
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value)
i = i + 1
Loop
Me.ComboBoxMontant.Text = "Sélectionnez un montant"
Me.ComboBoxDate.Text = "Sélectionnez une date"
End If
End Sub
Private Sub ComboBoxMontant_Change()
Dim i As Integer
Dim a As Integer
Dim tabint(100) As Integer
a = 0
i = 2
If Me.ComboBoxMontant.ListIndex > 0 Then
Me.ListBoxDettes.Clear
Me.ComboBoxNomPrenom.Text = "Sélectionnez un Nom Prenom"
Me.ComboBoxDate.Text = "Sélectionnez une date"
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value <> "" And Me.ComboBoxMontant.ListIndex <> ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value
i = i + 1
Loop
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value = Me.ComboBoxMontant.ListIndex
tabint(a) = ThisWorkbook.Sheets("Montant").Cells(i, 2).Value
a = a + 1
i = i + 1
Loop
i = 2
a = 0
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value <> ""
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value <> "" And tabint(a) <> ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value
i = i + 1
Loop
If ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value <> "" Then
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value = tabint(a)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value)
i = i + 1
Loop
End If
Loop
End If
If Me.ComboBoxMontant.ListIndex = 0 Then
Me.ListBoxDettes.Clear
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value <> ""
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value)
i = i + 1
Loop
Me.ComboBoxNomPrenom.Text = "Sélectionnez un Nom Prenom"
Me.ComboBoxDate.Text = "Sélectionnez une date"
End If
End Sub
Private Sub ComboBoxDate_Change()
Dim i As Integer
Dim a As Integer
Dim tabint(100) As Integer
a = 0
i = 2
If Me.ComboBoxDate.ListIndex > 0 Then
Me.ListBoxDettes.Clear
Me.ComboBoxNomPrenom.Text = "Sélectionnez un Nom Prenom"
Me.ComboBoxMontant.Text = "Sélectionnez un montant"
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value <> "" And Me.ComboBoxDate.ListIndex <> ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value
i = i + 1
Loop
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value = Me.ComboBoxDate.ListIndex
tabint(a) = ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value
a = a + 1
i = i + 1
Loop
i = 2
a = 0
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value <> ""
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value <> "" And tabint(a) <> ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value
i = i + 1
Loop
If ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value <> "" Then
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value = tabint(a)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value)
i = i + 1
Loop
End If
Loop
End If
If Me.ComboBoxDate.ListIndex = 0 Then
Me.ListBoxDettes.Clear
Do While ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value <> ""
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 1).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 2).Value)
Me.ListBoxDettes.AddItem (ThisWorkbook.Sheets("Dettes").Cells(i, 3).Value)
i = i + 1
Loop
Me.ComboBoxNomPrenom.Text = "Sélectionnez un Nom Prenom"
Me.ComboBoxMontant.Text = "Sélectionnez un montant"
End If
End Sub