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:
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" ?
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
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.
Partager