Recherche d'un mot clé dans une ligne, et si mot clé alors copie

Fermé
Bowooo Messages postés 37 Date d'inscription vendredi 8 juin 2012 Statut Membre Dernière intervention 12 mars 2015 - 12 mars 2015 à 14:58
 Maurice - 13 mars 2015 à 10:20
Bonjour à tous,

Ma problématique est la suivante :
J'ai un fichier excel, contenant 2 feuilles : A et B
J'aimerais si possible rechercher un mot clé dans la feuille A, colonne A, par exemple "motCle". Si il y a "motCle", alors Excel me copie la ligne entière et me la colle dans la feuille B.

Je suis donc tombé sur de tonnes d'exemples en VBA, mais j'ai du mal avec tout ça : j'ai tenté de modifier un script mais sans succès :

[code]
Sub CutData()
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("motCle")
'On effectue la recherche de chaque mot cle dans la colonne A de la sheet1 qui s appelle A
For i = 0 To UBound(motCle)
Do
Set C = Worksheets("A").Columns(A).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 = "B" & (i + 2)
With Worksheets(A)
'On définit la ligne où sera effectué le collage
Ligne = .Range("A" & 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
/code

Merci de votre aide :)
A voir également:

4 réponses

Bonjour
Je pense a une macro comme ca
a lancer dans Feuille A
Sub CopyMotCle()
Application.ScreenUpdating = False
MotCle = "MOTCLE"
   For L = 2 To Range("A" & Rows.Count).End(xlUp).Row
      If UCase(Range("A" & L).Value) = MotCle Then
         Nlig = Feuil2.Range("A" & Rows.Count).End(xlUp).Row + 1
            Rows(L).Copy
         Feuil2.Range("A" & Nlig).PasteSpecial xlPasteValues
      End If
   Next
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub

A+
Maurice
0
Bowooo Messages postés 37 Date d'inscription vendredi 8 juin 2012 Statut Membre Dernière intervention 12 mars 2015 4
12 mars 2015 à 15:59
Hello, merci de ta réponse aussi rapide !

Malheureusement ça ne fonctionne pas :(

1)Est ce que ça serait la faute des "variables" (?) : la feuille et la colonne portant le même nom, ça doit l'embrouiller non ?

2) Serait ce la faute de mes lignes ? Car elles contiennent des infos du genre :
127.0.0.1 - - [02/Mar/2015:00:16:33 +0100] "GET /rdc/images/MotCle/filet.jpg HTTP/1.1" 200 5055 "https://blablabla.do" "Mozilla/5.0 Gecko/20100101 Firefox/24.0"
0
Bonjour
donne au moin un modele pour voir ou ca coinse
A+
Maurice
0
Bonjour

Voila 2 macro a toi de choisiz
Sub CopyMotCle()
Application.ScreenUpdating = False
   For L = 2 To Range("A" & Rows.Count).End(xlUp).Row
      MotCl = Split(Cells(L, 1).Value, "MotCle")
         If UBound(MotCl) = 1 Then
         Nlig = Feuil2.Range("A" & Rows.Count).End(xlUp).Row + 1
            Rows(L).Copy
         Feuil2.Range("A" & Nlig).PasteSpecial xlPasteValues
      End If
   Next
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub

' Copy & Suprime MotCle
Sub SupMotCle()
Application.ScreenUpdating = False
NombLig = Range("A" & Rows.Count).End(xlUp).Row
   For L = NombLig To 2 Step -1
      MotCl = Split(Cells(L, 1).Value, "MotCle")
         If UBound(MotCl) = 1 Then
         Nlig = Feuil2.Range("A" & Rows.Count).End(xlUp).Row + 1
            Rows(L).Copy
         Feuil2.Range("A" & Nlig).PasteSpecial xlPasteValues
            Rows(L).Delete
      End If
   Next
Application.ScreenUpdating = True
Application.CutCopyMode = False
End Sub

A+
Maurice
0