XL 2016 boucle copier textbox

plaiiz

XLDnaute Nouveau
Bonjour , mon problème doit être bidon pour vous pro d'Excel mais moi je ne comprend pas comment marche les boucles.
J'ai un userform dans lequel je rentre des donnée et lorsque je valide elle sont copier dans la feuil2 , je voudrai qu"il copie autant de fois les donnée rentrée qu'il y a de quantité rentrée dans la textbox3 , des conseil les amis ?
1625667092205.png
 

plaiiz

XLDnaute Nouveau
Bonjour,

Peut-être, un jour, ai-je été un pro d'excel (mékescequeuecesqssa?) en tous cas ma triste carrière ne m'a permis d'acquérir le don de macroter sur des images ! Vous avez le secret pour ça ? :)

cordialement
Bonjour Roblochon , j'ai malhereusement cru que je l'avais mis :( je te le joints .
Cordialement
 

Pièces jointes

  • essaye DLC VBA.xlsm
    23.2 KB · Affichages: 9

vgendron

XLDnaute Barbatruc
Hello

voila.. c'est bien ce que je disais :-D

VB:
Private Sub CommandButton1_Click()

Dim ligne As Integer
If MsgBox("confirmez-vous l'ajout des données?", vbYesNo, "confirmation") = vbYes Then
    Worksheets("Feuil2").Select
    ligne = Sheets("Feuil2").Range("A456541").End(xlUp).Row + 1
    Cells(ligne, 1) = ListBox1.Value
    Cells(ligne, 2) = TextBox2.Value
    Cells(ligne, 3) = TextBox1.Value
    Range(Cells(ligne, 1), Cells(ligne, 3)).Resize(TextBox3).FillDown
End If
End Sub
 

vgendron

XLDnaute Barbatruc
sinon, tu as quelques soucis..
ta listbox n'est pas bien chargée au lancement du formulaire
tu ne prends que la liste A2:A10.... ==> tout ce qui est après n'est pas listé
je ne sais pas trop ou tu en es du développement de ton fichier: est ce encore une ébauche, ou ce genre de souci doit etre résolu maintenant??
 

plaiiz

XLDnaute Nouveau
sinon, tu as quelques soucis..
ta listbox n'est pas bien chargée au lancement du formulaire
tu ne prends que la liste A2:A10.... ==> tout ce qui est après n'est pas listé
je ne sais pas trop ou tu en es du développement de ton fichier: est ce encore une ébauche, ou ce genre de souci doit etre résolu maintenant??
Alors j'en suis vraiment au début , et je n'est pas toute les astuces , je n'est lister que A2 à A10 car je n'aurai pas 600 produit et que je n'est pas envie davoir 3 tonne de blanc dans la liste box ^^
 

vgendron

XLDnaute Barbatruc
ok,
alors quelques conseils
1) donne des noms parlants à tes controls: plutot que textBox1.. appelle le tbDLC ==> comme ca.. quand tu sera dans le code associé, tu saura sur quoi tu travailles

2) utilises des plages nommées pour lister tes elements: exemple de ta liste produit
en définissant de manière dynamique (voir l'ex dans le gestionnaire de nom), la liste s'adapte automatiquement aux éléments qui sont listés: si tu ajoutes ou supprimes des produits, la liste se mettra à jour
tu peux ainsi utiliser le nom de la liste pour charger ta listbox

pour écrire sur une feuille: evite au maximum les feuille.activate ou . select..
==> ca ralenti le programme
==> c'est source de pb
==> et ca donne du code pas beau :-D

en parlant de code pas beau: il faut absolument se forcer à indenter les instructions pour identifier les blocs
ex: un des deux est plus lisible..
VB:
if condition then
faire instruction
else
faire autre instruction
end if

VB:
if condition then
     faire instruction
else
     faire autre instruction
end if

voir pj pour illustrer les quelques points évoqués[/code]
 

Pièces jointes

  • essaye DLC VBA.xlsm
    26 KB · Affichages: 6

plaiiz

XLDnaute Nouveau
ok,
alors quelques conseils
1) donne des noms parlants à tes controls: plutot que textBox1.. appelle le tbDLC ==> comme ca.. quand tu sera dans le code associé, tu saura sur quoi tu travailles

2) utilises des plages nommées pour lister tes elements: exemple de ta liste produit
en définissant de manière dynamique (voir l'ex dans le gestionnaire de nom), la liste s'adapte automatiquement aux éléments qui sont listés: si tu ajoutes ou supprimes des produits, la liste se mettra à jour
tu peux ainsi utiliser le nom de la liste pour charger ta listbox

pour écrire sur une feuille: evite au maximum les feuille.activate ou . select..
==> ca ralenti le programme
==> c'est source de pb
==> et ca donne du code pas beau :-D

en parlant de code pas beau: il faut absolument se forcer à indenter les instructions pour identifier les blocs
ex: un des deux est plus lisible..
VB:
if condition then
faire instruction
else
faire autre instruction
end if

VB:
if condition then
     faire instruction
else
     faire autre instruction
end if

voir pj pour illustrer les quelques points évoqués[/code]
Super merci de tes conseilles , tu et un vrai professeurs ^^,
Tu serai me dire si il et possible dans un autre userform de sélectionner un produit dans une listbox par exemple Cabillaud et qu'il maffiche tous les cabillauds enregistrée dans l'ordre de DLC , en pouvant sélectionner les quels à enlever?
Merci de ton aide
 

vgendron

XLDnaute Barbatruc
Tout est possible :)

il faut juste que tu définisses ton projet

exemple
dans la feuille 1: tu as une liste de produits que tu peux utiliser..
y a t il d'autres listes à définir dont tu aurais besoin? genre "Poisson - Viande - legumes"..
site de production, site de consomation, restaurant.. etc etc..

la feuille 1 pourrait accueillir toutes ces listes: et s'appeler "DefListes" plutot que feuil1

ta feuille2: celle ou tu colles les infos: c'est représente quoi? un stock ? => donc, la feuille pourrait s'appeler Stock
quelles sont les infos qui apparaitront ? pour l'instant, il y a en colA le produit, en colB le jour de saisie (tbdateJour du formulaire) et en col C la DLC..
il y a aura autre chose?

lors de la copie, tu as copié Qté de fois la meme ligne==> du coup..à quoi ca sert d'avoir Qtés de lignes identiques ? y aura t il d'autres colonnes avec une info qui permettra de distinguer toutes les lignes ?

une fois que tu aura défini tout ca, les formulaires ne seront que des outils pour filtrer les infos..
 

plaiiz

XLDnaute Nouveau
Tout est possible :)

il faut juste que tu définisses ton projet

exemple
dans la feuille 1: tu as une liste de produits que tu peux utiliser..
y a t il d'autres listes à définir dont tu aurais besoin? genre "Poisson - Viande - legumes"..
site de production, site de consomation, restaurant.. etc etc..

la feuille 1 pourrait accueillir toutes ces listes: et s'appeler "DefListes" plutot que feuil1

ta feuille2: celle ou tu colles les infos: c'est représente quoi? un stock ? => donc, la feuille pourrait s'appeler Stock
quelles sont les infos qui apparaitront ? pour l'instant, il y a en colA le produit, en colB le jour de saisie (tbdateJour du formulaire) et en col C la DLC..
il y a aura autre chose?

lors de la copie, tu as copié Qté de fois la meme ligne==> du coup..à quoi ca sert d'avoir Qtés de lignes identiques ? y aura t il d'autres colonnes avec une info qui permettra de distinguer toutes les lignes ?

une fois que tu aura défini tout ca, les formulaires ne seront que des outils pour filtrer les infos..
Super , en effet j'ai défini tout ça à l'instant , non pas besoin de colonnes supplémentaire , chaque ligne corresponds à un colis de rentrée dans les frigos , donc si j'ai 5 ligne de cabillaud , j'ai donc 5 colis de cabillaud au frigo , il s'agit la de surtout garder un oeils sur les DLC et d'anticipé sa comsommation avant l'arrivé de cette DLC.
 

vgendron

XLDnaute Barbatruc
à voir la PJ: est ce que ca t'irait un truc dans le genre ?
la colonne TagId sert pour identifier facilement quelle ligne supprimer
elle n'est pas encore gérée lors de l'ajout d'élements;
 

Pièces jointes

  • essaye DLC VBA.xlsm
    31.2 KB · Affichages: 3

plaiiz

XLDnaute Nouveau
à voir la PJ: est ce que ca t'irait un truc dans le genre ?
la colonne TagId sert pour identifier facilement quelle ligne supprimer
elle n'est pas encore gérée lors de l'ajout d'élements;
Super ces exactement ce que je voulait , il y aurai juste 2,3 modification à apporter si tu peut ? Dans lb_toSup il faudrai que cela soit classé par date la plus proche ou qu'elle soit de couleur a j-1 rouge et d'une autre a j-2 orange
par exemple je sais pas si ces faisable ?
D'autre par lors d'ajout d'un produit cabillaud par exemple , et que juste derriere j'en rajoute il remplace le premier au lieu de ce rajouter en dessous ? comment ce fait-il ?:p
Merci de ton aide
 

Discussions similaires

Statistiques des forums

Discussions
315 168
Messages
2 116 928
Membres
112 921
dernier inscrit
Nagazaki