Selectionner plusieurs lignes selon un critère pour les copier

  • Initiateur de la discussion Initiateur de la discussion charlo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 ??
 
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
 
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";"")
 
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.
 
Re : Selectionner plusieurs lignes selon un critère pour les copier

Bonsoir le fil 🙂,
Un peu après la bataille, mais une autre possibilité 🙄...
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 😎
 
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
 
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 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
818
Retour