VBA Excel: chercher et extraire des mots clef

Résolu
Nibor332 Messages postés 6 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 9 février 2009 - 21 janv. 2009 à 05:20
Nibor332 Messages postés 6 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 9 février 2009 - 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

5 réponses

xpert12 Messages postés 114 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 10 septembre 2010
21 janv. 2009 à 12:50
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

@+
3
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
21 janv. 2009 à 07:42
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 />
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
21 janv. 2009 à 08:00
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 
0
xpert12 Messages postés 114 Date d'inscription lundi 5 février 2007 Statut Membre Dernière intervention 10 septembre 2010
21 janv. 2009 à 12:16
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


@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nibor332 Messages postés 6 Date d'inscription jeudi 7 février 2008 Statut Membre Dernière intervention 9 février 2009
22 janv. 2009 à 00:57
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
0
Rejoignez-nous