Inserer une data a la bonne position

Fermé
avi34 Messages postés 3 Date d'inscription mercredi 30 décembre 2015 Statut Membre Dernière intervention 6 janvier 2016 - Modifié par avi34 le 6/01/2016 à 05:53
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 - 6 janv. 2016 à 17:55
Bonjour tout le monde,

Je sui assez nouveau en VBA. J'ai une feuille excel avec dans la colonne A des dates et en colonie B un score qui correspond a chaque date. Je récupère d'une autre feuille la date et son score sur deux variables respectivement, Date_Formate et score.
Je vous envoie le bout de code correspondant a cette tache. Les date commencent a la ligne 2. Je veux donc que excel compare ma date avec les dates deja présentes une a une ( des jours peuvent être manquant, il n'y a pas un nouveau score tous les jours) et des que ma nouvelle date est supérieur ou egale a une des date deja présente il insère un ligne en dessous et inséré la nouvelle date avec le niveau score sur la ligne qu'il vient de créer. Le problème est qu'avec mon code la nouvelle date va toujours a la fin.

Merci d'avance pour votre aide

For y = 2 To ligne

test_date = .Cells(y, 1).Value


If Date_Formated >= test_date Then

.Range("A" & y + 1).EntireRow.Insert

.Range("A" & y + 1).Value = Date_Formated

.Range("B" & y + 1).Value = Score

.Range("E" & y + 1).Value = subject

ligne_trouvee = True
MsgBox "2"

End If

If ligne_trouvee = True Then Exit For

Next
A voir également:

1 réponse

f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705
6 janv. 2016 à 07:38
Bonjour,

Soit vous faites un tri par date croissant quand il y a ajout d'une date
Soit vous modifiez votre methode de recherche
1
avi34 Messages postés 3 Date d'inscription mercredi 30 décembre 2015 Statut Membre Dernière intervention 6 janvier 2016
6 janv. 2016 à 17:10
Merci beaucoup pour votre réponse. Un tri par date croissante est effectivement ce que j'aimerai faire.
Pourriez vous m'indiquer comment je pourrai le faire?
0
f894009 Messages postés 17189 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 6 mai 2024 1 705 > avi34 Messages postés 3 Date d'inscription mercredi 30 décembre 2015 Statut Membre Dernière intervention 6 janvier 2016
6 janv. 2016 à 17:55
Re,

Adaptezle nom de la feuille, ligne 1 entetes de colonne

    With Worksheets("feuil1")
        PCV = .Range("A" & Rows.Count).End(xlUp).Row + 1
        .Range("A" & PCV).Value = Date_Formated
        .Range("B" & PCV).Value = Score
        .Range("E" & PCV).Value = Subject
        'tri
        Set plage = .Range("A1:E" & PCV) 'Plage de cellules pour tri A a E
        plage.Sort key1:=Range("A1"), order1:=xlAscending, Header:=xlYes 'tri croissant colonne A (entete en A1 Date)
    End With
0