Macro dans un classeur excel 2007

Résolu/Fermé
eliot34 Messages postés 2233 Date d'inscription lundi 14 avril 2008 Statut Membre Dernière intervention 12 septembre 2023 - 4 juil. 2010 à 10:28
eliot34 Messages postés 2233 Date d'inscription lundi 14 avril 2008 Statut Membre Dernière intervention 12 septembre 2023 - 17 juil. 2010 à 00:01
Bonjour,

Je souhaite faire une macro dans un classeur excel 2007.

J'aimerai qu'un tri alphabétique se fasse automatiquement lorsque je crée une ligne.

En fait, ma feuille est une gestion de stock, avec plusieurs famille de produits et plusieurs colones pour chaque ligne.
Donc a chaque ligne que j'entre dans une famille il faudrai qu'elle se classe automatiquement sans que j'ai a faire "trier de A a Z"

J'ai essayé mais je n'y arrive pas. Je m'y prend peut être mal.

Merci pour votre aide.




A voir également:

7 réponses

Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
Modifié par Le Pingou le 4/07/2010 à 22:45
Bonjour,
Essayer avec se code à mettre dans le module de feuille.
Il détecte l'entré dans la colonne A et trie les 6 colonnes A:E sur la A en tenant compte des titres de colonnes :
Private Sub Worksheet_Change(ByVal Target As Range)   
If Not Application.Intersect(ActiveCell, Range("A:A")) Is Nothing Then   
    Columns("A:E").Sort Key1:=Columns(1), Order1:=xlAscending, Header:=xlGuess   
End If   
End Sub

Salutations.
Le Pingou
0
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 949
Modifié par Mytå le 4/07/2010 à 23:21
Salut le forum

Il serait plus judicieux d'attendre la fin de remplissage de la ligne

Private Sub Worksheet_Change(ByVal Target As Range) 
If Not Application.Intersect(Target, Range("E:E")) Is Nothing Then 
    Columns("A:E").Sort Key1:=Columns(1), Order1:=xlAscending, Header:=xlYes 
End If 
End Sub

Mytå
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
4 juil. 2010 à 22:32
Bonjour,
Et s'il ne la remplie pas, il fait comment ?
0
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 949
5 juil. 2010 à 00:47
Re le forum

Je suis à la ligne 3000, j'entre la donnée et oups la ligne est rendu ou pour la complèter.

Attendons de voir ce que veux vraiment Eliot.

Mytå
0
eliot34 Messages postés 2233 Date d'inscription lundi 14 avril 2008 Statut Membre Dernière intervention 12 septembre 2023 182
5 juil. 2010 à 01:48
Voici le liens pour dl du fameu classeur de mon stock.
http://eliot34.free.fr/fichier_divers/Inventaire%20Nlle%20Proc%c3%a9dure%20(CA%20-%20KP%20-%20KY)%20V2%20by%20LL1.xlsx

Prenons juste une feuille "dejeuner-diner", la famille B.O.F. J'aimerai que quand je rentre par exemple "fromage blanc" dans la colone 'nom de l'arcticle", il se mette automatiquemant par ordre alphabétique par rapport au autres article de la famille B.O.F quand je passe a la ligne suivante.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
5 juil. 2010 à 17:06
Bonjour,
Selon la structure de votre document, il est préférable d'utiliser le trie manuel qui sera plus efficace.
Désolé.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
5 juil. 2010 à 17:41
bonjour

Il manquait de nombreuses précisions pour avoir une fonction qui soit fonctionnelle.

Regardes si cela te convient :

http://www.cijoint.fr/cjlink.php?file=cj201007/cijTIVUqEZ.zip

J'ai compressé ton fichier car il a une taille anormale pour son contenu : tu devrais vérifier les lignes et colonnes inutiles.
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
5 juil. 2010 à 23:00
Bonjour gbinforme,
Merci, c'est avec grand plaisir que j'ai découvert votre proposition.
Salutations.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
7 juil. 2010 à 09:15
Bonjour Le Pingou,
J'ai essayé de coller au plus près au cahier des charges mais sans retour, on ne saura pas si cela convient.
Je ne comprend toujours pas pourquoi ce classeur est si volumineux.
Bien amicalement.
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
Modifié par Le Pingou le 7/07/2010 à 09:53
Bonjour gbinforme,
Concernant le volume, j'ai cherché un petit peu, finalement j'ai supprimé la première feuille ([Rappel de la procédure] qui de plus est protègée par mdp) et le volume est maintenant de 622 ko.
Excellente semaine.
Amicales salutations
0
eliot34 Messages postés 2233 Date d'inscription lundi 14 avril 2008 Statut Membre Dernière intervention 12 septembre 2023 182
7 juil. 2010 à 10:41
Merci pour votre aide à tous les deux.
Donc il semble pas possible de faire ce tri automatiquement.
Je ne met pas le sujet en résolu au cas ou!!

A bientôt
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
7 juil. 2010 à 17:15
Tu as peut-être oublié de tester ma proposition alors que Le Pingou la juge tout à fait conforme.
J'avais pourtant inséré ton "fromage blanc" ... automatiquement à sa place.
0
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 1 449
Modifié par Le Pingou le 7/07/2010 à 10:52
Bonjour eliot34,
Eh bien là vous n'avez par essayé la proposition de gbinforme qui répond exactement à votre demande.
Je l'ai personnellement testé pour apprendre le fonctionnement et c'est parfait.
Dès que vous avez entré la donnée [NOM DE L'ARTICLE] la procédure se déclenche et trie la catégorie en cours.

Salutations.
Le Pingou
0
eliot34 Messages postés 2233 Date d'inscription lundi 14 avril 2008 Statut Membre Dernière intervention 12 septembre 2023 182
8 juil. 2010 à 00:31
Milles pardon a tous les deux.

L'erreure que je faisait, et que trop pressé de tous rentrer, je ne rentrais que la cellule du "nom de l'arcticle" et cela me marquait une erreure. Mais en rentrant comme il faut toutes les cellules, le tri ce fait comme je le souhaitais.

Donc un grand merci a tous les deux.
0
eliot34 Messages postés 2233 Date d'inscription lundi 14 avril 2008 Statut Membre Dernière intervention 12 septembre 2023 182
8 juil. 2010 à 01:07
J'aimerai savoir la procédure que vous avez appliqué pour obtenir ce resultat, pour que je puisse l'appliquer au classeur entier.

merci.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 708
8 juil. 2010 à 08:49
Bonjour,

La procédure est une macro événementielle sur la feuille concernée puisque tous tes onglets ne sont pas identiques et que le tri doit changer de colonne (C par exemple). Tu ne peux donc en raison de ce manque d'homogénéité mettre la procédure sur le classeur car tu auras des résultats curieux sur certaines feuilles en triant sur le prix.

Private Sub Worksheet_Change(ByVal sel As Range)
Const col = "D" ' colonne de tri
If sel.Count > 1 Then Exit Sub
If Not Intersect(sel, Columns(col)) Is Nothing And sel.Value <> "" Then
    Dim deb As Long, fin As Long
    For deb = sel.Row To 1 Step -1
        If Application.WorksheetFunction.CountA(Cells(deb, 1).Resize(1, 8)) < 2 Then Exit For
    Next deb
    For fin = sel.Row To UsedRange.Rows.Count
        If Application.WorksheetFunction.CountA(Cells(fin, 1).Resize(1, 8)) < 2 Then Exit For
    Next fin
       Cells(deb, 1).Resize(fin - deb, 20).Sort Key1:=Columns(col), Order1:=xlAscending, Header:=xlYes
End If
End Sub
0
eliot34 Messages postés 2233 Date d'inscription lundi 14 avril 2008 Statut Membre Dernière intervention 12 septembre 2023 182
8 juil. 2010 à 13:20
Merci beaucoup, j'ai juste modifié la colonne de tri car sur certaine feuille c'est la C et d'autre c'est la D.

Merci pour votre aide.
0
eliot34 Messages postés 2233 Date d'inscription lundi 14 avril 2008 Statut Membre Dernière intervention 12 septembre 2023 182
Modifié par eliot34 le 17/07/2010 à 00:02
Me revoila.

Pour continuer sur mon classeur, j'aimerai ajouter une fonction;
Donc quand je crée une nouvelle ligne pour un nouvel article, j'aimerai qu'une formule de multiplication se crée en même temps pour les colones (Prix HT*Stock) résultat dans (Total stock).
J'aimerai qu'elle se crée automatiquement pour ne pas avoir a la faire manuellement à chaque fois que je crée une nouvelle ligne.

Merci.
0