Ajouter des jours manquantes à la base

Bonjour,

Dans la colonne date dans le fichier ci-joint j'ai des jours manquantes j'ai besoin svp d'une macro pour les ajoutés

21date.xlsx (16.10 Ko)

Bonsoir le forum,

A3 : saisir 02/01/1999

A2:A3 : bouton de recopie : tirer vers le bas jusqu'à la ligne 1 230.

dates

Merci pour votre réponse mais moi je cherche à l'appliquer sur VB

Bonsoir tout le monde, Anas, Mbbp,

une façon de faire...

Dim tDates() As Date
Dim dDate1 As Date
Dim dDate2 As Date
'
iRow = Range("A" & Rows.Count).End(xlUp).Row
dDate1 = DateAdd("d", -1, Cells(2, 1))
dDate2 = Cells(iRow, 1)
iLen = -1
Do
    dDate1 = DateAdd("d", 1, dDate1)
    iLen = iLen + 1
    ReDim Preserve tDates(iLen)
    tDates(iLen) = Format(dDate1, "dd/mm/yyyy")
Loop While dDate1 <= dDate2
'
Range("B2:B" & 1 + iLen).Value = WorksheetFunction.Transpose(tDates)

J'espère que tu auras moins de problèmes de format date que moi car tous les styles se mélangent sur une même colonne!

A+

15listedates.xlsm (41.05 Ko)

bounjour,

merci pour votre aide curulis57 le programme marche bien concernat le mélange de format date il faut juste mettre "mm/dd/yyyy" à la place de "dd/mm/yyyy"

Bonjour,

Une autre proposition.

Cdlt.

Public Sub DEMO()
Dim Rng As Range
Dim minDate As Double, maxDate As Double
Dim arr() As Double
Dim I As Long, k As Long, n As Long

    With ActiveSheet
        Set Rng = .Range(Cells(2, 1), Cells(2, 1).End(xlDown))
        minDate = WorksheetFunction.Min(Rng)
        maxDate = WorksheetFunction.Max(Rng)
        n = maxDate - minDate + 1
        ReDim arr(1 To n)
        For I = 1 To n
            arr(I) = minDate + k
            k = k + 1
        Next I
        With .Cells(2, 7).Resize(n)
            .Value = Application.Transpose(arr)
            .NumberFormat = "m/d/yyyy"
        End With
    End With

    Erase arr: Set Rng = Nothing

End Sub

Bonojour,

Merci Jean-Eric c 'est nickle

Cdlt.

Bonjour Ans, Jean-Eric,

@Jean-Eric, je ne pense pas toujours à raccourcir au plus mes codes (surtout la nuit) et le tien m'a inspiré celui-ci.

'
Dim tDates() As Date
Dim dDate1 As Date
Dim dDate2 As Date
'
'iRow = Range("A" & Rows.Count).End(xlUp).Row
dDate1 = Cells(2, 1)
dDate2 = Cells(Range("A" & Rows.Count).End(xlUp).Row, 1)
iLen = DateDiff("d", dDate1, dDate2) + 1
ReDim tDates(iLen)
'
For x = 0 To iLen
    tDates(x) = Format(DateAdd("d", x, dDate1), "mm/dd/yyyy")
Next
'
Range("B2:B" & iLen + 1).Value = WorksheetFunction.Transpose(tDates)
'

Par contre, j'aimerais beaucoup que vous m'expliquiez pourquoi "mm/dd/yyyy" me met la date à la française!!!!!

A+

Re,

@Curulis57,

Bon, le format date *14/03/2012 avec les paramètres régionaux (emplacement) Français (France) correspond au format nombre jj/mm/aaaa.

Mais en VBA, au format nombre m/d/yyyy !?

Utilise l'enregistreur de macros pour t'en rendre compte. Je pense que NumberFormat est évalué en langue US.

Avec NumberFormatLocal, il faudrait saisir jj/mm/aaaa...

Je réponds à ton interrogation ??

Cdlt.

Bonjour Jean-Eric,

merci de ta réponse qui me plonge dans un abîme de perplexité! Quel foutoir!

A quoi sert alors le format-cellule car, même appliqué sur la colonne entière, il m'affiche tous les styles de date de ligne en ligne?

Pour ne pas encombrer cette discussion, je continuerai mes recherches sur la Toile.

Merci.

Joyeuses Fêtes!

Bonjour tout le monde,

J’ai encore besoin de votre aide, j’ai des taux qui sont liées à la colonne « A » (date) et maintenant je dois cordonnées ces taux à la colonne « F » (date modifiée), sachant que dans la colonne « F » on a ajouté des jours manquants et dans les cellules de leurs taux il

faut afficher « ND » vous trouverez ci-joint le fichier

Cordialement

13dates.xlsx (8.98 Ko)

Bonjour anas,

vite fait, bien fait! 8)

A+

14listedatesbis.xlsm (21.00 Ko)

Bonjour curulis57,

Merci c'est nickle il faut juste mettre "mm/dd/yyyy" à la place de "dd/mm/yyyy" pour avoir une format cohérente des dates

CDLT

Bonjour,

Un petit souci avec la fonction DateDiff ou il faut ajouter +1 pour prendre la dernière date.

Me trompe je ?

Cdlt.

Bonsoir Jean-Eric,

tu as tout a fait raison! Encore été trop vite!

iLen = DateDiff("d", dDate1, dDate2) + 1

Sans compter encore ce foutu "mm/dd/yyyy"...

C'est en forgeant qu'on devient forgeron!

A+

Rechercher des sujets similaires à "ajouter jours manquantes base"