Boucle saisie de données

guil456

XLDnaute Nouveau
Bonjour,
je suis en train de réaliser un petit bout de programme en vba. Voilà mon problème:
en gros je saisie des données dans un userform et j'ai 3 boutons
continuer, valider et annuler
annuler ferme la fenetre,
valider, rentre les 3 -4 données de mes textbox dans des cellules et ferme luserform
continuer doit rentrer les données de mes textbox dans les cellules et incrémenter mes cellules d'une ligne supplémentaire pour continuer à rentrer d'autres données qui viendront se mettre en dessous . Je ne sais pas si je suis bien clair, toujours est il que c'est ce bouton continuer qui me dérange.
voici un essai parmi tant d'autres qui reste encore infructueux.

Dim b As Integer
Dim x As Integer
x = 5
b = x
For b = x To b = 100

Cells(b, 3) = TextBox1
Cells(b, 4) = TextBox2

If TextBox3 = "" Then
Cells(b, 5) = ""
Else
Cells(b, 5).Value = CDbl(TextBox3)
End If

If TextBox4 = "" Then
Cells(b, 6) = ""
Else
Cells(b, 6).Value = CDbl(TextBox4)
End If


b = x + 1
Next b
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""

dans cet exemple , je ne pourrai rentrer que 100 lignes de données, et la première ligne sera la ligne 5 . Mais cela ne marche pas. J'ai essayé beaucoup de trucs mais rien n'y fait, je n'ai pas trouvé la solution ni avec do for each ou for... (pourtant je me suis acheté un livre sur vba! )

le but final est que les données d'insérent en ligne 5 pour la première fois, je clique sur continuer, ca rase mes textbox qui redeviennent blanches, ça ne ferme pas mon userform, je rerentre d'autres données dans les textbox, je reclique sur continuer pour que ca rentre mes données en ligne 6 et ainsi de suite
toute aide est la bienvenue!
 

jp14

XLDnaute Barbatruc
Re : Boucle saisie de données

Bonjour


Bonjour,

private sub.............
Dim b As Integer
Dim x As Integer
x = 5
b = x
For b = x To b = 100

Cells(b, 3) = TextBox1
Cells(b, 4) = TextBox2

If TextBox3 = "" Then
Cells(b, 5) = ""
Else
Cells(b, 5).Value = CDbl(TextBox3)
End If

If TextBox4 = "" Then
Cells(b, 6) = ""
Else
Cells(b, 6).Value = CDbl(TextBox4)
End If


b = x + 1
Next b
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""

Il faut déclarer la variable 5 en début de module et l'initialiser à l'ouverture de l'userform avec la valeur 5.
Ensuite remplacer 5 par x, et une fois que l'on a écrit dans les cellules incrémenter la variable x.
Code:
Option Explicit
Dim x As Integer

Private Sub CommandButton1_Click()
   Cells(x, 3) = TextBox1
     Cells(x, 4) = TextBox2

        If TextBox3 = "" Then
             Cells(x, 5) = ""
                 Else
                 Cells(x, 5).Value = CDbl(TextBox3)
        End If

        If TextBox4 = "" Then
             Cells(x, 6) = ""
                  Else
                   Cells(x, 6).Value = CDbl(TextBox4)
        End If

TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
x = x + 1

If x = 100 Then

Call MsgBox("Vous avez saisie toutes les données" _
            & vbCrLf & "" _
            , vbInformation, Application.Name)
Unload Me
            
End If
End Sub


Private Sub UserForm_Initialize()
x = 5
End Sub

A tester


JP
 

guil456

XLDnaute Nouveau
Re : Boucle saisie de données

Ca marche!!
Merci beaucoup pour cette aide rapide et efficace!
Je vais pouvoir continuer à avancer et ça m'aidera pour d'autres taches similaires je pense . J'avais cherché 2-3 heures avant de poster le message.

Merci encore
 

Discussions similaires

Statistiques des forums

Discussions
312 671
Messages
2 090 757
Membres
104 652
dernier inscrit
fannechere