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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| Option Explicit
Sub programmeconversion()
Application.ScreenUpdating = False
With ThisWorkbook.Sheets("regroupement")
recherchev_emplacements
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dedoublonnage (Sheets(1).UsedRange)
End With
End Sub
Function Look_for(Valeur_cherchee As Variant, Plage_recherche As Range, Decalage As Integer)
Look_for = Plage_recherche.Find(Valeur_cherchee, , xlValue, xlWhole).Offset(0, Decalage)
End Function
Function recherchev_emplacements()
Dim derlign As Long, i&, j&, lim&
Dim valComp As String
Dim tabloIni, Temp
Dim derlign2 As Long
Application.ScreenUpdating = False
With ThisWorkbook.Sheets("regroupement")
derlign = Range("B" & Rows.Count).End(xlUp).Row
derlign2 = Range("N" & Rows.Count).End(xlUp).Row
tabloIni = Range("A1:E" & derlign).Value
lim = UBound(tabloIni, 1)
ReDim Temp(1 To lim, 1 To 4)
j = 1
For i = 1 To lim
valComp = tabloIni(i, 4)
If valComp = "" Then
Temp(j, 1) = tabloIni(i, 1)
Temp(j, 2) = tabloIni(i, 2)
Temp(j, 3) = tabloIni(i, 3)
Temp(j, 4) = Look_for(Range("c" & i), ThisWorkbook.Sheets("regroupement").Range("M1:M" & derlign2), 1)
j = j + 1
Else
Temp(j, 1) = tabloIni(i, 1)
Temp(j, 3) = tabloIni(i, 3)
Temp(j, 2) = tabloIni(i, 2)
Temp(j, 4) = tabloIni(i, 4)
j = j + 1
End If
Next i
derlign = UBound(Temp, 1)
Range("A1:D" & derlign) = Temp
End With
End Function
Function Dedoublonnage(Plage As Range)
Plage.RemoveDuplicates Columns:=Array(2, 3), Header:=xlNo
End Function |