Recherche d'un mot clé dans une ligne, et si mot clé alors copie
Bowooo
Messages postés
40
Statut
Membre
-
Maurice -
Maurice -
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 :)
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:
- Recherche d'un mot clé dans une ligne, et si mot clé alors copie
- Clé usb non détectée - Guide
- Clé d'activation windows 10 - Guide
- Clé usb - Accueil - Stockage
- Formater clé usb - Guide
- Mot de passe - Guide
4 réponses
Bonjour
Je pense a une macro comme ca
a lancer dans Feuille A
A+
Maurice
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
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"
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"
Bonjour
Voila 2 macro a toi de choisiz
A+
Maurice
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