VBA pb pr extraire & copier 1 partie de texte
r.assice
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
xav3601 Messages postés 3289 Date d'inscription Statut Membre Dernière intervention -
xav3601 Messages postés 3289 Date d'inscription Statut Membre Dernière intervention -
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 partir 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
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 partir 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
A voir également:
- VBA pb pr extraire & copier 1 partie de texte
- Extraire une video youtube - Guide
- Extraire texte d'une image - Guide
- Extraire le son d'une vidéo - Guide
- Copier texte pdf - Guide
- Super copier - Télécharger - Gestion de fichiers
3 réponses
Bonjour,
pour extraire une partie du texte il n'y pas de fonction existante :S
il te faut donc faire une fonction.
par exemple je prend la chaine de caractere EUR/DOL
tu as dis que tu cherchais la partie EUR. Tout d'abord tu cherche un E si tu en trouve un tu test le caractere d'apres si c'est un U tu test le caractere d'apres et si c'est un R tu marque ta ligne comme contenant la chaine EUR.
Sinon si tu as un nombre de phrase predefenie et toujours identique tu test chaque cas, exemple:
toujours EUR/DOL, tu recupere les trois premier caractere grace a la fonction Mid et tu compare avec "EUR"
et tu fais de meme avec toute les phrase possible... en gros, dans ton cas tu test les 3 premiers caracteres ca couvrira les cas EUR/AUD, EURAUD et tu test aussi les 3 derniers pour le cas LD-EUR si le premier n'etait pas concluant...
j'espere avoir ete clair et t'avoir aider :-)
pour extraire une partie du texte il n'y pas de fonction existante :S
il te faut donc faire une fonction.
par exemple je prend la chaine de caractere EUR/DOL
tu as dis que tu cherchais la partie EUR. Tout d'abord tu cherche un E si tu en trouve un tu test le caractere d'apres si c'est un U tu test le caractere d'apres et si c'est un R tu marque ta ligne comme contenant la chaine EUR.
Sinon si tu as un nombre de phrase predefenie et toujours identique tu test chaque cas, exemple:
toujours EUR/DOL, tu recupere les trois premier caractere grace a la fonction Mid et tu compare avec "EUR"
et tu fais de meme avec toute les phrase possible... en gros, dans ton cas tu test les 3 premiers caracteres ca couvrira les cas EUR/AUD, EURAUD et tu test aussi les 3 derniers pour le cas LD-EUR si le premier n'etait pas concluant...
j'espere avoir ete clair et t'avoir aider :-)
Salut,
Pour info, il existe la fonction Instr
InStr([start], string1, string2, [compare])
La syntaxe de la fonction InStr comprend les arguments suivants :
start Facultatif.Expression numérique qui définit la position de départ de chaque recherche. Si cet argument est omis, la recherche commence au premier caractère. Si l'argument start contient une valeur de typeNull, une erreur se produit. L'argument start est obligatoire si l'argument compare est indiqué.
string1 Expression de chaîne dans laquelle la recherche est effectuée.
string2 Expression de chaîne recherchée.
compare Facultatif. Indique le type de comparaison de chaînes. Si l'argument compare est de type Null, une erreur se produit. Si l'argument compare est omis, la valeur de l'instruction Option Compare détermine le type de comparaison.
Ex : instr("je suis sur un forum","suis") renvoie la valeur 4
Bonne journée.
Pour info, il existe la fonction Instr
InStr([start], string1, string2, [compare])
La syntaxe de la fonction InStr comprend les arguments suivants :
start Facultatif.Expression numérique qui définit la position de départ de chaque recherche. Si cet argument est omis, la recherche commence au premier caractère. Si l'argument start contient une valeur de typeNull, une erreur se produit. L'argument start est obligatoire si l'argument compare est indiqué.
string1 Expression de chaîne dans laquelle la recherche est effectuée.
string2 Expression de chaîne recherchée.
compare Facultatif. Indique le type de comparaison de chaînes. Si l'argument compare est de type Null, une erreur se produit. Si l'argument compare est omis, la valeur de l'instruction Option Compare détermine le type de comparaison.
Ex : instr("je suis sur un forum","suis") renvoie la valeur 4
Bonne journée.
Merci pour ton aide. Au final j'ai reussi a m'en sortir en faisant un filtre auto personalise.
Cheers