Incrément d'une ligne chaque fois qu'elle est vide

michoulu

XLDnaute Nouveau
Bonjour,

J'ai crée une boite de dialogue où l'utilisateur remplit des informations.

J'aimerais que chaque fois qu'il clique sur un bouton valider, les infos saisis se notent sous forme de tableau dans une page "Historique".

Donc je cherche à réaliser un code qui va dire :

test d'une ligne
si la ligne est vide : on note les infos
sinon : on passe à la ligne suivante

du style :

Code:
déclaration des variables....

m = 2

If Worksheets("HistoriqueSaisie").Cells(m, 2).Value = "" Then

Worksheets("HistoriqueSaisie").Cells(m, 2).Value = TB1.Value
Worksheets("HistoriqueSaisie").Cells(m, 3).Value = Désignation
Worksheets("HistoriqueSaisie").Cells(m, 4).Value = nomfeuille
Worksheets("HistoriqueSaisie").Cells(m, 5).Value = jour
Worksheets("HistoriqueSaisie").Cells(m, 6).Value = TB2.Value

Else


Worksheets("HistoriqueSaisie").Cells(m + 1, 2).Value = TB1.Value
Worksheets("HistoriqueSaisie").Cells(m + 1, 3).Value = Désignation
Worksheets("HistoriqueSaisie").Cells(m + 1, 4).Value = nomfeuille
Worksheets("HistoriqueSaisie").Cells(m + 1, 5).Value = jour
Worksheets("HistoriqueSaisie").Cells(m + 1, 6).Value = TB2.Value

End If

mais dans mon code il ne test qu'une ligne et si je met for m = 1 to 100 il m'en remplit 100 ....

Je ne maîtrise pas assez le Row pour savoir comment l'utiliser ...

Merci d'avance
 

Nairolf

XLDnaute Accro
Re : Incrément d'une ligne chaque fois qu'elle est vide

Salut Michoulu,

D'après ton code, il va toujours trouver une ligne à remplir car ton else est actif à partir du moment que le if est faux.
Je te propose ce code:
Code:
i = 1

for m = 1 to 100
 
If Worksheets("HistoriqueSaisie").Cells(m, 2).Value = "" Then
 
 Worksheets("HistoriqueSaisie").Cells(i, 2).Value = TB1.Value
 Worksheets("HistoriqueSaisie").Cells(i, 3).Value = Désignation
 Worksheets("HistoriqueSaisie").Cells(i, 4).Value = nomfeuille
 Worksheets("HistoriqueSaisie").Cells(i, 5).Value = jour
 Worksheets("HistoriqueSaisie").Cells(i, 6).Value = TB2.Value
 i=i+1

End If

Next
 

michoulu

XLDnaute Nouveau
Re : Incrément d'une ligne chaque fois qu'elle est vide

erf ...

i est forcé à 1 même avec le i = i + 1 la macro remplit uniquement la ligne 1 et repasse dessus ...
Etant donné que je veux un historique il ne faut pas réécrire sur la ligne mais passer à la suivante ...
 

michoulu

XLDnaute Nouveau
Re : Incrément d'une ligne chaque fois qu'elle est vide

Hmm oui si je peux le supprimer par la suite ...

Il faut cliquer sur la feuille base puis sur boite de dialogue :

au moment où quelqu'un clic sur valider il faut que les données soient saisis dans la feuille Historique ...

Il vaut mieux écrire ici le code que de le modifier dans le classeur sinon je ne m'en sortirais pas :/ :(
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Incrément d'une ligne chaque fois qu'elle est vide

Re,

Visiblement tu souhaites écrire à la suite dans la feuille Historique Saisie

Peut-être un truc du genre, alors

Code:
m = Worksheets("HistoriqueSaisie").cells(rows.count,2).end(xlup).row +1

Worksheets("HistoriqueSaisie").Cells(m, 2).Value = TB1.Value
Worksheets("HistoriqueSaisie").Cells(m, 3).Value = Désignation
Worksheets("HistoriqueSaisie").Cells(m, 4).Value = nomfeuille
Worksheets("HistoriqueSaisie").Cells(m, 5).Value = jour
Worksheets("HistoriqueSaisie").Cells(m, 6).Value = TB2.Value
 

Statistiques des forums

Discussions
312 526
Messages
2 089 345
Membres
104 130
dernier inscrit
badro26