Selectionner plusieurs lignes selon un critère pour les copier

charlo

XLDnaute Nouveau
Bonjour à tous,

décidemment depuis que je vous ais rencontré je ne peux plus me passer de vous.

J'ai une question qui me parait toute bête mais à laquelle je ne trouve pas le réponse qui me satisfait.

je cherche un code VBA me permettant de chercher les lignes d'une selection dont une des cellules contient "X" pour les selectionner et les copier sur une autre feuille.

Pour le moment j'ai ceci, mais ce n'est pas du tout concluant !!


Range("B14:L655").Select
Range("B15").Activate
Dim x As Object
Set x = Selection
For Each i In x
If i.Value = "X" Then Rows(i.Row).Copy
Next



Pourriez-vous m'aider ??
 

MJ13

XLDnaute Barbatruc
Re : Selectionner plusieurs lignes selon un critère pour les copier

Bonjour Charlo

Essaye un code de ce type:

Code:
Sub test()
j = 1
Range("A1:A100").Select
Set x = Range(Selection.Address)
For Each i In x
If i.Value = "X" Then Rows(i.Row).Copy Sheets(2).Rows(j): j = j + 1
Next
End Sub
 

charlo

XLDnaute Nouveau
Re : Selectionner plusieurs lignes selon un critère pour les copier

Salut MJ13,

J'ai essayé ton code et comme pour le mien ça marche plus à ce niveau : If i.Value = "X" Then
Pourtant dans mes cellules j'ai : =SI((INDIRECT($B17&"!$A$12")="BLABLA");"X";"")
 

charlo

XLDnaute Nouveau
Re : Selectionner plusieurs lignes selon un critère pour les copier

je retire ce que je viens de dire, ton code à la différence du mien fonctionne et s'il m'annonce une erreur c'est que j'ai une #ref que je vais enlever tout de suite avec esterr.

Encore une fois merci beaucoup de ton aide.
 

JNP

XLDnaute Barbatruc
Re : Selectionner plusieurs lignes selon un critère pour les copier

Bonsoir le fil :),
Un peu après la bataille, mais une autre possibilité :rolleyes:...
Code:
Sub Test()
Dim Plage As Range, Cellule As Range
For Each Cellule In Selection
If UCase(Cellule) = "X" Then
If Plage Is Nothing Then
Set Plage = Rows(Cellule.Row)
Else
Set Plage = Union(Plage, Rows(Cellule.Row))
End If
End If
Next
Plage.Copy Feuil2.Range("A1")
End Sub
Bonne soirée :cool:
 

charlo

XLDnaute Nouveau
Re : Selectionner plusieurs lignes selon un critère pour les copier

Merci JNP, tu enrichis ma culture VBA.
Bonne soirée à vous aussi.
 

charlo

XLDnaute Nouveau
Re : Selectionner plusieurs lignes selon un critère pour les copier

j'ai une autre petite question, est-ce qu'ilserait possible, que plutôt que de chercher de A1 à C100, il cherche de A1 à la derniere cellule pleine ???
 

charlo

XLDnaute Nouveau
Re : Selectionner plusieurs lignes selon un critère pour les copier

Ah c'est bon j'ai trouvé, pour ceux à qui ça peut servir un jour : j = 14

Range("B14").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select


Set x = Range(Selection.Address)
For Each i In x
i.Select
If i.Value = "X" Then Rows(i.Row).Copy Sheets("ANALYSE REBUTS BlAbLA").Rows(j): j = j + 1

Next
 

JNP

XLDnaute Barbatruc
Re : Selectionner plusieurs lignes selon un critère pour les copier

Re :),
Par rapport à mon code
Code:
For Each Cellule In ActiveSheet.UsedRange
par exemple.
Sinon, par rapport à celui de Michel
Code:
Set x = Range("A1:A" & Range("A35000").End(xlUp).Row)
Bonne soirée :cool:
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas