Bonjour a tous,
J'ai un petit souci concernant une recherche de date.
J'ai une liste de date + heure (jj/mm/aaa h:hh) et je cherche a obtenir la derniere date pour le mois (par exemple) de janvier.
Ceci afin de pouvoir reperer a quelle ligne cela correspond, et donc, de selectionner les donnees (de la colonne et de celle(s) a cote) de la premiere date du mois jusque la derniere.
Il semblerait que le fait d'utiliser des dates complique la chose avec VBA etant donne les differents formats possibles de celles-ci.
Mes recherches m'ont menes a ce code:
Qui regarde donc dans la colonne A les dates et selectionne la derniere de chaque moi pour les copier l'une a la suite de l'autre dans les colonnes C (et les donnees correspondantes en D)
D'ou je me demande: comment specifier de le faire que pour le mois de Janvier? (ou un autre mois) et avoir 1 donnees et non celles de chaque mois?
Je suppose qu'il faut effectuer une modification dans:
" For Each Cell In Range("A2:A" & Range("A65536").End(xlUp).Row) "
Mais etant debutant (j'utilisais l'enregistreur jusque maintenant ^^') je n'ai pas grand idee...
Aussi, pourquoi faire un code aussi "complique" alors qu'il existe une fonction find?
N'est-il pas possible de demander de trouver la derniere date enregistree pour le mois de janvier? (Ca me semble beaucoup plus simple de prime abord) Ou est-ce a cause du fait que ce soit une date?
En vous remerciant,
Vanrob
PS: Vous en pensez quoi du site du zero pour debuter en VBA? 😛
Desole pour les accents, je suis sur un clavier qwerty (etant a l'etranger...)
J'ai un petit souci concernant une recherche de date.
J'ai une liste de date + heure (jj/mm/aaa h:hh) et je cherche a obtenir la derniere date pour le mois (par exemple) de janvier.
Ceci afin de pouvoir reperer a quelle ligne cela correspond, et donc, de selectionner les donnees (de la colonne et de celle(s) a cote) de la premiere date du mois jusque la derniere.
Il semblerait que le fait d'utiliser des dates complique la chose avec VBA etant donne les differents formats possibles de celles-ci.
Mes recherches m'ont menes a ce code:
Code:
Sub DernierJourDuMois()
Dim Annee As Date, Mois As Date
Dim NbJours As Byte, i As Byte
Dim Cell As Range
For Each Cell In Range("A2:A" & Range("A65536").End(xlUp).Row)
Annee = Year(CDate(Cell))
Mois = Month(CDate(Cell))
NbJours = Day(DateSerial(Year(CDate(Cell)), Month(CDate(Cell)) + 1, 0))
If Format((DateSerial(Annee, Mois, NbJours)), "dd/mm/yyyy") = CDate(Cell) Then
i=i+1
Cells(i, 3) = Cell
Cells(i, 4) = Cell.Offset(0, 1)
End If
Next Cell
End Sub
Qui regarde donc dans la colonne A les dates et selectionne la derniere de chaque moi pour les copier l'une a la suite de l'autre dans les colonnes C (et les donnees correspondantes en D)
D'ou je me demande: comment specifier de le faire que pour le mois de Janvier? (ou un autre mois) et avoir 1 donnees et non celles de chaque mois?
Je suppose qu'il faut effectuer une modification dans:
" For Each Cell In Range("A2:A" & Range("A65536").End(xlUp).Row) "
Mais etant debutant (j'utilisais l'enregistreur jusque maintenant ^^') je n'ai pas grand idee...
Aussi, pourquoi faire un code aussi "complique" alors qu'il existe une fonction find?
N'est-il pas possible de demander de trouver la derniere date enregistree pour le mois de janvier? (Ca me semble beaucoup plus simple de prime abord) Ou est-ce a cause du fait que ce soit une date?
En vous remerciant,
Vanrob
PS: Vous en pensez quoi du site du zero pour debuter en VBA? 😛
Desole pour les accents, je suis sur un clavier qwerty (etant a l'etranger...)