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
| Private Sub recherche()
Dim ws1 As Worksheet, ws2 As Worksheet, i1 As Long, i2 As Long, k As Long, kk As Long, z As Long
Set ws1 = Worksheets("Essai")
Set ws2 = Worksheets("Recopie")
i1 = ws1.Range("A8").End(xlDown).Row
i2 = ws2.Range("A8").End(xlDown).Row
With ws1
For k = 8 To i1
z = .Range("B" & k)
For kk = 8 To i2
If z = ws2.Range("B" & kk) Then
'si c'est le même numéro alors je recopie toutes les données de la feuille essai dans la feuille recopie
ws2.Range("B" & kk) = z
ws2.Range("E" & kk) = .Range("C" & k)
ws2.Range("F" & kk) = .Range("D" & k)
ws2.Range("G" & kk) = .Range("E" & k)
ws2.Range("H" & kk) = .Range("F" & k)
ws2.Range("I" & kk) = .Range("G" & k)
ws2.Range("O" & kk) = .Range("H" & k)
ws2.Range("P" & kk) = .Range("I" & k)
ws2.Range("Q" & kk) = .Range("J" & k)
ws2.Range("R" & kk) = .Range("K" & k)
ws2.Range("S" & kk) = .Range("L" & k)
ws2.Range("T" & kk) = .Range("M" & k)
ws2.Range("U" & kk) = .Range("N" & k)
ws2.Range("V" & kk) = .Range("O" & k)
ws2.Range("W" & kk) = .Range("P" & k)
ws2.Range("X" & kk) = .Range("Q" & k)
ws2.Range("Y" & kk) = .Range("R" & k)
ws2.Range("Z" & kk) = .Range("S" & k)
ws2.Range("AA" & kk) = .Range("T" & k)
ws2.Range("A" & kk) = .Range("A" & k)
End If
Next
Next
End With
'sinon, je recopie les données dans une ligne qui n'est pas occupée
' Dernière ligne vide dans la feuille recopie
lgLigFinH = Worksheets("Recopie").Range("A" & Cells.Rows.Count).End(xlUp).Row + 1
' Dernière ligne dans la feuille essai
lgLigFinM = Worksheets("Essai").Range("A" & Cells.Rows.Count).End(xlUp).Row + 1
' Copier les données de la feuille "essai" dans la première ligne vide de la feuille recopie
Worksheets("Essai").Range("A8:B" & lgLigFinM).Copy Destination:=Worksheets("Recopie").Range("A" & lgLigFinH)
Worksheets("Essai").Range("C8:G" & lgLigFinM).Copy Destination:=Worksheets("Recopie").Range("E" & lgLigFinH)
Worksheets("Essai").Range("H8:T" & lgLigFinM).Copy Destination:=Worksheets("Recopie").Range("O" & lgLigFinH)
'et puis maintenant je trie par odre croissant
Range("A8:AA1000").Select
Selection.Sort Key1:=Range("B8"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub |
Partager