TRIER

Fermé
Dany02_110 Messages postés 7 Date d'inscription vendredi 14 juin 2019 Statut Membre Dernière intervention 1 juillet 2019 - 1 juil. 2019 à 11:00
 Dany02_110 - 3 juil. 2019 à 14:28
Bonjour à tous,

Une fois de plus, je viens vous solliciter.
J'ai un classeur avec à l'intérieur plusieurs onglets.
Chaque onglets contient un tableau.
TOUS les tableaux sont identiques sur la conception mais pas sur la longueur.
Dans la largeur les tableaux vont de la colonne A à AH.
En cours de mois, il se peut que l'un des commerciaux apporte de nouveaux contrats, ou modifications.
Ces modifications ne sont pas forcément dans l'ordre des dates (colonne A)
Je voudrai donc une macro qui me fasse le tri croissant de :
la cellule A7 à la dernière ligne écrite du tableau de la colonne AH.

Espérant avoir été assez clair et précis,
MERCI de votre aide.
Dany.



Configuration: Windows / Firefox 67.0

8 réponses

danielc0 Messages postés 837 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 22 avril 2024 74
1 juil. 2019 à 14:18
Bonjour,

Est-ce qu'il s'agit d'une plage ou d'un Tableau, au sens Excel 2007 et versions postérieures) du terme ?

Cordialement.

Daniel
0
Pardon, désolé danielc0,
je t'ai répondu, mais je ne sais pas ce qui c'est passé, très certainement j'ai dû oublié de valider,
c'est pourquoi, je pense la réponse n'apparait pas.
Tu peux avoir un complément d'information en lisant ma réponse un peu plus bas à Frenchie83.
Encore MILLE excuses.
0
Hello, bonjour à tous,

Vraiment PERSONNE pour m'aider ?
Merci de votre réponse.
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
2 juil. 2019 à 08:57
Bonjour,

Vous n'avez pas répondu à la question posée Danielc0
Plage (sous forme de tableau) ou Tableau (structuré)?
en attendant voici une procédure pour le cas "Plage (sous forme de tableau)",

A tester
Sub Tri_Plage()
    Application.ScreenUpdating = False
    For i = 1 To Sheets.Count
        Sheets(i).Select
        Range("A2:AH" & [A1].CurrentRegion.Rows.Count + 1).Sort [A1], 1
    Next i
End Sub


Cdlt
0
Bonjour et merci Frenchie83,

En fait non ce n'est pas ça que je voudrai.
TOUS mes tableaux sont IDENTIQUES.
De la colonne A à la colonne AH.
SAUF le nombre de lignes, qui en fonction de l'ancienneté peut être + ou - important.
Ma zone de tri va de la cellule A7 à la dernière ligne écrite de la colonne A et étendue à la colonne AH.
Pourquoi la dernière ligne écrite de la colonne A ?
Car dans mon tableau la colonne A représente la date, c'est donc forcément la première cellule remplie.
Ce qui n'est pas le cas de la colonne AH. (cette colonne est un total, qui peut être = à 0 ou vierge)
De plus sous mon tableau il y a d'autres renseignements et eux je ne veux pas qu'ils soient triés.
et ensuite faire un tri ascendant de la colonne A.
Voilà j'espère avoir été plus clair.
Merci.
0
danielc0 Messages postés 837 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 22 avril 2024 74 > Dany02_110
2 juil. 2019 à 10:42
Bonjour,

En fait, à ma connaissance, je ne pense pas qu'il soit possible de trier une partie d'un tableau, ou alors, tes données commencent en A7 ?. Pour être sûr qu'il s'agit d'un "tableau", clique dedans. Un onglet "Création de tableau" apparaît dans le ruban :


Daniel
0
Dany02_110 > danielc0 Messages postés 837 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 22 avril 2024
2 juil. 2019 à 18:04
OUI danielc0, les données à trier commencent en A7 comme inscrit juste au dessus.
Malheureusement NON, je ne veux pas et je ne peux pas utiliser la création de tableau car celui-ci IMPOSE deux couleurs et moi il m'en faut plus.
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
2 juil. 2019 à 11:12
De plus sous mon tableau il y a d'autres renseignements et eux je ne veux pas qu'ils soient triés.
et ensuite faire un tri ascendant de la colonne A. Voilà j'espère avoir été plus clair.
Pas vraiment.

Une représentation d'un de vos tableaux aiderait considérablement à la compréhension du problème et offrirait un gain de temps non négligeable dans sa résolution.
0
Désolé pour cette réponse si tardive, j'ai dû m'absenter.
J'ai fais une extraction de deux tableaux, mais je ne sais pas comment vous les joindre.
Comment fait-on ?
0
danielc0 Messages postés 837 Date d'inscription mardi 5 juin 2018 Statut Membre Dernière intervention 22 avril 2024 74 > Dany02_110
2 juil. 2019 à 19:18
Essaie :

Sub Tri()
  Dim DerLigne As Long
  DerLigne = Range("A7", Cells(Rows.Count, 1)).Find("*", , , , xlByRows, xlPrevious).Row
  Range("A7:AH" & DerLigne).Sort [A7], xlAscending, Header:=xlNo
End Sub
0
Bonjour danielc0,

SUPER ! ça fonctionne impeccable.
Je n'ai pas eu le temps de le regarder et de le tester hier, je viens donc de le faire maintenant.
SUBLIME, ça marche du tonnerre.
Un GRAND MERCI à vous deux, Frenchie83 et danielc0,
une GROSSE épine du pied enlevée.
Encore sincèrement MERCI à tous les deux.
0

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

Posez votre question
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
2 juil. 2019 à 17:59
Voici comment joindre un fichier via mon-partage.fr :

Étape 1 : clic sur« CHOISIR UN FICHIER » ; sélectionnez le fichier à joindre.

Étape 2 : descendre, cliquez sur "Uploader"

Etape3: copiez le lien fourni et coller ici dans la réponse
0
https://mon-partage.fr/f/jOGERDXD/
0
J'espère que ça à marché ?
0
Voilà donc je voudrai (je souhaiterai) que la macro me fasse pour l'onglet " MOI ", un tri à partir de la cellule A7 jusque la dernière ligne écrite de la colonne A (ligne 314) et étendue jusqu'à la colonne AH pour garder les données respectives de chacun.
Idem pour " TOI " de la cellule A7 à la dernière ligne écrite de la colonne A ( ligne 57) et étendue jusqu'à la colonne AH pour garder les données respectives de chacun.
Je sais que ça marche, je l'ai déjà vu, notamment avec " derlig " comme dans ma macro ARCHIVER.
Mais je n'arrive plus à la retrouver.
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
2 juil. 2019 à 18:25
Voilà

Sub Tri_Plage()
    Application.ScreenUpdating = False
    For i = 1 To Sheets.Count
        Sheets(i).Select
        Range("A7:AH" & [A7].End(xlDown).Row).Sort [A1], 1
    Next i
End Sub


Cdlt
0
Désolé Frenchie83, mais ça ne fonctionne pas.
Message d'erreur "1004"
Apparemment c'est dernière ligne de commande qui pose problème.
Elle est surlignée en jaune.
Range("A7:AH" & [A7].End(xlDown).Row).Sort [A1], 1
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
2 juil. 2019 à 18:43
Sub Tri_Plage()
Application.ScreenUpdating = False
For i = 1 To Sheets.Count
Sheets(i).Select
[A6] = "x"
Range("A7:AH" & [A7].End(xlDown).Row).Sort [A6], 1
Next i
End Sub
0
Désolé, EXACTEMENT le MÊME problème.
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 337
2 juil. 2019 à 19:13
Bizarre, ça marche bien chez moi.

Revoici votre fichier, modifiez des dates et la ncez la macro du module 3
https://mon-partage.fr/f/4h3Chy0C/
0
Je viens d'essayer avec ton partage SANS le télécharger.
Idem, ça NE fonctionne PAS.
Franchement je ne comprends pas.
En tout cas, MERCI pour toute l'énergie, le temps et la patience pour m'aider.
Et pourtant je l'ai déjà vu fonctionner, mais IMPOSSIBLE de le retrouver.
0