Récupérer premier jour du mois

Bonjour chers tous

Dans ma colonne A je dois récupérer les premiers jours du mois des dates en colonne B

J'ai fais ce code mais qui marche mais lentement.

Comment le rendre rapide ou pourrait-on me proposer meilleur? MERCI

Sub Prem()
With Sheets("CGDA1")
       Dim I As Long
       For I = 4 To .Range("B" & Rows.Count).End(xlUp).Row
      .Range("A" & I) = DateSerial(Year(.Range("B" & I)), Month(.Range("B" & I)), 1)
       Next I
       .Range("A4:A" & .Range("B" & Rows.Count).End(xlUp).Row).NumberFormat = "mmm-yy"
End With
End Sub
12premier.xlsm (15.23 Ko)

Bonjour

Essaie ça :

Sub PREM2()
    tablo = Range("A3").CurrentRegion
    For i = 2 To UBound(tablo, 1)
        tablo(i, 1) = DateSerial(Year(tablo(i, 2)), Month(tablo(i, 2)), 1)
    Next i
    Range("A3").Resize(UBound(tablo, 1), 2) = tablo
    Sheets("CGDA1").Range("A4:A" & Sheets("CGDA1").Range("B" & Rows.Count).End(xlUp).Row).NumberFormat = "mmm-yy"
End Sub

Bye !

Bonjour,
Une autre ?
Cdlt.

Sub Prem_1()
Dim lastRow As Long, tbl, i As Long
    With Sheets("CGDA1")
        lastRow = .Cells(.Rows.Count, 2).End(xlUp).Row
        tbl = .Cells(4, 2).Resize(lastRow - 3).Value2
        For i = LBound(tbl) To UBound(tbl)
            tbl(i, 1) = WorksheetFunction.EoMonth(tbl(i, 1), -1) + 1
        Next i
        With .Cells(4, 1).Resize(lastRow - 3)
            .Value = tbl
            .NumberFormat = "mmm-yy"
        End With
    End With
End Sub

Bonjour,

pourquoi vouloir faire ça en vba alors qu'une formule utilisant tous les threads sera beaucoup plus rapide ?
Sans parler du fait qu'en cas d'ajout seules les lignes ajoutées sont calculées et non la totalité.
=DATE(ANNEE(B4);MOIS(B4);1)
eric

Merci à tous pour vos contributions

Bonsoir,
Il va falloir penser à solder tous tes sujets ouverts et non clôturés.
Tu as 3 réponses. Ma réponse est évidemment la meilleure réponse.
Cdlt.

Note : Eriiic recherche une paire de lunettes pas chère, adaptée à sa vue.

Bonsoir,

Pourquoi chercher le premier jour du mois si c'est juste pour mettre en forme "mmm-yy" ?

A4 =TEXTE(B4;"mmm-aa") peut importe le jour, non ?

@ bientôt

LouReeD

Rechercher des sujets similaires à "recuperer premier jour mois"