Bonjour,
La macro KIVABIEN :
Sub galopin()
Dim cB%, iLC%, i&, ii&, iB&, iM&, ArrB, ArrM, oB, oM, Y As Boolean
'Détermination des bornes et Chargement des Array
Set oB = Worksheets("BASE")
Set oM = Worksheets("MODIFICATEUR")
cB = oB.Cells(1).End(2).Column
iB = oB.Cells(1).End(4).Row
iM = oM.Cells(1).End(4).Row
ArrB = oB.Range(oB.Cells(1, 1), oB.Cells(iB, cB))
ArrM = oM.Range(oM.Cells(1, 1), oM.Cells(iM, 1))
'Modification
For i = 2 To iM
For ii = 2 To iB
If ArrB(ii, 1) = ArrM(i, 1) Then
Y = True
iLC = cB
Do While Y
If ArrB(ii, iLC) > 0 Then
Y = False
Else
ArrB(ii, iLC) = ""
iLC = iLC - 1
End If
Loop
End If
Next
Next
'Transfert dans la base
oB.Range(oB.Cells(1, 1), oB.Cells(iB, cB)) = ArrB
End Sub
Nota : A tester quand même...
Si le Proc donne des signes d'essoufflement il faudra peut-être saucissonner la base (dans la macro) en tranches de 100 000 lignes.
NB : Pour de grandes bases le format : .xlsb est souvent avantageux.
A+