Déplacer en fin de tableau si

Résolu/Fermé
Viking58 Messages postés 186 Date d'inscription vendredi 5 décembre 2014 Statut Membre Dernière intervention 5 janvier 2018 - 23 août 2015 à 18:45
Viking58 Messages postés 186 Date d'inscription vendredi 5 décembre 2014 Statut Membre Dernière intervention 5 janvier 2018 - 25 août 2015 à 16:57
Bonsoir à toutes et tous.

Je voudrais une macro pour un bouton:

Dans ma colonne A:

1) Que tout ce qui n'est pas une date se retrouve en bas de tableau.
(après les dates)
2) Effectuer un tri sur cette colonne de la date la plus ancienne à la plus récente.
(Comme un tri A-Z)

Merci.

Bonne semaine.


A voir également:

2 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
23 août 2015 à 23:58
Bonjour,

En supposant qu'il s'agit d'un tableau multi-colonnes avec des titres de colonnes, essaies ce code
Sub TriSpécial()
Dim t() As Variant
Dim r As Range
Dim c As Long
Dim i As Long
  
  Set r = Range("A1").CurrentRegion
  c = r.Columns.Count
  r.Resize(, 2).Offset(0, c).Clear
  t = Application.Transpose(r.Columns(1).Value)
  For i = LBound(t) + 1 To UBound(t)
    If IsDate(t(i)) Then
      r(i, c).Offset(0, 1).FormulaLocal = t(i)
    Else
      r(i, c).Offset(0, 1).Value = ""
      r(i, c).Offset(0, 2).NumberFormat = r(i, 1).NumberFormat
      r(i, c).Offset(0, 2).FormulaLocal = r(i, 1).FormulaLocal
    End If
  Next
  Set r = Range("A1").CurrentRegion
  r.Sort Key1:=r(1, c + 1), Order1:=xlAscending, _
         Key2:=r(1, c + 2), Order2:=xlAscending, _
         Header:=xlYes
  r.Resize(, 2).Offset(0, c).Clear

End Sub

0
Viking58 Messages postés 186 Date d'inscription vendredi 5 décembre 2014 Statut Membre Dernière intervention 5 janvier 2018 7
24 août 2015 à 10:11
Merci Patrice.

Excel me renvoie une erreur "Erreur d'exécution 1004", référence de tri non valide:
sur ces lignes:

r.Sort Key1:=r(1, c + 1), Order1:=xlAscending, _
Key2:=r(1, c + 2), Order2:=xlAscending, _
Header:=xlYes
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
24 août 2015 à 23:54
à quoi est égal r ???
ajoutes avant le r.sort :
MsgBox r.Address
0
Viking58 Messages postés 186 Date d'inscription vendredi 5 décembre 2014 Statut Membre Dernière intervention 5 janvier 2018 7
25 août 2015 à 14:24
Bonjour Patrice.
Que veut dire "r" ?
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
25 août 2015 à 16:43
r c'est le Range défini par l'expression
Set r = Range("A1").CurrentRegion

Le simple serait que tu joignes un fichier !
0
Viking58 Messages postés 186 Date d'inscription vendredi 5 décembre 2014 Statut Membre Dernière intervention 5 janvier 2018 7 > Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023
25 août 2015 à 16:57
Merci Patrice, mais je ne peux pas...
Laissons tomber ce problème. Je vais avoir bien d'autres questions à vous poser...
0