Recherche d'un mot clé dans une ligne, et si mot clé alors copie
Bowooo
Messages postés
37
Date d'inscription
Statut
Membre
Dernière intervention
-
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é windows 8 - Guide
- Formater clé usb - Guide
- Trousseau mot de passe iphone - Guide
- Clé usb - Accueil - Stockage
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