Excel : classement selon la date
bobo8388
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je souhaiterais soit par VBA ou par fonctions classer des évenements selon leur date.
Sur une feuille j'ai une liste d'évenements :
en colonne A le nom de l'évenement
en colonne B la date à laquelle il a lieu.
sur une autre feuille j'ai :
en A1 Lundi 11 Avril
En B1 Mardi 12 Avril
et ainsi de suite.
Je souhaiterais qu'en fonction de leurs date les évennements viennent automatiquement se placer sous la date correspondante.
PS:Excel 2003.
Merci
Je souhaiterais soit par VBA ou par fonctions classer des évenements selon leur date.
Sur une feuille j'ai une liste d'évenements :
en colonne A le nom de l'évenement
en colonne B la date à laquelle il a lieu.
sur une autre feuille j'ai :
en A1 Lundi 11 Avril
En B1 Mardi 12 Avril
et ainsi de suite.
Je souhaiterais qu'en fonction de leurs date les évennements viennent automatiquement se placer sous la date correspondante.
PS:Excel 2003.
Merci
A voir également:
- Excel : classement selon la date
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
- Excel trier par ordre croissant chiffre - Guide
5 réponses
Bonjour,
Il faut dans un premier temps que la colonne de date soit en A et pas en B.
ce sont des dates fixes ou pas ?
Si non une rechercheV va te convenir.
=RECHERCHEV("valeur recherchée";"zone ou plage de celulle où se trouve la valeur";"n° de la colonne où se trouve la reference recherchée;"")
Pour toi ca devrait donner ca a peu près :
=RECHERCHEV(A1;Feuil2!A:B;2;0)
cette fonction n'est capable de trouver que ce qu'il y a droite d'une reference.
Il faut dans un premier temps que la colonne de date soit en A et pas en B.
ce sont des dates fixes ou pas ?
Si non une rechercheV va te convenir.
=RECHERCHEV("valeur recherchée";"zone ou plage de celulle où se trouve la valeur";"n° de la colonne où se trouve la reference recherchée;"")
Pour toi ca devrait donner ca a peu près :
=RECHERCHEV(A1;Feuil2!A:B;2;0)
cette fonction n'est capable de trouver que ce qu'il y a droite d'une reference.
Bonjour,
J'espère que les dates en Feuil1 et Feuil2 sont au même format... Le cas échéant, cette macro devrait fonctionner : [Adapter le numéro ou le nom des feuilles]
Code à insérer dans un module standard.
Franck P
J'espère que les dates en Feuil1 et Feuil2 sont au même format... Le cas échéant, cette macro devrait fonctionner : [Adapter le numéro ou le nom des feuilles]
Sub CollerSousDate()
Dim tabloDat() As Date 'EDIT : semble mieux fonctionner comme ça!
Dim Col As Integer, Lign As Long
With Sheets(2) 'Ici liste toutes les dates en ligne 1 de la feuille2 (à adapter)
ReDim tabloDat(.UsedRange.Columns.Count - 1)
For Col = 1 To .UsedRange.Columns.Count
tabloDat(Col - 1) = .Cells(1, Col)
Next
End With
With Sheets(1) 'va chercher les événements adapter nom de la feuille
For Lign = 1 To .UsedRange.Rows.Count
For Col = 0 To UBound(tabloDat)
If tabloDat(Col) = .Cells(Lign, 2) Then
Sheets(2).Cells(65536, Col + 1).End(xlUp).Offset(1, 0) = .Cells(Lign, 1).Value
End If
Next
Next
End With
End Sub
Code à insérer dans un module standard.
Franck P
Merci lalalie3 mais une recherchev ne peut fonctionner car plusieurs evennements pour une meme date.
Merci Pijaku j'essaye ton code tout de suite et je te reviens.
Merci
Merci Pijaku j'essaye ton code tout de suite et je te reviens.
Merci
Merci cela fonctionne parfaitement.
Si cela est possible comment modifier le code pour que il copie aussi les colonnes C et E sachant que j'ai espacé les dates en feuille deux pour pouvoir celler ces valeurs.
Est il aussi possible qu'un nouveau click sur le bouton remplace les valeurs si le tableau a été actualisé au lieu de les coller a la suite?
Merci beaucoup pour ton aide et j'espere ne pas t'en demander trop!!!
Si cela est possible comment modifier le code pour que il copie aussi les colonnes C et E sachant que j'ai espacé les dates en feuille deux pour pouvoir celler ces valeurs.
Est il aussi possible qu'un nouveau click sur le bouton remplace les valeurs si le tableau a été actualisé au lieu de les coller a la suite?
Merci beaucoup pour ton aide et j'espere ne pas t'en demander trop!!!
Essaye ceci :
Sub CollerSousDate()
Dim tabloDat() As Date 'EDIT : semble mieux fonctionner comme ça!
Dim Col As Integer, Lign As Long, Derlign As Long
With Sheets(2) 'Ici liste toutes les dates en ligne 1 de la feuille2 (à adapter)
ReDim tabloDat(.UsedRange.Columns.Count - 1)
For Col = 1 To .UsedRange.Columns.Count
If .Cells(1, Col) = "" Then
Else
tabloDat(Col - 1) = CDate(Right(.Cells(1, Col), Len(.Cells(1, Col)) - InStr(1, .Cells(1, Col), " ")))
End If
Next
End With
With Sheets(1) 'va chercher les événements adapter nom de la feuille
For Lign = 1 To .UsedRange.Rows.Count
For Col = 0 To UBound(tabloDat)
If tabloDat(Col) = .Cells(Lign, 2) Then
Derlign = Sheets(2).Cells(65536, Col + 1).End(xlUp).Offset(1, 0).Row
Sheets(2).Cells(Derlign, Col + 1) = .Cells(Lign, 1).Value
Sheets(2).Cells(Derlign, Col + 2) = .Cells(Lign, 3).Value
Sheets(2).Cells(Derlign, Col + 3) = .Cells(Lign, 5).Value
Exit For
End If
Next Col
Next Lign
End With
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question