Programmation bouton Précédent / Suivant

Fermé
Gwenael - Modifié par Whismeril le 28/09/2015 à 10:45
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 - 28 sept. 2015 à 16:14
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.

1 réponse

f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704
Modifié par f894009 le 28/09/2015 à 12:01
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
Modifié par Patrice33740 le 28/09/2015 à 12:21
Bonjour,

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


CQFD

Cordialement
Patrice
0
f894009 Messages postés 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
28 sept. 2015 à 15:06
Bonjour,

Eh oui !!!!!
0
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 17187 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 1 mai 2024 1 704 > Gwenael
28 sept. 2015 à 16:14
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