Inserer une data a la bonne position

avi34 Messages postés 4 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
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

1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
    1. avi34 Messages postés 4 Statut Membre
       
      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
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > avi34 Messages postés 4 Statut Membre
         
        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