Bonjour,
Je me permets de vous écrire pour solliciter votre aide.J'ai hériter d'un fichier excel avec une partie VBA que je ne maitrise pas.
Je souhaiterais comparer l'année 2017 à 2018 ; il y a un premier tableau de la colonne B à G (2017) et un autre tableau de la colonne H à M (2018). Est-il possible de les classer par ordre chronologique? (janvier, février, mars....)
Merci.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cli$, a%
If Target.Address = "$A$2" Then
If Target <> "" Then
cli = Target: a = Target.Cells(1, 2)
Recherche cli, a
Else
a = Me.Range("B3").CurrentRegion.Rows.Count - 3
Me.Range("B4").Resize(a, 12).ClearContents
End If
End If
End Sub
Sub Recherche(cli As String, a As Integer)
Dim dA1(), dA2(), v1%, v2%, n%, i%, j%, col
col = Array(3, 4, 5, 14, 16, 22)
With Worksheets("données")
n = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = 2 To n
If .Cells(i, 2) = cli Then
If .Cells(i, 1) = a Then
ReDim Preserve dA1(5, v1)
For j = 0 To 5
dA1(j, v1) = .Cells(i, col(j))
Next j
v1 = v1 + 1
ElseIf .Cells(i, 1) = a + 1 Then
ReDim Preserve dA2(5, v2)
For j = 0 To 5
dA2(j, v2) = .Cells(i, col(j))
Next j
v2 = v2 + 1
End If
End If
Next i
End With
Application.ScreenUpdating = False
With Worksheets("Visuel")
n = .Range("B3").CurrentRegion.Rows.Count - 3
If n > 0 Then .Range("B4").Resize(n, 12).ClearContents
If v1 > 0 Then .Range("B4").Resize(v1, 6).Value = WorksheetFunction.Transpose(dA1)
If v2 > 0 Then .Range("h4").Resize(v2, 6).Value = WorksheetFunction.Transpose(dA2)
End With
End Sub