Problème avec la macro TRIER

Résolu/Fermé
DAN66 - 30 mars 2022 à 11:19
Le Pingou Messages postés 12069 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 mai 2024 - 6 avril 2022 à 17:13
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.



Configuration: Windows / Firefox 98.0
A voir également:

20 réponses

Le Pingou Messages postés 12069 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 mai 2024 1 431
31 mars 2022 à 20:44
Merci, content pour vous.
Je passe le poste en résolu.
1
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
30 mars 2022 à 11:44
Bonjour,

Cellules A200 a A203 contiennent le Prenom DANY
0
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
30 mars 2022 à 11:45
Suite:
Il faudra prendre Derligne-1 pour ne pas avoir la ligne 195
0
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.
0
Le Pingou Messages postés 12069 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 mai 2024 1 431
30 mars 2022 à 14:29
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!
0
Oui en effet Le Pingou,
mais en fait a partir de cette erreur 1004, d'autres sont venues se greffer.
Et je me demande bien pourquoi ?
MERCI de l'aide apportée.
0
ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024 139
30 mars 2022 à 14:38
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
0
Désolé ALS35 mais ça ne fonctionne pas.
Merci quand même.
0
ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024 139 > DAN66
30 mars 2022 à 15:22
Qu'est-ce qui ne fonctionne pas ?
0
DAN66 > ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024
30 mars 2022 à 18:02
Toute la macro,
Idem ça me met en erreur.
0
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705 > DAN66
30 mars 2022 à 18:03
Re bonjour,

Pouvez regarder le post <9>
0
ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024 139 > DAN66
30 mars 2022 à 18:12
Pourtant dans le fichier que je t'ai fourni, le Trier et le Go_Récap fonctionnent !
Fournis ton vrai fichier si tu veux qu'on avance.
0

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

Posez votre question
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
30 mars 2022 à 16:07
Bonjour a tous

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
0
Après avoir remplacé la macro par la votre,
ça ne trie même plus,
ça m'affiche une fenêtre avec inscrit :
" la ligne n'existe plus. "
0
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705 > DAN66
30 mars 2022 à 20:26
Re,
Ben, chez moi ça marche la ligne Ne pas modifier est trouvée!!!
0
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705 > f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024
30 mars 2022 à 20:29
Suite:
Avec le fichier que vous avez mis à dispo au début, évidement.
0
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705 > f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024
30 mars 2022 à 20:40
Suite:
Execution du code:

0
Le Pingou Messages postés 12069 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 mai 2024 1 431
30 mars 2022 à 18:30
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.
0
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.
0
Le Pingou Messages postés 12069 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 mai 2024 1 431
Modifié le 30 mars 2022 à 21:08
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....?

0
Le Pingou Messages postés 12069 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 mai 2024 1 431
30 mars 2022 à 22:05
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
0
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.
0
Le Pingou Messages postés 12069 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 mai 2024 1 431
31 mars 2022 à 13:25
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 ?
0
Le Pingou Messages postés 12069 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 mai 2024 1 431
31 mars 2022 à 13:49
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 ?

0
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.
0
Le Pingou Messages postés 12069 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 mai 2024 1 431
Modifié le 31 mars 2022 à 16:19
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


0
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.
0
Bonjour Le Pingou,
Vous êtes là ?
Gros problème avec les macros :
TRIER, GO_RÉCAP et ARCHIVER.
Merci de votre réponse.
0
Le Pingou Messages postés 12069 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 mai 2024 1 431
4 avril 2022 à 22:33
Bonjour,
Qu'elle est se gros problème ?
0
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.
0
Le Pingou Messages postés 12069 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 mai 2024 1 431
5 avril 2022 à 12:09
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!
0
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.
0
Le Pingou Messages postés 12069 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 mai 2024 1 431
Modifié le 5 avril 2022 à 16:35
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...!


0
Merci beaucoup,
Eh bien en fait c'est deux cellules sont prévues pour être remplie MANUELLEMENT.
Donc ne pas en tenir compte, et bien EFFACER c'est deux cellules.
Merci.
0
Le Pingou Messages postés 12069 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 mai 2024 1 431
Modifié le 5 avril 2022 à 17:31
Bonjour,
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


0
Merci bien,mais vous effacez les deux cellules du tableau coller.
ce N'est pas celui là que je veux effacer.
C'est le tout premier celui qui va des lignes 201 à 208. mais surtout pas l'autre plus bas.
Merci.
0
Le Pingou Messages postés 12069 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 mai 2024 1 431
5 avril 2022 à 17:55
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...!
0
Ah oui, désolé je me suis mal exprimé.
Non c'est bien l'original qui doit être effacé.
Merci beaucoup.
0
Le Pingou Messages postés 12069 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 mai 2024 1 431
5 avril 2022 à 18:14
Bonjour,
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

0
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.
0
DAN1956 > DAN1956
5 avril 2022 à 20:01
Merci de me renvoyer le lien avec le tableau que vous avez modifié.
Je n'ai plus la macro GO_RÉCAP.
Merci beaucoup.
0
Le Pingou Messages postés 12069 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 mai 2024 1 431
Modifié le 5 avril 2022 à 23:10
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

0
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.
0
Dan1956 > Dan1956
6 avril 2022 à 16:43
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.
0
Le Pingou Messages postés 12069 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 6 mai 2024 1 431
6 avril 2022 à 17:13
Bonjour,
Eh bien si c'est parfait pour vous, il en est pas de même pour moi car les postes mentionnées (16,17) ne corresponde pas à votre explication.
Bonne suite.
0