Créer une liste dans une feuille VBA

Fermé
amerya2016 Messages postés 33 Date d'inscription mercredi 27 janvier 2016 Statut Membre Dernière intervention 23 février 2016 - 17 févr. 2016 à 11:37
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 - 23 févr. 2016 à 14:19
Bonjour. j'ai crée une feuille de calcule qui me permet de faire une classification selon catégorie A, B et C

j'ai passé par plusieurs étapes: la première est de saisir le nombre d'articles
après que mon application fait la classification
je voudrai que chaque catégorie et ses articles qui lui appartient s’affichent dans une autre feuille

par exemples les articles de la classe A s’afficheront dans une feuille (classe A)
j'ai besoin d'aide merci d'avance

http://www.cjoint.com/c/FBrkLxWuxHF
A voir également:

4 réponses

tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 035
18 févr. 2016 à 20:49
Bonjour, étant donné que les articles une fois triés pour la méthode ABC sont colorés (en admettant qu'il n'y a aucune erreur), c'est d'effectuer un tri sur la couleur. Tous les verts seront à copier sur une feuille A, les jaunes en B et rouge en C.

Déjà, créer les feuilles par vba

Sub ajout_feuille()
Sheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Classe B"
End Sub
3
amerya2016 Messages postés 33 Date d'inscription mercredi 27 janvier 2016 Statut Membre Dernière intervention 23 février 2016
21 févr. 2016 à 09:03
Bonjour, je vous remercie pour votre aide.
Mais encore j'ai pas compris ce que vous m'avez postuler puisque je suis un débutant en VBA. svp plus de détails
Merci
0
amerya2016 Messages postés 33 Date d'inscription mercredi 27 janvier 2016 Statut Membre Dernière intervention 23 février 2016
21 févr. 2016 à 11:07
Bonjour, j'ai céer les feuilles par vba Merci
Il me reste les autres étapes mnt ... comment faire svp?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
21 févr. 2016 à 09:17
Bonjour,
merci de joindre vos fichiers au format .zip , existant d'origine sur Windows, plut^t que de nous obliger à télécharger un logiciel .rar
0
amerya2016 Messages postés 33 Date d'inscription mercredi 27 janvier 2016 Statut Membre Dernière intervention 23 février 2016
21 févr. 2016 à 09:18
ok tout de suite :)
0
amerya2016 Messages postés 33 Date d'inscription mercredi 27 janvier 2016 Statut Membre Dernière intervention 23 février 2016
21 févr. 2016 à 09:22
ben voila ..

https://www.cjoint.com/c/FBvivxlyHag

Merci d'avance
0
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 035
Modifié par tyranausor le 22/02/2016 à 00:33
Bonjour, la suite de ce qui faut faire. Ta macro doit commencer par inspecter la couleur des cellules de la place K8 à K17 dans ton exemple (ou Ki où i est la dernière ligne).

Donc, commencer par créer la variable i (ou ce que tu veux) qui sera le n° de la ligne en question

i = range(K3600).end(xlup).row


et pour la sélection, la manière que je te propose c'est de partir de la cellule active (activecell) et de sélectionner ce qui est à gauche de celle-ci ce qui donnerait

Range(ActiveCell, ActiveCell.Offset(0, -9)).Select
où le -9 est le décompte des colonnes de gauche (de K8 à A8) et de coller la sélection dans la feuille adéquate que tu as créé
0
amerya2016 Messages postés 33 Date d'inscription mercredi 27 janvier 2016 Statut Membre Dernière intervention 23 février 2016
22 févr. 2016 à 08:48
Bonjour.... Merci Merci mais j'ai pas compris ... comme c compliqué lol...
SVP. si vous permettez plus de précision
je suis hyper débutant lol en VBA alors aidez moi pour réaliser mon projet .
0
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 035
22 févr. 2016 à 11:29
Bonjour, je n'avais pas bien tout lu sur le point où tu sis que tu débute, mille excuses. Donc, si tu veux quelques bases sur le VBA tu as ce site où tout est très expliqué avec captures d'écran à l'appui. Concernant mes lignes de code, i=range("K3600").end(xlup).row va, à partir de la cellule K3600 remonter toutes les lignes jusqu'à la première remplie.
Pour la seconde ligne, cela va créer une sélection allant de la cellule active jusqu'à la 9 cellules à gauche (le - (moins) signifie à gauche avec le paramètre offset => déplacement). Si tu copies ces deux lignes de code à la suite après Sub test() et terminant part end sub en pressant F8 (pas à pas), tu vois, au ralentit, ce que fera Excel en temps normal d'exécution. N'oublies pas de presser F1 pour de l'aide
0
amerya2016 Messages postés 33 Date d'inscription mercredi 27 janvier 2016 Statut Membre Dernière intervention 23 février 2016
22 févr. 2016 à 11:34
Merci cher Tyranausor ...
dans mon code ou je met ce que vous m'avez proposer.... exactement svp
0
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 035
Modifié par tyranausor le 22/02/2016 à 14:00
Pardon, j'avais oublié. Donc,
i = range(K3600).end(xlup).row
Range("K"& i, range("K" & i).Offset(0, -9)).Select

et pour la copier vers la feuille "Classe B" ce sera
Range("K" & i, Range("K" & i).Offset(0, -7)).Copy Destination:=Sheets("Classe B").Range("B2") 

à la place de
Range("K"& i, range("K" & i).Offset(0, -9)).Select
0
amerya2016 Messages postés 33 Date d'inscription mercredi 27 janvier 2016 Statut Membre Dernière intervention 23 février 2016
22 févr. 2016 à 13:45
excusez moi je demande trop

j'ai pas encore compris ou je met ce code? dans quel module ?
ou bien dans les nouvelles feuilles classe A....?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
Modifié par michel_m le 22/02/2016 à 11:01
Bonjour,
Pour l'instant je n'ai travaillé que sur la sub "preparer tableau" que j'ai simplifiée
La présentation des entêtes de ton tableau (B7:E7")sont déjà faites: pourquoi la tu reprogrammée ?
D'autre dans la macro suivante tu utilises toujours les colonnes F et G: pourquoi ne pas les dessiner 1 bonne fois pour toutes ?


Option Explicit
Dim x As Integer, classe_a As Integer, classe_b As Integer, classe_c As Integer
'----------------------------
Sub preparer_un_tableau()
Dim i As Integer

Application.ScreenUpdating = False
Range("B8:E1000").Clear

On Error GoTo erreur:
x = Application.InputBox("Veuillez introduire le nombre d'articles", "Nombre d'articles", "Veuillez introduire un nombre naturel", 1)
If x = 0 Then GoTo erreur
Randomize
For i = 1 To x
Cells(7 + i, 2) = i
Cells(7 + i, 3) = "Article " & i
Cells(7 + i, 4) = Int(Rnd * 1000) + 1
Cells(7 + i, 5) = Int(Rnd * 100) + 1
Next
Range(Cells(7, "B"), Cells(7+x, "E")).Borders.Weight = xlThin
Exit Sub

'gestionnaire erreurs
erreur:
MsgBox "saisie incorrecte", vbCritical
End Sub
"
pour la suite, combien prévois tu d'article: 50 500,5000....?
 Michel
0
amerya2016 Messages postés 33 Date d'inscription mercredi 27 janvier 2016 Statut Membre Dernière intervention 23 février 2016
22 févr. 2016 à 11:05
Bonjour.permettez moi de vous remercie infiniment .. c'est très gentil de votre part.
pour le nombre d'article ça dépend jusque à 10000 artciles
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
22 févr. 2016 à 11:40
ok,merci

du fait qu'on dépasse 1000 articles, utiliser des filtres pose problème (but de ma question)

qu'appelles tu "commentaire" dans ton code?
0
amerya2016 Messages postés 33 Date d'inscription mercredi 27 janvier 2016 Statut Membre Dernière intervention 23 février 2016
22 févr. 2016 à 11:44
c'est commentaire
ou bien j'ai pas compris votre question?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311 > amerya2016 Messages postés 33 Date d'inscription mercredi 27 janvier 2016 Statut Membre Dernière intervention 23 février 2016
Modifié par michel_m le 22/02/2016 à 13:59
A quoi correspond en langage VBA "commentaire" ?
pour avoir ce qui correspond au commentaire en Excel c'est "comments" en VBA.. cest ca que tu veux faire ?

Pour les colonnes F à L (G :faute de frappe!) que fait on : tu les mets on su la feuille avant action de "preparer_un_tableau" ?

les textes que tu as mis sont très longs comme par ex::"Pourcentage de nombre d'articles" et vont posés des pb de lecture a moins d'avir une largeur démésurée ou plusieurs lignes dans la cellule
donc: réduire tes textes ?

Merci de répondre à mes questions: je ne peux rien faire en attendant et j'ai d'autres trucs à faire...
0
amerya2016 Messages postés 33 Date d'inscription mercredi 27 janvier 2016 Statut Membre Dernière intervention 23 février 2016
22 févr. 2016 à 14:06
Cher michel_m. excusez mon niveau bas en vba. mais je sollicite votre aide pour terminer mon travail.
vous avez le fichier . vous avez toute la liberté pour modifier et proposer de modification pour tout choses vous voyez inutiles ou ...
le commentaire est le résumé de la classification
on peut le modifier ou bien le supprimer pas de problème
0