Bonjour,

Je suis en train de réaliser une macro sur un fichier que je mets à jour quotidiennement afin de m'éviter toutes les modifications manuelles. La macro entière fonctionne mais est fortement ralentie par une des tâches:
Je veux remplacer les valeurs de la colonne W en fonction de celles de la colonne X. C'est à dire, si X1="11" alors W1="M". Si X2="12" alors W2="M+1".
J'ai donc réalisé la macro suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Sub Descendre_lignes()
ActiveSheet.Select
 Dim A As Integer
 A = 3
 
 Do While Range("W" & A).Value > 0
 
 If Range("W" & A).Value = "11" Then
 Range("X" & A).Value = "M"
 Else
 If Range("W" & A).Value = "12" Then
Range("X" & A).Value = "M+1"
Else
 If Range("W" & A).Value = "1" Then
 Range("X" & A).Value = "M+2"
 Else
 If Range("W" & A).Value = "2" Then
 Range("X" & A).Value = "M+3"
 
 Else: Range("X" & A).Value = "Over"
End If
End If
End If
End If
 
 
A = A + 1
 
 Loop
Elle fonctionne mais est super lente, d'autant plus qu'il peut y'avoir jusqu'à 5000 lignes à traiter. Mes connaissances en VBA étant très limitées, est ce que quelqu'un saurait comment la "simplifier" ?
Merci d'avance

PS : Je sais bien qu'il serait plus facile d'utiliser une simple formule mais le but de cette macro est de tout automatiser et je dois également pouvoir effectuer des modifications sur la colonne W, ce qui casserait les formules.