• Initiateur de la discussion Initiateur de la discussion juju4953
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

juju4953

XLDnaute Nouveau
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
232
Réponses
10
Affichages
281
Réponses
2
Affichages
201
Réponses
1
Affichages
180
Réponses
4
Affichages
177
Réponses
8
Affichages
466
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Retour