vba :trouver le dernier jour de chaque mois

  • Initiateur de la discussion Initiateur de la discussion albert
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

albert

XLDnaute Occasionnel
Bonjour à tous et à toutes, forumiens, forumiennes.

Dans une série de données, je voudrais trouver le dernier jour de chaque mois, le copier en colonnes C et D avec le chiffre qui est en face.

Ensuite je supprime les lignes vides avec Range('C2:C' & Range('C65536').End(xlUp).Row).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Pour regrouper toutes les dates de fin de mois avec leur données correspondante.

Pour trier les derniers jours du mois, il n’est pas possible d’utiliser les formules excel, sinon vba ne marche plus.
C’est pourquoi je cherche à sélectionner ces « derniers jours du mois » en vba, jusque là je n’ai pas réussi, un coup de main serait bienvenu. (je ne suis pas très habile sur la manipulation des dates)
D’avance merci

albert

[file name=dernierjourmois.zip size=31523]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/dernierjourmois.zip[/file]
 

Pièces jointes

bonjour Albert

j'espere que cette macro pourra t'aider


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



bonne soiree
MichelXld [file name=dernierJourMoisV02.zip size=36023]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/dernierJourMoisV02.zip[/file]
 

Pièces jointes

merci MichelXld,

je désespérais d'arriver à trouver une solution, je cherchais avec .Find et DateAdd('m', 1, DateSerial(Y, M, 1)) - 1

c'est un système que je ne maîtrise pas du tout (pieds dans l'tapis), j'ai passé l'après-midi dessus.


Tu as trouvé le bon procédé et tu me tires de l'ornière

cordialement
albert
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

S
Réponses
19
Affichages
3 K
Réponses
7
Affichages
997
Retour