Programmation bouton Précédent / Suivant

Gwenael -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

J'ai créée sur Excel une base de données et sur VBA un formulaire qui complète cette base de données.

Sur le formulaire VBA j'ai créée les boutons précédent et suivant que j'ai réussis à paramétrer.

Mais j'ai un problème car lorsque je clique sur le bouton suivant je ne peux passer que du 1er enregistrement au second je ne peux pas aller au delà.

A votre avis quel peut être le problème dans ma formule ci-dessous ?

Public Sub SUIVANT_Click()
If Cells(lignEnCours + 3, 3) <> "" Then
        ligneEnCours = ligneEnCours + 4
End If
TextBox21.Text = Cells(ligneEnCours, 1)
TextBox23.Text = Cells(ligneEnCours, 2)
TextBox1.Text = Cells(ligneEnCours, 3)
TextBox2.Text = Cells(ligneEnCours, 4)
ComboBox1.Text = Cells(ligneEnCours, 5)
TextBox3.Text = Cells(ligneEnCours, 6)
TextBox4.Text = Cells(ligneEnCours, 7)
TextBox5.Text = Cells(ligneEnCours, 8)
TextBox6.Text = Cells(ligneEnCours, 9)
TextBox7.Text = Cells(ligneEnCours, 10)
TextBox8.Text = Cells(ligneEnCours, 11)
ComboBox7.Text = Cells(ligneEnCours, 12)
TextBox10.Text = Cells(ligneEnCours, 13)
ComboBox8.Text = Cells(ligneEnCours, 14)
TextBox11.Text = Cells(ligneEnCours, 15)
TextBox9.Text = Cells(ligneEnCours, 16)
ComboBox4.Text = Cells(ligneEnCours, 17)
ComboBox5.Text = Cells(ligneEnCours, 18)
TextBox15.Text = Cells(ligneEnCours, 19)
ComboBox2.Text = Cells(ligneEnCours, 20)
ComboBox6.Text = Cells(ligneEnCours, 21)
TextBox12.Text = Cells(ligneEnCours, 22)
TextBox16.Text = Cells(ligneEnCours, 23)
TextBox22.Text = Cells(ligneEnCours, 24)
ComboBox9.Text = Cells(ligneEnCours, 25)
TextBox26.Text = Cells(ligneEnCours, 26)
TextBox13.Text = Cells(ligneEnCours, 27)
ComboBox10.Text = Cells(ligneEnCours, 28)
TextBox25.Text = Cells(ligneEnCours, 29)
TextBox17.Text = Cells(ligneEnCours, 30)
ComboBox11.Text = Cells(ligneEnCours, 31)
TextBox27.Text = Cells(ligneEnCours, 32)
TextBox18.Text = Cells(ligneEnCours, 33)
TextBox24.Text = Cells(ligneEnCours, 34)
TextBox20.Text = Cells(ligneEnCours, 35)

End Sub


En vous remerciant par avance.

Cordialement,




EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ICI

Merci d'y penser dans tes prochains messages.
A voir également:

1 réponse

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Y a deux variables sauf si erreur de recopie:

ligneEnCours et lignEnCours


si erreur de recopie:
Vous incrementez de 4
ligneEnCours
que si
Cells(lignEnCours + 3, 3)
n'est pas vide, a vous de voir cette cellule dans la colonne si elle est vide ligne 11 (ligneEnCours = 8 pour deuxieme enregistrement)

If Cells(lignEnCours + 3, 3) <> "" Then
        ligneEnCours = ligneEnCours + 4
End If
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

Bien vu,
cela démontre l'utilité de commencer chaque module par :
Option Explicit


CQFD

Cordialement
Patrice
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Eh oui !!!!!
0
Gwenael
 
Bonjour,

Effectivement il y avait une erreur dans "LignEncours". Cependant une fois l'erreur corrigée je n'arrive toujours pas à aller plus loin que le deuxième enregistrement lorsque je clique sur suivant.

Et Option Explicit ne fonctionne pas non plus.

Cordialement,
Gwenaël
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > Gwenael
 
Et Option Explicit ne fonctionne pas non plus. qu'est-ce a dire ????

mettez un point d'arret sur la ligne:

TextBox21.Text = Cells(ligneEnCours, 1)


faites clic sur le bouton suivant, le programme s'arretera sur cette ligne. Vous aurez a relancer le programme par le triangle bleu de le fenetre VBA. Au troisieme clic bouton et arret du programme, passez le curseur souris sur les objets de ces lignes pour voir leur contenu

If Cells(ligneEnCours + 3, 3) <> "" Then
        ligneEnCours = ligneEnCours + 4
End If
0