XL 2010 première ligne vide

PHILLIEB

XLDnaute Nouveau
Bonjour
j'ai créé un programme de commande de repas il y a une dizaine d'années. Il fonctionne très bien depuis. J'ai apporté une modif avec un nouvel userform avec les mêmes lignes de code fonctionnant sans pb avec un autre userform. cette fois ca ne marche pas : il s'agit de copier une ligne sous condition (variable i) de la feuille "COMMANDE UF1" dans la première ligne vide de la feuille "LISTEACCOMP" , ça me recopie des dizaines de fois la même ligne de la feuille "COMMANDE UF1" dans la feuille "LISTEACCOMP" avant de s'arrêter !?! voici le code :
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim i As Long
For i = 5 To 45
Sheets("COMMANDE UF1").Select
If VISITEURUF1.ComboBox1.Value = Sheets("COMMANDE UF1").Cells(i, 3).Value Then
Sheets("COMMANDE UF1").Cells(i, 37).Value = VISITEURUF1.TextBox4.Value
Sheets("COMMANDE UF1").Cells(i, 38).Value = VISITEURUF1.TextBox5.Value
End If
'UF1
Call listeUF1
Next
Application.ScreenUpdating = True

End Sub

Voici le code de la macro "listeUF1" :
Sub listeUF1()
'RENSEIGNER LISTEACCOMP
Dim i As Long
For i = 5 To 45
Sheets("COMMANDE UF1").Select
If VISITEURUF1.ComboBox1.Value = Sheets("COMMANDE UF1").Cells(i, 3).Value Then
With Sheets("LISTEACCOMP").Range("A100").End(xlUp)(2) = ""
Sheets("COMMANDE UF1").Range(Cells(i, 1), Cells(i, 41)).Copy Sheets("LISTEACCOMP").Range("A100").End(xlUp)(2)
End With
Exit Sub
End If
Next

End Sub
 

Pièces jointes

  • Classeur1.xls
    71.5 KB · Affichages: 10

jmfmarques

XLDnaute Accro
Bonjour
1) Mets ton code entre balises code. Il est en l'état difficile à lire
Et de toutes manières, avant d'aller plus loin :
2) Sélectionner la feuille "COMMANDE UF1" ne sert à rien. Le faire de surcroît en boucle relève de la déraison
3)With Sheets("LISTEACCOMP").Range("A100").End(xlUp)(2) = "" n'a, tel qu'écrit, aucun sens.
 

PHILLIEB

XLDnaute Nouveau
Bonjour
1) Mets ton code entre balises code. Il est en l'état difficile à lire
Et de toutes manières, avant d'aller plus loin :
2) Sélectionner la feuille "COMMANDE UF1" ne sert à rien. Le faire de surcroît en boucle relève de la déraison
3)With Sheets("LISTEACCOMP").Range("A100").End(xlUp)(2) = "" n'a, tel qu'écrit, aucun sens.
Salut
je te remercie de répondre; Les modifs suite à tes deux remarques ne changent rien au problème. d'autre part je ne sais pas ce que tu entends par "mettre le code entre balises" (question de neophite)
 

PHILLIEB

XLDnaute Nouveau
VB:
Private Sub ComboBox1_Change()
VISITEURUF1.TextBox4 = ""
VISITEURUF1.TextBox5 = ""
Dim i As Long
For i = 5 To 45
If VISITEURUF1.ComboBox1.Value = Sheets("COMMANDE UF1").Cells(i, 3).Value Then
VISITEURUF1.TextBox2.Value = Sheets("COMMANDE UF1").Cells(i, 1).Value
VISITEURUF1.TextBox3.Value = Sheets("COMMANDE UF1").Cells(i, 2).Value
Exit Sub
End If
Next
End Sub
Code:
Sub listeUF1()
'RENSEIGNER LISTEACCOMP
Dim i As Long
For i = 5 To 45

If VISITEURUF1.ComboBox1.Value = Sheets("COMMANDE UF1").Cells(i, 3).Value Then
Sheets("COMMANDE UF1").Range(Cells(i, 1), Cells(i, 41)).Copy Sheets("LISTEACCOMP").Range("A100").End(xlUp)(2)
Exit Sub
End If
Next
End Sub
 

Discussions similaires

Réponses
11
Affichages
297

Statistiques des forums

Discussions
312 310
Messages
2 087 127
Membres
103 479
dernier inscrit
Compta