Macro dans un classeur excel 2007
Résolu
eliot34
Messages postés
2232
Date d'inscription
Statut
Membre
Dernière intervention
-
eliot34 Messages postés 2232 Date d'inscription Statut Membre Dernière intervention -
eliot34 Messages postés 2232 Date d'inscription Statut Membre Dernière intervention -
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.
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:
- Macro dans un classeur excel 2007
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Save as pdf office 2007 - Télécharger - Bureautique
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Trier un tableau excel - Guide
7 réponses
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 :
Salutations.
Le Pingou
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
Salut le forum
Il serait plus judicieux d'attendre la fin de remplissage de la ligne
Mytå
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
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)]
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Selon la structure de votre document, il est préférable d'utiliser le trie manuel qui sera plus efficace.
Désolé.
Selon la structure de votre document, il est préférable d'utiliser le trie manuel qui sera plus efficace.
Désolé.
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.
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.
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
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
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.
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.
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.
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
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.
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.