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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
'Si dans la colonne A de la feuille 1 je retrouve le mot correspondant à un nom "laurent" et si dans la colonne Q de la meme ligne je retrouve le mot "triste".
'Alors les colonnes B, E, G, H et M de la ligne trouvée doivent être collée dans la feuille 2,a partir de la cellule B8
'Si dans la colonne Q je retrouve le mot "heureux", alors les colonnes B, E,G,H et M doivent être collées dans la feuille 3 a partir de la ligne 8,col B.
'Et ainsi de suite sur mes 70000 lignes jusque trouver le dernier mot correspondant à laurent de la colonne A.
Sub Test()
Dim ws As Worksheet
Dim WsData As Worksheet
Dim WsRecherche As Worksheet
Dim WsConsultation As Worksheet
Dim Cel As Range
Dim cle_un As Range
Dim cle_deux As Range
Dim cle_trois As Range
Dim Plage As Range
Dim Adr As String
Dim DerLgnWsConsul As Long
Dim DerLgnWsRech As Long
'initialiser les variables
Set WsData = Sheets("E30")
Set WsRecherche = Sheets("base")
Set WsConsultation = Sheets("consult")
Set cle_un = WsRecherche.Range("F3")
Set cle_deux = WsRecherche.Range("F4")
Set cle_trois = WsRecherche.Range("F5")
WsConsultation.Range("A14:BZ60000").ClearContents
With WsData
Set Plage = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
With WsConsultation
DerLgnWsConsul = .Cells(.Rows.Count, 2).End(xlUp).Row + 1 'sur colonne B
'a partir de la cellule B8
If DerLgnWsConsul < 9 Then DerLgnWsConsul = 9
End With
With WsRecherche
DerLgnWsRech = .Cells(.Rows.Count, 2).End(xlUp).Row + 1 'sur colonne B
'a partir de la cellule B8
If DerLgnWsRech < 9 Then DerLgnWsRech = 9
End With
'Si dans la colonne A de la feuille 1 je retrouve le mot correspondant à un nom "laurent"
Set Cel = Plage.Find(cle_un.Value, , xlValues, xlWhole)
If Not Cel Is Nothing Then
Adr = Cel.Address
Do
'et si dans la colonne Q de la meme ligne je retrouve le mot "triste"
If Cel.Offset(, 16).Value = cle_deux.Value Then
'Alors les colonnes B, E, G, H et M de la ligne trouvée doivent être collée dans la feuille 2,a partir de la cellule B8
WsConsultation.Cells(DerLgnWsConsul, 2) = Cel.Offset(, 1).Value
WsConsultation.Cells(DerLgnWsConsul, 5) = Cel.Offset(, 4).Value
WsConsultation.Cells(DerLgnWsConsul, 7) = Cel.Offset(, 6).Value
WsConsultation.Cells(DerLgnWsConsul, 8) = Cel.Offset(, 7).Value
WsConsultation.Cells(DerLgnWsConsul, 13) = Cel.Offset(, 12).Value
DerLgnWsConsul = DerLgnWsConsul + 1
'Si dans la colonne Q je retrouve le mot "heureux"
ElseIf Cel.Offset(, 16).Value = cle_trois.Value Then
'alors les colonnes B, E,G,H et M doivent être collées dans la feuille 3 a partir de la ligne 8,col B.
WsRecherche.Cells(DerLgnWsRech, 2) = Cel.Offset(, 1).Value
WsRecherche.Cells(DerLgnWsRech, 5) = Cel.Offset(, 4).Value
WsRecherche.Cells(DerLgnWsRech, 7) = Cel.Offset(, 6).Value
WsRecherche.Cells(DerLgnWsRech, 8) = Cel.Offset(, 7).Value
WsRecherche.Cells(DerLgnWsRech, 13) = Cel.Offset(, 12).Value
DerLgnWsRech = DerLgnWsRech + 1
End If
Set Cel = Plage.FindNext(Cel)
Loop While Adr <> Cel.Address
End If
End Sub |
Partager