Bonjour
Etant très novice en VBA, je vous soumets un problème concernant la macro suivante :
Sub Macro1()
'
' Macro1 Macro
'
' Touche de raccourci du clavier: Ctrl+a
'
Dim num_col As Integer
Dim num_sem_col As Integer
Dim num_sem_colplus1 As Integer
Dim CA_hebdo As Double
Dim annee As Integer
Dim semaine As Integer
num_col = 2
For num_col = 2 To 1156
num_sem_col = Cells(31, num_col)
num_sem_colplus1 = Cells(31, num_col + 1)
CA_hebdo = Cells(38, num_col)
annee = Cells(29, num_col)
semaine = Cells(31, num_col)
If num_sem_col <> num_sem_colplus1 Then
Cells(43, num_col) = CA_hebdo
Cells(42, num_col) = "S" & semaine & " " & annee
End If
Next num_col
Dim i As Integer
num_col = 2
For i = 1 To 1156
If Not IsEmpty(Cells(43, num_col)) Then
num_col = num_col + 1
Else
Range(Cells(42, num_col), Cells(43, num_col)).Select
Selection.Delete Shift:=xlToLeft
End If
Next i
End Sub
Quand je la fais tourner sur un fichier exemple ne comportant que peu de lignes (10 environ) mais autant de colonnes, elle met 1 minute.
Quand c'est sur ma feuille de travail qui comporte 10 lignes de formules excel et 20 lignes de paramètres au-dessus, cela met 25 minutes. Il faut savoir que cette feuille est dans un classeur qui comporte plusieurs feuilles du même type. C'est la deuxième partie de la macro qui met du temps (à partir de For i=1 To 1156).
Comment faire pour améliorer cela ?
D'avance merci pour les conseils que vous pourrez me donner.
Jacques