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

Signaler
Messages postés
6
Date d'inscription
jeudi 7 février 2008
Statut
Membre
Dernière intervention
9 février 2009
-
Messages postés
6
Date d'inscription
jeudi 7 février 2008
Statut
Membre
Dernière intervention
9 février 2009
-
<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

Messages postés
114
Date d'inscription
lundi 5 février 2007
Statut
Membre
Dernière intervention
10 septembre 2010

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

@+
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
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 />
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
41
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 
Messages postés
114
Date d'inscription
lundi 5 février 2007
Statut
Membre
Dernière intervention
10 septembre 2010

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


@+
Messages postés
6
Date d'inscription
jeudi 7 février 2008
Statut
Membre
Dernière intervention
9 février 2009

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