XL 2010 Trie date sur colonne

  • Initiateur de la discussion Initiateur de la discussion Temjeh
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Temjeh

XLDnaute Accro
Bonjour et merci d'avance

En formule car je partage le classeur sur google sheet.

J'ai des date en ligne 4 sur plusieurs colonnes de Col B à Col KN pour 300 colonne!

Tirez vers le bas en colonne A, est-ce possible d'avoir les date de la plus petite à la plus grande.
Sauf que je ne veut pas la date mais la valeur qui se trouve à la ligne 3 de sa colonne.

Merci de votre temps

Temjeh

Si pas trop clair je fait un démo
 
Bonjour Temjeh, salut JHA,

Sur votre fichier les "dates" ne sont pas des dates mais des textes, il faut les convertir en utilisant une formule matricielle :
Code:
=INDEX(A$3:K$3;EQUIV(PETITE.VALEUR(SI(ESTNUM(1/A$4:K$4);--A$4:K$4);LIGNES(A$5:A5));--A$4:K$4;0))
A valider par Ctrl+Maj+Entrée.

Voyez le fichier (1).

Et s'il peut y avoir des dates identiques ce n'est alors pas beaucoup plus compliqué :
Code:
=INDEX(A$3:K$3;EQUIV(PETITE.VALEUR(SI(ESTNUM(1/A$4:K$4);--A$4:K$4+COLONNE(A$4:K$4)/1000000);LIGNES(A$5:A5));--A$4:K$4+COLONNE(A$4:K$4)/1000000;0))
Voyez le fichier (2).

A+
 

Pièces jointes

Bonjour

Parfait je garde celle-ci au cas ou il y a lourdeur dans la feuille

Avec votre trie (2)

Il y a juste une affaire que je n'ai pas pensé, 300 colonne vers la droite.
J'ai presque tombé de ma chaise rendu au bout!

Si je fais à la place 2 sections de 150 colonne. Une comme votre solution teste ligne 4 et donne la valeur de ligne 3.

Mais aussi tester sur mon autre section en ligne. Teste en même temps la ligne 21 et donne la ligne 20

Ci-joint ma dernière demande

Merci beaucoup, le chèque est à la poste

Temjeh
 

Pièces jointes

Re,

Pour ceux que le VBA intéresse, on peut faire facilement le tri avec cette fonction :
Code:
Function TriPlages(r As Range)
Dim col%, n&, resu(), dat$()
For Each r In r.Areas
  For col = 1 To r.Columns.Count
    If IsDate(r(2, col)) Then
      n = n + 1
      ReDim Preserve resu(1 To n)
      ReDim Preserve dat(1 To n)
      resu(n) = r(1, col)
      dat(n) = Format(r(2, col), "yyyymmddhhmmss") & Format(resu(n), "000000") 'pour classer les ex aequo
    End If
Next col, r
tri dat, resu, 1, n
TriPlages = resu 'vecteur ligne
End Function

Sub tri(a, b, gauc, droi)    ' Quick sort
Dim ref, g, d, temp
ref = a((gauc + droi) \ 2)
g = gauc: d = droi
Do
    Do While a(g) < ref: g = g + 1: Loop
    Do While ref < a(d): d = d - 1: Loop
    If g <= d Then
      temp = a(g): a(g) = a(d): a(d) = temp
      temp = b(g): b(g) = b(d): b(d) = temp
      g = g + 1: d = d - 1
    End If
Loop While g <= d
If g < droi Then Call tri(a, b, g, droi)
If gauc < d Then Call tri(a, b, gauc, d)
End Sub
Le code doit être placé dans un module standard.

On peut trier autant de tableaux que l'on veut, ils doivent être séparés par au moins une ligne.

Le tri est réalisé par la classique macro Quick sort.

On peut sans inconvénient ajouter des heures aux dates.

Fichier joint.

Bonne soirée.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
591
  • Question Question
Microsoft 365 Contrôle sur date
Réponses
8
Affichages
313
Retour