Je cherche à extraire le mois et l'année d'une date au format (JJ/MM/AAAA) afin d'obtenir une date au format (MM/AAAA) -> exemple en fichier joint pour quelques lignes.
Connaissez-vous un code VBA qui permette de traiter rapidement ce calcul sur un tableau à taille variable (nombre de lignes pouvant varier de 1 à 300 000 lignes).
Re : Extraire le mois et l'année d'une date en VBA
Bonjour Risbal14
A tester:
Code:
Sub test()
tablo = Range("A2:B" & Range("A" & Rows.Count).End(xlUp).Row)
For n = LBound(tablo, 1) To UBound(tablo, 1)
tablo(n, 2) = Format(tablo(n, 1), "mm-yyyy")
Next
Range("A2").Resize(UBound(tablo, 1), UBound(tablo, 2)) = tablo
End Sub
Re : Extraire le mois et l'année d'une date en VBA
Bonjour à tous.
Un essai sous forme de procédure évènementielle :
VB:
Private Sub Worksheet_Change(ByVal Cible As Range)
Dim oPlg As Range, oCel As Range
Set oPlg = Intersect(Cible, Columns(2).Resize(Rows.Count - 1).Offset(1))
If Not oPlg Is Nothing Then
With Application: .ScreenUpdating = 0: .EnableEvents = 0: .Calculation = -4135: End With
With oPlg.Offset(, -1): .NumberFormat = "General": .Value = Empty: End With
For Each oCel In oPlg.Cells
If VarType(oCel) = vbDate Then
oCel.Offset(, -1).NumberFormat = "mmm-yy"
If CDbl(oCel.Value) >= 32 Then
oCel.Offset(, -1).Value = 1 + WorksheetFunction.EoMonth(oCel.Value, -1)
Else
oCel.Offset(, -1).Value = 1
End If
End If
Next
With Application: .Calculation = -4105: .EnableEvents = 1: .ScreenUpdating = 1: End With
End If
End Sub
Re : Extraire le mois et l'année d'une date en VBA
Bonjour Risbal14
A tester:
Code:
Sub test()
tablo = Range("A2:B" & Range("A" & Rows.Count).End(xlUp).Row)
For n = LBound(tablo, 1) To UBound(tablo, 1)
tablo(n, 2) = Format(tablo(n, 1), "mm-yyyy")
Next
Range("A2").Resize(UBound(tablo, 1), UBound(tablo, 2)) = tablo
End Sub
Sub test()
tablo = Range("A11:B" & Range("B" & Rows.Count).End(xlUp).Row)
For n = LBound(tablo, 1) To UBound(tablo, 1)
tablo(n, 1) = tablo(n, 2)
Next
Range("A11").Resize(UBound(tablo, 1), UBound(tablo, 2)) = tablo
End Sub