Ajout jour par jour -> fin du mois

Bonjour, je suis novice dans VBA.

J'aimerais faire une macro avec une boucle dans laquelle il va cherche la dernière date de la colonne (ex : 03/10/20) et qu'il étire jusqu'à la date du 1ier du mois suivant (ex : 01/11/20)

worksheets("feuil1").activate

range("A"& Range("J65500").End(xlUp).Row).Select

01/10/20
02/10/20
03/10/20

Cordialement

Bonjour Celtik, bonjour le forum,

Peut-être comme ça :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DEP As Range 'déclare la variable DEP (cellule de DEPart)
Dim D As Date 'déclare la variable D (Date)
Dim DF As Date 'déclare la variable DF (Date de Fin)
Dim I As Integer 'déclare la variable I (Incrément)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
Set DEP = O.Cells(Application.Rows.Count, "A").End(xlUp) 'définit la cellule de départ DEP
D = DateSerial(Year(DEP.Value), Month(DEP.Value), Day(DEP.Value)) 'définit la date D
DF = DateSerial(Year(DEP.Value), Month(DEP.Value) + 1, 0) 'définit la date de fin DF (dernier jour du mois)
For I = 1 To 31 'boucle sur 31 jours
    D = D + 1 'incrémente la date D d'un jour
    If Month(D) <> Month(DF) Then Exit Sub 'si le mois de la date D et différent du mois de la date DF, cort de la procédure
    DEP.Offset(I, 0).Value = D 'renvoie la date D dans la cellule DEST décalé de I lignes
Next I 'prochain jour de la boucle
End Sub

Bonjour Celtik44, ThauThème , le forum,

Un essai....

Sub TEST()
 Dim derlig As Integer
 Dim JourFinMois As Date, maDate As Date

  With Sheets("Feuil1")
         derlig = .Range("A" & Rows.Count).End(xlUp).Row
    JourFinMois = DateSerial(Year(.Range("A" & derlig)), Month(.Range("A" & derlig)) + 1, 1) - 1
         maDate = .Range("A" & derlig)

    While maDate < JourFinMois
      .Range("A" & derlig + 1) = .Range("A" & derlig) + 1
       maDate = .Range("A" & derlig)
       derlig = derlig + 1
    Wend
  End With
End Sub
12test-dates.xlsm (18.99 Ko)

Cordialement,

Ha super, j'aurais jamais trouvé,

merci beaucoup.

Dernière question,

J'ai des colonnes (de B à N) à coté j'aimerais qu'il s'étire au même niveau que le dernier jour

Re,

J'ai des colonnes (de B à N) à coté j'aimerais qu'il s'étire au même niveau que le dernier jour

Il te suffit de mettre tes données sous forme de tableau structuré...

Ainsi les bordures et les formules suivent l'évolution du tableau....

15test-dates.xlsm (19.37 Ko)

Cordialement,

Re,

A tester:

14test-dates-v2.xlsm (17.97 Ko)

Cordialement,

Bonjour,

je reviens vers vous pour une aide.

J'aimerais savoir comment créer une boucle pour étirer la date d'une ligne "sur la feuil2" en ce basant sur la date qui se trouve en A1 de la" feuil1"

Puis étirer une une autre ligne avec la date mais à 03h00 du matin.

Cordialement

Bonjour Celtik, ThauThème, le forum,

Un essai....

Sub TEST()
 Dim dercol As Integer
 Dim JourFinMois As Date, maDate As Date

  With Sheets("Feuil2")
   .Range("D3") = Sheets("Feuil1").Range("A1"): .Range("D3").NumberFormat = "dd/mm/yyyy hh:mm"
   .Range("D4") = .Range("D3") + 3 / 24: .Range("D4").NumberFormat = "dd/mm/yyyy hh:mm"
         dercol = .Cells(3, Cells.Columns.Count).End(xlToLeft).Column
    JourFinMois = DateSerial(Year(.Cells(3, 4)), Month(.Cells(3, 4)) + 1, 1) - 1
         maDate = .Cells(3, dercol)

    While maDate < JourFinMois
      .Cells(3, dercol + 1) = .Cells(3, dercol) + 1: .Cells(3, dercol + 1).NumberFormat = "dd/mm/yyyy hh:mm"
      .Cells(4, dercol + 1) = .Cells(4, dercol) + 1: .Cells(4, dercol + 1).NumberFormat = "dd/mm/yyyy hh:mm"
       maDate = .Cells(3, dercol)
       dercol = dercol + 1
    Wend
  End With
End Sub

CTRL + e pour exécuter la macro

Cordialement,

Re, j'ai le 1ier jour du mois suivant qui apparait

Je pensais que c'etait çà "dercol = dercol + 1" qui le rajoute mais si je l'enlève la macro fonction plus

Re,

Peut-être ainsi ?

JourFinMois = DateSerial(Year(.Cells(3, 4)), Month(.Cells(3, 4)) + 1, 1) - 2

Cordialement,

Rechercher des sujets similaires à "ajout jour fin mois"