Comment puis-je trier des dates dans un tableau en vba?
Salut, je suis nouveau en programmation et juste commencé à apprendre le VBA pour excel. J'ai une question concernant le tri de tableaux. Comment puis-je trier un tableau contenant les dates? Par exemple si j'ai un tableau contenant les dates ("23-juil-13","11-jan-10","1-mai-09","3-févr-04") comment puis-je trier ce tableau. J'ai cherché partout sur internet pour obtenir des réponses, mais ne pouvait trouver le code pour le tri des nombres. J'ai cassé mon cerveau sur ce pendant 2 jours mais ne peut pas sembler obtenir.
Grâce
J'ai le code ci-dessous qui prend des dates à partir d'une colonne sélectionnée mais j'obtiens une erreur à chaque fois que je le lance. J'ai été à essayer de comprendre quel est le problème avec elle pendant 2 jours maintenant. Je n'ai pas mentionné ce code plus tôt que je pensais qu'il serait unnnecessarily ajouter à la confusion.
Le sous GetUniqueAndCount fonctionne très bien mais c'est le genre de sous qui est le problème car il n'accepte pas le tableau passé en argument.
Sub GetUniqueAndCount()
Dim d As Object, c As Range, k, tmp As String
Set d = CreateObject("scripting.dictionary")
'I will select the column of dates
For Each c In Selection
tmp = Trim(c.Value)
If Len(tmp) > 0 Then
If Year(DateValue(Format(tmp, "dd-mmm-yy"))) = 2013 Then
d(tmp) = d(tmp) + 1
End If
End If
Next c
i = 0
ReDim ThisArray(UBound(d.keys)) As Date
For Each k In d.keys
ThisArray(i) = DateValue(Format(k, "dd-mmm-yy"))
i = i + 1
Next k
Sort (ThisArray)
End Sub
Sub Sort(arr() As Date)
Dim Temp As Date
Dim i As Long
Dim j As Long
For j = 2 To UBound(arr)
Temp = arr(j)
For i = j - 1 To 1 Step -1
If (arr(i) <= Temp) Then GoTo 10
arr(i + 1) = arr(i)
Next i
i = 0
10 arr(i + 1) = Temp
Next j
End Sub
Pourriez-vous nous fournir un échantillon de valeurs avant de formater, c'est les valeurs qu'elles existent dans la cellule?
oui, ils sont comme suit: 23-jul-13","11-jan-10","1-mai-09","3-févr-04
OriginalL'auteur user3125707 | 2013-12-21
Vous devez vous connecter pour publier un commentaire.
Votre
Sort(arr() As Date)
fonctionne très bien. Le problème avec cette ligneChanger de
Aussi depuis que vous êtes stockage
Dates
dansThisArray
, j'espère que vous avez déclaré commeDate
?Exemple
SORTIE
Je n'avais pas remarqué ur commentaire ci-dessus le code. oui u est bonne, le problème a été de cette ligne de Tri (ThisArray) comme u mentionné
OriginalL'auteur Siddharth Rout
Cela peut vous aider. n'hésitez pas à poser une question de suivi.
OriginalL'auteur Nikko