Listbox ne correspond pas aux données d'un champ texte

Bonjour, voilà je vous explique mon petit souci.

J'ai un fichier excel répertoriant un ensemble de recettes (nom de la recette, libellé des ingrédients, type de plat etc)

J'ai une listbox (listbox1) alimentée par un champ texte dans mon formulaire (textbox5.text dont la source est la liste des ingrédients).

J'arrive à faire un split de ce champ texte et à afficher les valeurs de ce champ dans ma listbox.

j'ai également un bouton précédent et suivant qui me permet de naviguer entre les différents enregistrements de mon fichier excel.

Or pour chaque enregistrement j'ai un problème d'indice que je n'arrive pas à résoudre.

exemple: sur la deuxième ligne de mon tableau excel (la première étant ma ligne d'entête: j'ai les ingrédients suivants: "saumon;Oeufs;Sel;Pâte feuilletée"

sur la ligne suivante: j'ai "jambon; pâte feuilletée; tomate"

Quand j'initialise mon formulaire, le nom de ma recette du premier enregistrement (donc ligne2) s'affiche bien sauf la liste qui n'affiche rien.

En revanche quand je clique sur le bouton suivant (ligne 3 de mon tableau) , il m'affiche dans mon textbox5.text la valeur "saumon;Oeufs;Sel;Pâte feuilletée" soit la valeur de ma ligne 2.

Tout est décalé de 1 à chaque fois.

En fichier joint mon fichier excel contenant les macros visual basic.

S'il vous plaît, par contre, comme j'aimerais bien comprendre mon "erreur" de raisonnement, merci de m'expliquer en détail pourquoi çà n'affiche pas ce qui devrait être sans toutefois corriger le fichier d'origine.

Merci de votre compréhension.

extrait de mon code

Private Sub Bouton_Precedent_Click()

chaine = Cells(iR, 2).Text

varc = Split(chaine, ";")

ListBox1.Clear

If iR > 2 Then

iR = iR - 1

TextBox1.Text = Cells(iR, 1)

TextBox2.Text = Cells(iR, 3)

TextBox3.Text = Cells(iR, 4)

TextBox4.Text = Cells(iR, 5)

TextBox5.Text = Cells(iR, 2)

For i = 0 To UBound(varc)

ListBox1.AddItem varc(i)

Next i

Else

MsgBox "Premier enregistrement", vbCritical

End If

End Sub

Private Sub Bouton_Suivant_Click()

chaine = Cells(iR, 2).Text

varc = Split(chaine, ";")

ListBox1.Clear

If iR < iLR Then

iR = iR + 1

TextBox1.Text = Cells(iR, 1).Text

TextBox2.Text = Cells(iR, 3).Text

TextBox3.Text = Cells(iR, 4).Text

TextBox4.Text = Cells(iR, 5).Text

TextBox5.Text = Cells(iR, 2).Text

For i = 0 To UBound(varc)

ListBox1.AddItem varc(i)

Next i

6christrenb1.xlsm (178.56 Ko)

bonjour,

Ton fichier corrigé.

A+

7christrenb-vg1.xlsm (169.60 Ko)
Rechercher des sujets similaires à "listbox correspond pas donnees champ texte"