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
| Sub remplacerNvCompte()
Application.ScreenUpdating = False 'juste pour arrêter affichage écran et améliorer le temps d'exécution du macro
With Sheets("Feuil1") ' Feuille qui contient le tableau de correspondance en colonne A les anciens comptes et en colonne B les nouveaux comptes comptables
tablo = .Range("A2", "B" & .Range("B" & .Rows.Count).End(xlUp).Row)
End With
'Supposons que les anciens comptes comptables se trouvent en colonne A de toutes les autres feuilles à partir de A2
Dim derligne As Long
Dim j As Long
Dim K As Integer
Dim z As Integer
j = 2 'Les données à modifier à partir de A2
For z = 1 To Worksheets.Count 'Parcourir toutes les onglets
If Worksheets(z).Name <> "Feuil1" Then 'si le nom de l'onglet est différent de feuil1 qui va pas subir la modification et qui contient la table de correspondance
j = Worksheets(z).Range("A" & Rows.Count).End(xlUp).Row 'chercher la dernière ligne non vide de la colonne A de chaque feuille
For i = LBound(tablo, 1) To UBound(tablo, 1) 'chercher dans le tableau de correspondance déclaré ci haut
For K = 2 To j
If Worksheets(z).Cells(K, 1) = tablo(i, 1) Then Worksheets(z).Cells(K, 1) = tablo(i, 2)
Next K
Next i
End If
Next z
MsgBox ("Modification effectuée avec succès .... ")
Application.ScreenUpdating = True
End Sub |