Dans la ColA de la premiere feuille j'ai besoin de rechercher toutes les cellules avec comme valeur respectives "Paris", "Seoul", "Tokyo" puis de les copier dans la ColA de la seconde feuille nommée "Xtractor".
Ma macro fonctionne et me donne bien les valeurs recherchees dans la seconde feuille mais elle ne respecte pas l'ordre d'origine des cellules et j'ai besoin d'être sûr de conserver l'ordre d'apparition des cellules d'origine.
example en dessous: (Mon résultat)
PARIS
PARIS
PARIS
SEOUL
SEOUL
TOKYO
TOKYO
TOKYO
J'aimerai conserver l'ordre reel des cellules de la ColA.
example en dessous: (Example de Resultat souhaité)
PARIS
TOKYO
PARIS
PARIS
SEOUL
TOKYO
SEOUL
TOKYO
TOKYO
Savez vous comment faire pour etre sur de conserver l'ordre d'origine des cellules recherchée dans la ColA de la 1ere feuille et copiées dans la deuxieme feuille?
Sub Xtractor ()
UN Copy_To_Another_Sheet (called "Xtractor")
' all cells with "PARIS", "SEOUL", "TOKYO"
' By order of appearence from A1 to A5000
Dim MyArr As Variant
Dim Rcount As Long
Dim n As Long
Dim rng2 As Range
Dim FirstAddress2 As String
Application.ScreenUpdating = False
MyArr = Array (PARIS", "SEOUL", "TOKYO)
Rcount = 0
With Sheets("Sheet1").Range("A1:A50000 ")
For n = LBound(MyArr) To UBound(MyArr)
Set rng2 = .Find(What:=MyArr(n), _
After:=.Cells(.Cells.Count), _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not rng2 Is Nothing Then
FirstAddress2 = rng2.Address
Do
Rcount = Rcount + 1
‘ This example will only copy the value
Sheets("Xtractor").Range("A" & Rcount).Value = rng2.Value
Set rng2 = .FindNext(rng2)
Loop While Not rng2 Is Nothing And rng2.Address <> FirstAddress2
End If
Next n
End With
Application.ScreenUpdating = True
End Sub
__________________________
Merci par avance pour votre aide et vos conseils.
Sub Macro1()
Application.ScreenUpdating = False
Sheets(1).Select
For i = 1 To Range("A65536").End(xlUp).Row
Sheets(1).Select
Cells(i, 1).Select
If Selection.Value = "PARIS" Or Selection.Value = "SEOUL" Or Selection.Value = "TOKYO" Then
Selection.Copy
Sheets(2).Select
derl = Range("A65536").End(xlUp).Row + 1
Cells(derl, 1).Select
ActiveSheet.Paste
End If
Next
Sheets(2).[a1].Value = "Villes triées"
Application.ScreenUpdating = True
Sheets(2).Select
End Sub
Oui en effet je pense savoir pourquoi ca ne fonctionne pas, j'ai oublie de preciser qu'il y des donnees qui suivent Paris, Seoul et Tokyo dans la même Cellule..
C'est pour cela que dans mon precedent code j'avais utilise "xlPart"
Ce doit etre ca qui bloque je suppose..
__________________________
Merci par avance pour votre aide et vos conseils.