kobejul08
Messages postés113Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention 3 octobre 2005
-
6 juin 2005 à 10:35
cs_franckydeluka
Messages postés228Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention 4 janvier 2008
-
6 juin 2005 à 14:10
Bonjour j'ai réalisé un control array pour réduire mon code quelqu'un peut m'aider concernant la formule a adapter??
Voici mon ancien code..
Dim Row
' Recherche la dernière ligne utilisée
Row = ActiveSheet.UsedRange.Row
'Row = Row + 1
With ActiveSheet
If TxtQuantité.Text <> "" Then
Row = Row + 1
monxl.Cells(Row, 1).Value = TxtMachine.Text
monxl.Cells(Row, 2).Value = TxtQuantité.Text
monxl.Cells(Row, 3).Value = TxtPrix.Text
End If
End With
With ActiveSheet
If TxtQuantité1.Text <> "" Then
Row = Row + 1
monxl.Cells(Row, 1).Value = Txtdétails1.Text
monxl.Cells(Row, 2).Value = TxtQuantité1.Text
monxl.Cells(Row, 3).Value = Txtprix1.Text
End If
End With
With ActiveSheet
If TxtQuantité2.Text <> "" Then
Row = Row + 1
monxl.Cells(Row, 1).Value = Txtdétails2.Text
monxl.Cells(Row, 2).Value = TxtQuantité2.Text
monxl.Cells(Row, 3).Value = Txtprix2.Text
End If
End With
With ActiveSheet
If TxtQuantité3.Text <> "" Then
Row = Row + 1
monxl.Cells(Row, 1).Value = Txtdétails3.Text
monxl.Cells(Row, 2).Value = TxtQuantité3.Text
monxl.Cells(Row, 3).Value = Txtprix3.Text
End If
End With
With ActiveSheet
If TxtQuantité4.Text <> "" Then
Row = Row + 1
monxl.Cells(Row, 1).Value = Txtdétails4.Text
monxl.Cells(Row, 2).Value = TxtQuantité4.Text
monxl.Cells(Row, 3).Value = Txtprix4.Text
End If
End With
With ActiveSheet
If TxtQuantité5.Text <> "" Then
Row = Row + 1
monxl.Cells(Row, 1).Value = Txtdétails5.Text
monxl.Cells(Row, 2).Value = TxtQuantité5.Text
monxl.Cells(Row, 3).Value = Txtprix5.Text
End If
End With
With ActiveSheet
If TxtQuantité6.Text <> "" Then
Row = Row + 1
monxl.Cells(Row, 1).Value = Txtdétails6.Text
monxl.Cells(Row, 2).Value = TxtQuantité6.Text
monxl.Cells(Row, 3).Value = Txtprix6.Text
End If
End With
With ActiveSheet
If TxtQuantité7.Text <> "" Then
Row = Row + 1
monxl.Cells(Row, 1).Value = Txtdétails7.Text
monxl.Cells(Row, 2).Value = TxtQuantité7.Text
monxl.Cells(Row, 3).Value = Txtprix7.Text
End If
End With
With ActiveSheet
If TxtQuantité8.Text <> "" Then
Row = Row + 1
monxl.Cells(Row, 1).Value = Txtdétails8.Text
monxl.Cells(Row, 2).Value = TxtQuantité8.Text
monxl.Cells(Row, 3).Value = Txtprix8.Text
End If
End With
With ActiveSheet
If TxtQuantité9.Text <> "" Then
Row = Row + 1
monxl.Cells(Row, 1).Value = Txtdétails9.Text
monxl.Cells(Row, 2).Value = TxtQuantité9.Text
monxl.Cells(Row, 3).Value = Txtprix9.Text
End If
End With
TxtQuantité1(0)....jusque 33
Txtdétails1(0) ... jusque 33
Comment réduire tout ce code maintenant? merci
....En dehors du 1er code, ou le name de ta textbox differe et ou il devra y avoir une adaptation :
dim i as integer
for i = 0 to 33
With ActiveSheet
If TxtQuantité(i).Text <> "" Then
Row = Row + 1
select case i
case 0
monxl.Cells(Row, 1).Value = TxtMachine.Text
monxl.Cells(Row, 2).Value = TxtQuantité(i).Text
monxl.Cells(Row, 3).Value = TxtPrix(i).Text
case else
monxl.Cells(Row, 1).Value = Txtdétails(i).Text
monxl.Cells(Row, 2).Value = TxtQuantité(i).Text
monxl.Cells(Row, 3).Value = Txtprix(i).Text
end select
End If
End With
next i
Biensur je suppose qu'il doit falloir l'adapter, compte tenu que je ne connais pas tout a fait les détails de ton code, mais ca devrait ressembler à ca.
Bonne prog, [mailto:liquide_vaisselle_76@hotmail.fr liquide_vaisselle_76@hotmail.fr]
liquide (Membre "Liquide-Fundation" -- tout ce qui peut etre bu est interdit -- les alcolo sont mals , moi le 1er&n
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 6 juin 2005 à 11:24
Utilise des groupes de contrôles (contrôles ayant le même nom mais avec
des numéros d'index pour les différencier) ainsi qu'une boucle For, et
cela te permettra de réduire ton code à une dizaine de ligne environ !
DarK Sidious
Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
cs_liquide
Messages postés1016Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention24 juin 2008 6 juin 2005 à 11:55
Sauf que ca a l'air d'etre du vba, pour les index ca va etre plus compliqué que ca.
Bonne prog, [mailto:liquide_vaisselle_76@hotmail.fr liquide_vaisselle_76@hotmail.fr]
liquide (Membre "Liquide-Fundation" -- tout ce qui peut etre bu est interdit -- les alcolo sont mals , moi le 1er&n
kobejul08
Messages postés113Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention 3 octobre 2005 6 juin 2005 à 12:15
oui comme For i = 0 To 33
Mais le probleme c'est que je sais pas comment faire quand on utilise des groupes de controles ainsi ...J'ai déjà fait un control array avec TxtQuantité1[0] TxtQuantité1[1]... etc mais je m'y retrouve pas en faisant le code qq un pourrait débuter le code après For i = 0 To 33
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_liquide
Messages postés1016Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention24 juin 2008 6 juin 2005 à 12:19
c'est du vb ou du vba ?
Bonne prog, [mailto:liquide_vaisselle_76@hotmail.fr liquide_vaisselle_76@hotmail.fr]
liquide (Membre "Liquide-Fundation" -- tout ce qui peut etre bu est interdit -- les alcolo sont mals , moi le 1er&n
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 6 juin 2005 à 13:44
Oui, assez !
Donc, c'est bien cà, utilise un groupe de contrôle (renomme tout tes
contrôles du même style avec le même nom tout simplement, au lieu de
laisser un numéro derrière le nom !), ca t'évitera ce genre de
gonflement dans le code.
DarK Sidious
Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
cs_franckydeluka
Messages postés228Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention 4 janvier 20081 6 juin 2005 à 14:10
sinon tu peux utiliser des listbox plutôt que des textbox
comme
For i = 0 To 33
With ActiveSheet
If ListQuantité.List(i)<> "" Then
Row = Row + 1
monxl.Cells(Row, 1).Value = ListMachine.List(i)
monxl.Cells(Row, 2).Value = ListQuantité.List(i)
monxl.Cells(Row, 3).Value = ListPrix.List(i)
End If
End With