VBA Excel: chercher et extraire des mots clef [Résolu]

Nibor332 6 Messages postés jeudi 7 février 2008Date d'inscription 9 février 2009 Dernière intervention - 21 janv. 2009 à 05:20 - Dernière réponse : Nibor332 6 Messages postés jeudi 7 février 2008Date d'inscription 9 février 2009 Dernière intervention
- 22 janv. 2009 à 00:57
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CUT12LD%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" />
<!--[if gte mso 9]><xml>
<w:WordDocument>
<w:View>Normal</w:View>
<w:Zoom>0</w:Zoom>
<w:PunctuationKerning/>
<w:ValidateAgainstSchemas/>
<w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
<w:IgnoreMixedContent>false</w:IgnoreMixedContent>
<w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
<w:Compatibility>
<w:BreakWrappedTables/>
<w:SnapToGridInCell/>
<w:WrapTextWithPunct/>
<w:UseAsianBreakRules/>
<w:DontGrowAutofit/>
</w:Compatibility>
<w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
</w:WordDocument>
</xml><![endif]-->
<!--[if gte mso 9]><xml>
<w:LatentStyles DefLockedState="false" LatentStyleCount="156">
</w:LatentStyles>
</xml><![endif]-->
<style>
<!--
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
@page Section1
{size:21.0cm 842.0pt;
margin:72.0pt 70.9pt 72.0pt 70.9pt;
mso-header-margin:35.45pt;
mso-footer-margin:35.45pt;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Times New Roman";
mso-ansi-language:#0400;
mso-fareast-language:#0400;
mso-bidi-language:#0400;}
</style>
<![endif]-->

Bonjour






 






J’aurais besoin d’aide
pour creer une macro qui puisse chercher dans une plage de cellule une serie de
lettre et ensuite extraire cette ligne avant de passer a la ligne suivante.






 






Par exemple, je
cherche a extraire toutes les lignes qui contiennent les lettres EUR dans une
colonne bien specifique qui peut contenir des textes tels que EUR/AUD, LD-EUR,
EURAUD etc…






 






Merci d’avance
pour votre retour,






 






Pour le moment je
n’ai reussi qu’à créer une macro qui puisse trouver et copier de facon
exaustive un texte exact et non pas une partie du texte





Cf :






 






'**Selection
& copy sur une nouvelle feuille des donnees voulues






 





Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name =
"USD"



 




Sheets("Data").Select


ActiveCell.SpecialCells(xlLastCell).Select


Range(Selection, Cells(1)).Select



 




For Each Rw In Selection.Rows



 Ligne = Rw.Row



 




If Rw.Cells(1, 10).Value = "LD-USD" Or Rw.Cells(1,
10).Value "AUD/USD" Or Rw.Cells(1, 10).Value "EUR/USD"
Or Rw.Cells(1, 10).Value = "GBP/USD" _


Or Rw.Cells(1, 10).Value = "USD/JPY" Or
Rw.Cells(1, 10).Value "NZD/USD" Or Rw.Cells(1, 10).Value
"USD/HKD" Or Rw.Cells(1, 10).Value = "USD/SGD" Then



 






    Rw.Select



     Rw.Copy
Destination:=Worksheets("USD").Cells(Ligne, 2).EntireRow



   






 
End If






 






Next Rw
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
xpert12 114 Messages postés lundi 5 février 2007Date d'inscription 10 septembre 2010 Dernière intervention - 21 janv. 2009 à 12:50
3
Merci
deuxième version corrigée :

Sub Macro1()
' Macro1 Filtre automatique et critère : contenant "EUR" '
Columns("C:C").Select ActiveSheet.Range("$C$1:$C$900").AutoFilter Field:=1, Criteria1:="=*EUR*", _ Operator:=xlAnd End Sub

@+

Merci xpert12 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de xpert12
lillith212 1231 Messages postés vendredi 16 novembre 2007Date d'inscription 16 juin 2009 Dernière intervention - 21 janv. 2009 à 07:42
0
Merci
Bonjour,

Je suis pas spécialiste du vba mais la commande InStr() ne peut-elle pas aider?
genre :

if instr(tacellule,"EUR")>0 then
   traitement
else
   cellulesuivante
end if

Bon courage

S.L.B.
<hr />
Commenter la réponse de lillith212
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 21 janv. 2009 à 08:00
0
Merci
salut,
en effet INSTR, ou peut-être RECHERCHEV qui doit plus correspondre pour VBA excel
++

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
Commenter la réponse de PCPT
xpert12 114 Messages postés lundi 5 février 2007Date d'inscription 10 septembre 2010 Dernière intervention - 21 janv. 2009 à 12:16
0
Merci
Salut,

Une solution simplissime. Regarde du côté des filtres automatiques dans excel avec la fonction personnalisation (contenant) :

Ca donne une macro de ce genre :
Sub Macro1()
'
' Macro1 Filtre automatique et critère : contenant "EUR"
'
Columns("C:C").Select
ActiveSheet.Range("$A$1:$A$900").AutoFilter Field:=1, Criteria1:="=*EUR*", _
Operator:=xlAnd
End Sub


@+
Commenter la réponse de xpert12
Nibor332 6 Messages postés jeudi 7 février 2008Date d'inscription 9 février 2009 Dernière intervention - 22 janv. 2009 à 00:57
0
Merci
Merci a tous pour votre aide precieuse.
j'ai pu reussir a faire ce que je voulais avec le filtre auto.
Je testerais la fonction INSTR qd j'aurais plus de temps
Cheers
Commenter la réponse de Nibor332

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.