Inserer une data a la bonne position
avi34
Messages postés
4
Statut
Membre
-
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17414 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
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:
- Inserer une data a la bonne position
- App data - Guide
- Insérer une vidéo dans powerpoint - Guide
- Insérer signature word - Guide
- Ma position - Guide
- Insérer liste déroulante excel - Guide
Pourriez vous m'indiquer comment je pourrai le faire?
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