Problème avec la macro TRIER
Résolu
DAN66
-
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Un nouveau problème.
J'ai un fichier avec des tableaux tous identiques et j'ai plusieurs macros à l'intérieur.
Mais une me pose problème.
Je luis demande de trier de la cellule A6 jusqu'à la dernière ligne du tableau, mais quand on clic sur le bouton TRIER, le tri s'effectue mais aussi ça ne colle des lignes des entêtes de colonnes et d'autres lignes après la fin du tableau.
Je vous joins un exemplaire du tableau.
https://www.cjoint.com/c/LCEjii8hKJc
Merci de votre aide.
Un nouveau problème.
J'ai un fichier avec des tableaux tous identiques et j'ai plusieurs macros à l'intérieur.
Mais une me pose problème.
Je luis demande de trier de la cellule A6 jusqu'à la dernière ligne du tableau, mais quand on clic sur le bouton TRIER, le tri s'effectue mais aussi ça ne colle des lignes des entêtes de colonnes et d'autres lignes après la fin du tableau.
Je vous joins un exemplaire du tableau.
https://www.cjoint.com/c/LCEjii8hKJc
Merci de votre aide.
Configuration: Windows / Firefox 98.0
A voir également:
- Problème avec la macro TRIER
- Excel trier par ordre croissant chiffre - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Logiciel pour trier les photos automatiquement - Guide
20 réponses
Bonjour,
Cellules A200 a A203 contiennent le Prenom DANY
Cellules A200 a A203 contiennent le Prenom DANY
Bonjour f894009,
c'est normal, c'est mon point de repère pour la macro "GO RECAP"
En fait avec cette macro je veux que lorsque l'on clic su GO RECAP le curseur se positionne 5 ligne en dessous du tableau en colonne A.
Mais je ne sais pas faire autrement qu'avec ce point de repère "DANY"
Si tu as une autre solution SANS POINTS DE REPÈRE je suis preneur.
Merci.
c'est normal, c'est mon point de repère pour la macro "GO RECAP"
En fait avec cette macro je veux que lorsque l'on clic su GO RECAP le curseur se positionne 5 ligne en dessous du tableau en colonne A.
Mais je ne sais pas faire autrement qu'avec ce point de repère "DANY"
Si tu as une autre solution SANS POINTS DE REPÈRE je suis preneur.
Merci.
Bonjour,
Il me semble que vous êtes à l'origine du poste [Erreur 1004] si c'est le cas je vais regardé votre fichier en fin de journée pour essayer de vous aider!
Il me semble que vous êtes à l'origine du poste [Erreur 1004] si c'est le cas je vais regardé votre fichier en fin de journée pour essayer de vous aider!
Bonjour à tous,
Une solution possible, à adapter éventuellement, en nommant les cellules repères pour TRIER et GO_RÉCAP. Ces cellules sont automatiquement décalées en cas d'insertion de lignes.
https://www.cjoint.com/c/LCEmKHLzjAi
Cordialement
Une solution possible, à adapter éventuellement, en nommant les cellules repères pour TRIER et GO_RÉCAP. Ces cellules sont automatiquement décalées en cas d'insertion de lignes.
https://www.cjoint.com/c/LCEmKHLzjAi
Cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour a tous
DAN66
Vu que la ligne NE PAS MODIFIER............. doit toujours etre presente
DAN66
Vu que la ligne NE PAS MODIFIER............. doit toujours etre presente
Sub TRIER() ' ' TRIER Macro ' Txt = "*NE PAS MODIFIER*" Nb = Application.CountIf(Columns(1), Txt) If Nb = 1 Then Lig = Columns(1).Find(Txt, Cells(6, 1), , xlPart).Row - 1 'derniere ligne du tableau Else MsgBox "Attention: cette ligne n'existe plus!!!!" Exit Sub End If Range("A6:AM" & Lig).Sort [A6], xlAscending, Header:=xlNo End Sub
Bonjour,
Je suis de retour, c'est bien que vous avez remplacé le code par celui de f894009.
Est-ce que je peut utiliser votre fichier joint du poste 1 pour tester ou y-a t'il un autre fichier !
Merci du retour.
Je suis de retour, c'est bien que vous avez remplacé le code par celui de f894009.
Est-ce que je peut utiliser votre fichier joint du poste 1 pour tester ou y-a t'il un autre fichier !
Merci du retour.
Bonjour Le Pingou,
Oui bien sûr vous pouvez utiliser le fichier joint.
Il n'y a pas d'autre fichier.
Il y a d'autres onglets, mais EXACTEMENT identique à celui que j'ai joins,
seul le nombre de lignes diffère.
Alors, en fait la macro GO RECAP fonctionne avec les cellules repères "DANY".
J'aurai préféré qu'elle fonctionne avec une macro amenant le curseur à cinquième ligne de la colonne A en dessous du tableau directement sans avoir de cellules repères.
Mais bon, si on ne peux pas faire autrement, tant pis.
C'est la macro TRIER qui me pose problème.
Oui bien sûr vous pouvez utiliser le fichier joint.
Il n'y a pas d'autre fichier.
Il y a d'autres onglets, mais EXACTEMENT identique à celui que j'ai joins,
seul le nombre de lignes diffère.
Alors, en fait la macro GO RECAP fonctionne avec les cellules repères "DANY".
J'aurai préféré qu'elle fonctionne avec une macro amenant le curseur à cinquième ligne de la colonne A en dessous du tableau directement sans avoir de cellules repères.
Mais bon, si on ne peux pas faire autrement, tant pis.
C'est la macro TRIER qui me pose problème.
Bonjour,
Pour ce soir je peut vous confirmez que sur votre fichier avec la macro de f894009 tout fonctionne correctement , j'ai aussi testé avec le tri descendant [ xlDescending].
Petite question: pourquoi vous ne mettez pas vos tableaux qui se trouvent sous [NE PAS MODIFIER, EFFACER OU SUPPRIMER CETTE DERNIÈRE LIGNE,....] sur une autre feuille, pour moi se sera plus propre , les données de base sur une feuille et vos divers tableaux d'informations sur une autre!
A quoi vous sert la ligne 5....?
Pour ce soir je peut vous confirmez que sur votre fichier avec la macro de f894009 tout fonctionne correctement , j'ai aussi testé avec le tri descendant [ xlDescending].
Petite question: pourquoi vous ne mettez pas vos tableaux qui se trouvent sous [NE PAS MODIFIER, EFFACER OU SUPPRIMER CETTE DERNIÈRE LIGNE,....] sur une autre feuille, pour moi se sera plus propre , les données de base sur une feuille et vos divers tableaux d'informations sur une autre!
A quoi vous sert la ligne 5....?
Bonjour,
Dans un premier temps j'ai modifier le code de la macro GO RECAP ( plus besoin de balise "DANY")
Le fichier: https://www.cjoint.com/c/LCEufM402gn
Dans un premier temps j'ai modifier le code de la macro GO RECAP ( plus besoin de balise "DANY")
Le fichier: https://www.cjoint.com/c/LCEufM402gn
Bonjour Le Pingou,
Tout d'abord désolé de ne pas avoir donné de réponse hier soir, de la visite inattendue.
J'y suis depuis 7 heures ce matin et je commençais à désespérer, car plus rien ne fonctionnait.
J'ai donc tout éteint, re allumé, puis j'ai installé la nouvelle macro GO RECAP et j'ai réaffecté la macro au bouton et là ça a fonctionné.
J'ai en suite fait de même avec la macro TRIER et idem ça fonctionne.
Sauf que la ligne insérée ne se positionne pas en dernière ligne du tableau, mais en avant dernière.
Possible de modifier ça ?
Par avance merci.
Tout d'abord désolé de ne pas avoir donné de réponse hier soir, de la visite inattendue.
J'y suis depuis 7 heures ce matin et je commençais à désespérer, car plus rien ne fonctionnait.
J'ai donc tout éteint, re allumé, puis j'ai installé la nouvelle macro GO RECAP et j'ai réaffecté la macro au bouton et là ça a fonctionné.
J'ai en suite fait de même avec la macro TRIER et idem ça fonctionne.
Sauf que la ligne insérée ne se positionne pas en dernière ligne du tableau, mais en avant dernière.
Possible de modifier ça ?
Par avance merci.
Bonjour,
Je vais réaliser un test.
Petite question il me semble que la macro [Archiver] à un comportement bizarre .... Que voulez-vous exactement comme résultat ?
Je vais réaliser un test.
Petite question il me semble que la macro [Archiver] à un comportement bizarre .... Que voulez-vous exactement comme résultat ?
Bonjour,
Le tri est correct selon la date entrée en A7 (ligne 7 selon votre code [insérer une ligne et non pas ligne 6 comme vous l’aviez mentionné dans votre texte) est bien positionnée selon sa date (a la fin si plus grande que la dernière date existante… !
Par contre la macro pour insérer une nouvelle ligne est étrange… ! voir image :

Sa sert à quoi ce que vous avez pour chaque cellule de la ligne 6 !
Petite question il me semble que la macro [Archiver] à un comportement bizarre .... Que voulez-vous exactement comme résultat ?
Le tri est correct selon la date entrée en A7 (ligne 7 selon votre code [insérer une ligne et non pas ligne 6 comme vous l’aviez mentionné dans votre texte) est bien positionnée selon sa date (a la fin si plus grande que la dernière date existante… !
Par contre la macro pour insérer une nouvelle ligne est étrange… ! voir image :
Sa sert à quoi ce que vous avez pour chaque cellule de la ligne 6 !
Petite question il me semble que la macro [Archiver] à un comportement bizarre .... Que voulez-vous exactement comme résultat ?
Bonjour Le Pingou,
- Alors oui, tout à fait la ligne insérée se positionne tout à fait correctement.
Je n'avais pas fais attention que la ligne que j'ai insérée et triée avait une date Inférieure à la date de la dernière ligne. Donc après essai, effectivement TOUT VA BIEN.
- La ligne 6 est une ligne cachée (Hauteur de ligne = 0),
En fait, elle sert à reproduire les mises en forme et les formules dans la ligne insérée.
En regardant le détail de la macro [Insérer une ligne], on peut voir que c'est en fait la copie de la ligne 8 sur la ligne insérée (pour reproduire la mise en forme, les formules et les validations) et ensuite un effacement des données sur la ligne insérée. C'est le seul moyen que j'ai trouvé pour tout automatiser.
Mais apparemment elle fonctionne normalement.
- Pour la macro [Archiver] je veux qu'elle :
recopie, quand on clic sur le bouton ARCHIVER ( petit dessin d'ordi portable à droite du tableau RÉCAPITULATIF DES COMMISSIONS VERSÉES : ) les valeurs les formats et les validations.
Ce tableau qui récapitule les données et calculs du mois et se positionne sous le mot ARCHIVAGE et fait descendre les autres de manière à avoir à vue toujours le dernier mois.
Ainsi on garde une trace de ce qui a été calculé mois par mois.
Espérant avoir répondu à tout.
Merci beaucoup.
- Alors oui, tout à fait la ligne insérée se positionne tout à fait correctement.
Je n'avais pas fais attention que la ligne que j'ai insérée et triée avait une date Inférieure à la date de la dernière ligne. Donc après essai, effectivement TOUT VA BIEN.
- La ligne 6 est une ligne cachée (Hauteur de ligne = 0),
En fait, elle sert à reproduire les mises en forme et les formules dans la ligne insérée.
En regardant le détail de la macro [Insérer une ligne], on peut voir que c'est en fait la copie de la ligne 8 sur la ligne insérée (pour reproduire la mise en forme, les formules et les validations) et ensuite un effacement des données sur la ligne insérée. C'est le seul moyen que j'ai trouvé pour tout automatiser.
Mais apparemment elle fonctionne normalement.
- Pour la macro [Archiver] je veux qu'elle :
recopie, quand on clic sur le bouton ARCHIVER ( petit dessin d'ordi portable à droite du tableau RÉCAPITULATIF DES COMMISSIONS VERSÉES : ) les valeurs les formats et les validations.
Ce tableau qui récapitule les données et calculs du mois et se positionne sous le mot ARCHIVAGE et fait descendre les autres de manière à avoir à vue toujours le dernier mois.
Ainsi on garde une trace de ce qui a été calculé mois par mois.
Espérant avoir répondu à tout.
Merci beaucoup.
Bonjour,
Merci du retour.
Comme tout est parfait pour vous, j’ai uniquement modifié la macro pour archiver.
J’ai aussi supprimé les balises [Dany] dans la colonne [A] qui sont obsolètes.
Votre fichier : https://www.cjoint.com/c/LCFotcuoOpn
Merci du retour.
Comme tout est parfait pour vous, j’ai uniquement modifié la macro pour archiver.
J’ai aussi supprimé les balises [Dany] dans la colonne [A] qui sont obsolètes.
Votre fichier : https://www.cjoint.com/c/LCFotcuoOpn
J'ai installé votre nouvelle macro [Archiver] et pas de problème.
Maintenant tout fonctionne PARFAITEMENT.
Sincèrement un grand, Grand, GRAND MERCI pour tout ce que vous avez fait, le temps pris pour m'aider et la patience.
Deux petites dernières questions,
- Comment on fait pour apprendre et arriver à faire ce que vous faites ?
- Comme je n'ai pas le bouton Résolu, est-ce que vous l'avez ?
et si oui mettre cette discussion en Résolu.
Encore un sincère merci Le Pingou et portez-vous bien.
Daniel.
P.S Un grand merci aussi à F894009 et ALS35.
Maintenant tout fonctionne PARFAITEMENT.
Sincèrement un grand, Grand, GRAND MERCI pour tout ce que vous avez fait, le temps pris pour m'aider et la patience.
Deux petites dernières questions,
- Comment on fait pour apprendre et arriver à faire ce que vous faites ?
- Comme je n'ai pas le bouton Résolu, est-ce que vous l'avez ?
et si oui mettre cette discussion en Résolu.
Encore un sincère merci Le Pingou et portez-vous bien.
Daniel.
P.S Un grand merci aussi à F894009 et ALS35.
Bonjour Le Pingou,
Vous êtes là ?
Gros problème avec les macros :
TRIER, GO_RÉCAP et ARCHIVER.
Merci de votre réponse.
Vous êtes là ?
Gros problème avec les macros :
TRIER, GO_RÉCAP et ARCHIVER.
Merci de votre réponse.
Bonjour,
Qu'elle est se gros problème ?
Qu'elle est se gros problème ?
Bonjour Le Pingou,
Merci de m'avoir répondu si vite.
Eh bien AUCUNE des 3 macros ne fonctionne.
Pour TRIER et GO RÉCAP, quand je clic dessus, une fenêtre s'ouvre me disant :
Attention, cette ligne n'existe plus!!!!
Et pour Archiver, la fenêtre me dit :
Erreur d'exécution '91':
Variable objet ou variable de bloc With non définie
et c'est la ligne :
ligrep = Columns(1).Find(Txt, Cells(6, 1), , xlPart).Row 'ligne repère
qui est surlignée en jaune.
Alors l'autre jour je vous ai dis que tout fonctionnait, mais avec la votre.
Quand je l'ai recopié, uniquement la vôtre, dans mon fichier plus rien ne fonctionnait.
Merci de votre aide.
Merci de m'avoir répondu si vite.
Eh bien AUCUNE des 3 macros ne fonctionne.
Pour TRIER et GO RÉCAP, quand je clic dessus, une fenêtre s'ouvre me disant :
Attention, cette ligne n'existe plus!!!!
Et pour Archiver, la fenêtre me dit :
Erreur d'exécution '91':
Variable objet ou variable de bloc With non définie
et c'est la ligne :
ligrep = Columns(1).Find(Txt, Cells(6, 1), , xlPart).Row 'ligne repère
qui est surlignée en jaune.
Alors l'autre jour je vous ai dis que tout fonctionnait, mais avec la votre.
Quand je l'ai recopié, uniquement la vôtre, dans mon fichier plus rien ne fonctionnait.
Merci de votre aide.
Bonjour,
Dans un premier temps, comme cela fonctionne sur mon fichier du poste 29 et selon votre réponse ,je pense que vous avez modifié la position de votre texte (NE PAS MODIFIER, EFFACER OU SUPPRI...) qui ne se trouve plus dans la colonne 1 ou qui ne l'ai pas!
Dans un premier temps, comme cela fonctionne sur mon fichier du poste 29 et selon votre réponse ,je pense que vous avez modifié la position de votre texte (NE PAS MODIFIER, EFFACER OU SUPPRI...) qui ne se trouve plus dans la colonne 1 ou qui ne l'ai pas!
Bonjour,
Effectivement la ligne ( NE PAS MODIFIER, EFFACER, OU SUPPRI...)
Dans mes tableaux n'était pas en colonne A mais en colonne B.
Je l'ai déplacé et effectivement tout fonctionne.
Serait-il possible de vous demander une dernière chose ?
Dans la macro ARCHIVER, j'aurai voulu une modification, un ajout.
Lorsqu'elle a recopié le tableau :
RÉCAPITULATIF DES COMMISSIONS VERSÉES :
Elle efface le contenu des deux cellules vertes qui se trouvent dans la colonne E,
mais uniquement dans celui du PREMIER tableau c'est à dire celui qui est copié.
Est-ce possible ?
Par avance, merci.
Effectivement la ligne ( NE PAS MODIFIER, EFFACER, OU SUPPRI...)
Dans mes tableaux n'était pas en colonne A mais en colonne B.
Je l'ai déplacé et effectivement tout fonctionne.
Serait-il possible de vous demander une dernière chose ?
Dans la macro ARCHIVER, j'aurai voulu une modification, un ajout.
Lorsqu'elle a recopié le tableau :
RÉCAPITULATIF DES COMMISSIONS VERSÉES :
Elle efface le contenu des deux cellules vertes qui se trouvent dans la colonne E,
mais uniquement dans celui du PREMIER tableau c'est à dire celui qui est copié.
Est-ce possible ?
Par avance, merci.
Bonjour,
Je vais regarder la demande mais plus tard.
En marge vous avez contrôlé d'où viennent les valeurs de cellules E202 =J193 et E205 = O193 .....étrange...! voir image:
En plus les valeurs que vous voulez effacer sont comprises dans la somme
=SOMME(E202:E207) ... alors si on les effacent le total n'est plus cohérent...!
Je vais regarder la demande mais plus tard.
En marge vous avez contrôlé d'où viennent les valeurs de cellules E202 =J193 et E205 = O193 .....étrange...! voir image:
En plus les valeurs que vous voulez effacer sont comprises dans la somme
=SOMME(E202:E207) ... alors si on les effacent le total n'est plus cohérent...!
Bonjour,
Le plus simple remplacer la macro par celle-ci:
Le plus simple remplacer la macro par celle-ci:
Sub ARCHIVER() ' mofifier Le Pingou Dim Txt As String Dim ligrep As Integer, ce_1 As Integer, ce_2 As Integer Dim TabRecap As Range Txt = "*NE PAS MODIFIER*" ligrep = Columns(1).Find(Txt, Cells(6, 1), , xlPart).Row 'ligne repère ' position ligne cellules à effacer ce_1 = ligrep + 26 + 1: ce_2 = ligrep + 26 + 4 Set TabRecap = ActiveSheet.Range("B" & ligrep + 3 & ": J" & ligrep + 10) ActiveSheet.Range("B" & ligrep + 24 & ":B" & ligrep + 33).EntireRow.Insert TabRecap.Copy With ActiveSheet.Range("B" & ligrep + 26) .Select .PasteSpecial Paste:=xlPasteValues .PasteSpecial Paste:=xlPasteFormats .PasteSpecial Paste:=xlPasteValidation End With Range("E" & ce_1).ClearContents Range("E" & ce_2).ClearContents Application.CutCopyMode = True ActiveSheet.Range("B" & ligrep + 2).Activate ThisWorkbook.Save End Sub
Bonjour,
Désolé mais vous aviez précisé ceci :
mais uniquement dans celui du PREMIER tableau c'est à dire celui qui est copié.
Et non pas sur l'original...!
Désolé mais vous aviez précisé ceci :
mais uniquement dans celui du PREMIER tableau c'est à dire celui qui est copié.
Et non pas sur l'original...!
Bonjour,
La correction:
La correction:
Sub ARCHIVER() ' mofifier Le Pingou Dim Txt As String Dim ligrep As Integer Dim TabRecap As Range Txt = "*NE PAS MODIFIER*" ligrep = Columns(1).Find(Txt, Cells(6, 1), , xlPart).Row 'ligne repère Set TabRecap = ActiveSheet.Range("B" & ligrep + 3 & ": J" & ligrep + 10) ActiveSheet.Range("B" & ligrep + 24 & ":B" & ligrep + 33).EntireRow.Insert TabRecap.Copy With ActiveSheet.Range("B" & ligrep + 26) .Select .PasteSpecial Paste:=xlPasteValues .PasteSpecial Paste:=xlPasteFormats .PasteSpecial Paste:=xlPasteValidation End With Range("E202,E205").ClearContents Application.CutCopyMode = True ActiveSheet.Range("B" & ligrep + 2).Activate ThisWorkbook.Save End Sub
Je vois qu'apparemment vous effacer les cellules E202 et E205.
Mais NON, au tableau il ne faut rien toucher.
C'est celui en tout premier que la macro vient coller qu'il faut effacer.
Par contre le lien de tableau que vous m'aviez renvoyer n'est plus actif.
Pourriez-vous me le re envoyer car je n'ai plus la macro GO_RÉCAP.
Merci beaucoup.
Mais NON, au tableau il ne faut rien toucher.
C'est celui en tout premier que la macro vient coller qu'il faut effacer.
Par contre le lien de tableau que vous m'aviez renvoyer n'est plus actif.
Pourriez-vous me le re envoyer car je n'ai plus la macro GO_RÉCAP.
Merci beaucoup.
Bonjour,
Rien n'est clair alors sur le fichier vous marquez les cellules à effacer et retour du fichier.
Le lien: https://www.cjoint.com/c/LDfvj3ijdRn
Rien n'est clair alors sur le fichier vous marquez les cellules à effacer et retour du fichier.
Le lien: https://www.cjoint.com/c/LDfvj3ijdRn
Tout d'abord MERCI pour le lien.
Alors je reviens sur ce que j'ai écris.
Le récapitulatif dont les deux cellules vertes qui sont à effacer est bien le premier qui est à "COPIER" dans la macro ARCHIVER.
Dans le post 17 la macro que vous aviez modifier était bien sauf que vous aviez effacé les cellules du premier récapitulatif "COLLÉ"
Pour moi l'idéal serait que :
La macro ARCHIVER s'exécute normalement et à la fin elle revienne sur le premier récapitulatif,
celui qui se trouve deux lignes en dessous de la ligne repère, les mêmes cellules que vous aviez entourés en rouge dans le post 16 pour effacer les deux cellules vertes sans les nommer.
Merci.
Alors je reviens sur ce que j'ai écris.
Le récapitulatif dont les deux cellules vertes qui sont à effacer est bien le premier qui est à "COPIER" dans la macro ARCHIVER.
Dans le post 17 la macro que vous aviez modifier était bien sauf que vous aviez effacé les cellules du premier récapitulatif "COLLÉ"
Pour moi l'idéal serait que :
La macro ARCHIVER s'exécute normalement et à la fin elle revienne sur le premier récapitulatif,
celui qui se trouve deux lignes en dessous de la ligne repère, les mêmes cellules que vous aviez entourés en rouge dans le post 16 pour effacer les deux cellules vertes sans les nommer.
Merci.
Alors en fait, ÇA Y EST J'AI TROUVÉ.
J'ai repris votre macro du post 17 et j'ai modifié la neuvième ligne.
Celle qui se trouve juste en dessous de :
' position ligne cellules à effacer (écrite en vert)
et j'ai inscris 3 à la place de 26.
Et voilà, tout fonctionne PARFAITEMENT.
Encore un TRÈS GRAND MERCI pour pour toute l'aide apportée et la patience.
Vous pouvez mettre en résolu.
merci.
J'ai repris votre macro du post 17 et j'ai modifié la neuvième ligne.
Celle qui se trouve juste en dessous de :
' position ligne cellules à effacer (écrite en vert)
et j'ai inscris 3 à la place de 26.
Et voilà, tout fonctionne PARFAITEMENT.
Encore un TRÈS GRAND MERCI pour pour toute l'aide apportée et la patience.
Vous pouvez mettre en résolu.
merci.