copier ligne en fonction mot dans cellule

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 !

ICE_SACCO

XLDnaute Junior
Bonjour,

J'ai un problème sur ma macro qui boucle car je ne vois pas comment éviter de recopier les mêmes lignes sans les supprimer.

Sub Copy()

Dim MotCle
Dim i As Byte
Dim C As Range
Dim F As String
Dim Ligne As Long
'On définit les mots clés
MotCle = Array("REQ0")
'On effectue la recherche de chaque mot clé dans la colonne A de la Feuil1
For i = 0 To UBound(MotCle)
Do
Set C = Worksheets("feuil1").Columns(1).Find(MotCle(i), LookIn:=xlValues, lookat:=xlPart)
'Si le mot clé est trouvé
If Not C Is Nothing Then
'On définit le nom de la feuille où sera effectuée la copie
F = "Feuil2"
With Worksheets(F)
'On définit la ligne où sera effectué le collage
Ligne = .Range("F" & Rows.Count).End(xlUp).Row + 1
'On effectue le copier / coller
C.EntireRow.Copy .Range("A" & Ligne)
End With

End If
Loop While Not C Is Nothing
Next i
End Sub


Merci d'avance
 
Bonjour ICE_SACCO,

Pas pu tester sans fichier exemple en PJ.

Toutefois, je te propose d'essayer comme suit:

Sub Copie()
Dim MotCle
Dim i As Byte
Dim C As Range, D As Range
Dim F As Object
Dim Ligne As Long

'On définit les mots clés
MotCle = Array("REQ0")
'On effectue la recherche de chaque mot clé dans la colonne A de la Feuil1
For i = 0 To UBound(MotCle)
Do
Set C = Feuil1.Columns(1).Find(MotCle(i), LookIn:=xlValues, lookat:=xlPart)
'Si le mot clé est trouvé
If Not C Is Nothing Then
'On définit le nom de la feuille où sera effectuée la copie
Set F = Feuil2
With Worksheets(F)
'On effectue la recherche de chaque mot clé dans la colonne A de la Feuil2
Set D = .Columns(1).Find(MotCle(i), LookIn:=xlValue, lookat:=xlPart)
'Si le mot clé n'est pas trouvé dans la feuille 2
If D Is Nothing Then
'On définit la ligne où sera effectué le collage
Ligne = .Range("F" & Rows.Count).End(xlUp).Row + 1
'On effectue le copier / coller
C.EntireRow.Copy .Range("A" & Ligne)
End If
End With
End If
Loop While Not C Is Nothing
Next i
End Sub


Espérant avoir répondu.

Cordialement.
 
RE

Malgré la copie de ton fichier, ce n'est toujours pas clair dans mon esprit: je ne vois pas la corrélation entre les colonnes 1 des feuilles 1 et 2. De plus, que comptes-tu faire avec la variable REQ0, car UBound(MotCle)=0, ce qui met fin illico à la boucle For i...Next.

Peux-tu préciser davantage?

Cordialement.
 
- 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
2
Affichages
153
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Réponses
4
Affichages
223
Retour