Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

help !!!!! recherche de lignes en fonction de certains caractères

6 réponses
Avatar
mike
hello à tous

je désire extraire dans un grand classeur les lignes qui finissent
après la date par 1 ou 2 ou blanc, tout en sachant que la longueur de
la ligne est aléatoire(mais toujours après la date). Il y a 3 sortes de
ligne (blanc à la fin, 1 à la fin, 2 à la fin)

exemple:

21.01.1939 CHRISTEN ANNE MARIE | 18.06.1973 20.07.1997 |
21.01.1939 CHRISTEN ANNE MARIE | 21.05.2003 27.05.2003 1 |
22.11.1927 DELLEY YVONNE | 23.06.2003 03.07.2003 2 | DOC M

Je recherche une formule ou une fonction qui pourrais m'extraire les
lignes seulement les 1 et les 2 dans la même feuille(macro?)

Merci à tous de votre aide!!

Mike

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

6 réponses

Avatar
Philippe.R
Bonsoir Mike,
Dans une colonne complémentaire, tu saisis la formule :
=DROITE(B1;1)
et tu appliques un filtre personnalisé en utilisant les critères de cette colonne
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"mike" a écrit dans le message de news:
hello à tous

je désire extraire dans un grand classeur les lignes qui finissent
après la date par 1 ou 2 ou blanc, tout en sachant que la longueur de
la ligne est aléatoire(mais toujours après la date). Il y a 3 sortes de
ligne (blanc à la fin, 1 à la fin, 2 à la fin)

exemple:

21.01.1939 CHRISTEN ANNE MARIE | 18.06.1973 20.07.1997 |
21.01.1939 CHRISTEN ANNE MARIE | 21.05.2003 27.05.2003 1 |
22.11.1927 DELLEY YVONNE | 23.06.2003 03.07.2003 2 | DOC M

Je recherche une formule ou une fonction qui pourrais m'extraire les
lignes seulement les 1 et les 2 dans la même feuille(macro?)

Merci à tous de votre aide!!

Mike

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com



Avatar
FxM
Bonsoir Mike,

Trois questions :

- les dates constituent-elles des dates en temps que telles pour Excel
ou bien sont-elles considérées comme des caractères parmi du texte ?
(en d'autres mots, peut-on faire une recherche sur . ?)

- le caractère | est-il un caractère ou marque-t-il un saut de colonne ?
22.11.1927 DELLEY YVONNE | 23.06.2003 03.07.2003 2 | DOC M en une seule
et même ligne ou bien :
22.11.1927 DELLEY YVONNE en colonne A
23.06.2003 03.07.2003 2 en colonne B
DOC M en colonne C

- qu'entends-tu par "extraire sur la feuille feuille" ?
Cherches-tu à faire une copie (où ?). Ne penses-tu pas qu'il serait
mieux de recopier sur une autre feuille pour éviter les mélanges ?
Peut-on enlever les lignes non concernées ou souhaites-tu conserver
toutes les lignes originales.

@+
FxM





mike wrote:

hello à tous

je désire extraire dans un grand classeur les lignes qui finissent après
la date par 1 ou 2 ou blanc, tout en sachant que la longueur de la ligne
est aléatoire(mais toujours après la date). Il y a 3 sortes de ligne
(blanc à la fin, 1 à la fin, 2 à la fin)

exemple:

21.01.1939 CHRISTEN ANNE MARIE | 18.06.1973 20.07.1997 |
21.01.1939 CHRISTEN ANNE MARIE | 21.05.2003 27.05.2003 1 |
22.11.1927 DELLEY YVONNE | 23.06.2003 03.07.2003 2 | DOC M

Je recherche une formule ou une fonction qui pourrais m'extraire les
lignes seulement les 1 et les 2 dans la même feuille(macro?)

Merci à tous de votre aide!!

Mike



Avatar
Clément Marcotte
Bonjour,

En supposant que chaque ligne d'origine égale une seule cellule de la
colonne A de la feuille "Feuil1", et que les lignes à conserver sont
copiées en colonne A de la feuille "Feuil2"

Ajouter la référence à Microsssoft VBScript Regular Expressions 5.5

Sub lavieestbiencompliquée()
Dim j As Long, derniereligne As Long
Dim i As Long, ligne As String
Dim re As Object
Set re = New RegExp
re.Pattern = " d |"
re.IgnoreCase = True
derniereligne = Sheets("Feuil1").Range("a65536").End(xlUp).Row
j = 1
For i = 1 To derniereligne
ligne = Sheets("Feuil1").Cells(i, 1).Value
If re.Test(ligne) = True Then
Sheets("Feuil2").Cells(j, 1).Value = Sheets("Feuil1").Cells(i,
1).Value
j = j + 1
End If
Next
End Sub


"mike" a écrit dans le message de
news:
hello à tous

je désire extraire dans un grand classeur les lignes qui finissent
après la date par 1 ou 2 ou blanc, tout en sachant que la longueur
de

la ligne est aléatoire(mais toujours après la date). Il y a 3 sortes
de

ligne (blanc à la fin, 1 à la fin, 2 à la fin)

exemple:

21.01.1939 CHRISTEN ANNE MARIE | 18.06.1973 20.07.1997 |
21.01.1939 CHRISTEN ANNE MARIE | 21.05.2003 27.05.2003 1 |
22.11.1927 DELLEY YVONNE | 23.06.2003 03.07.2003 2 | DOC M

Je recherche une formule ou une fonction qui pourrais m'extraire les
lignes seulement les 1 et les 2 dans la même feuille(macro?)

Merci à tous de votre aide!!

Mike

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com



Avatar
Mike
Bonsoir,

D'abord merci de ta réponse:

non en fait le format est du texte, il extrait d'une base de
donnée,toute la ligne suivante est sur une seule et même cellule(LA
MÊME LIGNE) (A1)

A1
21.01.1939 CHRISTEN ANNE MARIE | 18.06.1973 20.07.1997 |
21.01.1939 CHRISTEN ANNE MARIE | 21.05.2003 27.05.2003 1 |
22.11.1927 DELLEY YVONNE | 23.06.2003 03.07.2003 2 | DOC M

En fait j'ai a peut près 2 ou 300 lignes, regarde en fin de ligne(la
toute dernière date est toujours suivi ou d'un 1 ou d'un 2 puis du
caractère |, et des fois comme en 3 ème ligne de quelques caractères
style "DOC M"

j'aimerai me postionner en C1 et recopier entiérement uniquement les
lignes(format standard) qui on en fin de chaine un "1 | ou 2 |"

Même si il y a 2 formules 1 pour les 1 et une autre pour les 2 cela me
convient

style

21.01.1939 JEAN AIMARD | 21.05.2003 27.05.2003 1 |
21.01.1939 CHRISTEN ANNE MARIE | 18.06.1973 20.07.1997 | 21.01.1939
CHRISTEN ANNE MARIE | 21.05.2003 27.05.2003 1 |
21.01.1939 CHRISTEN ANNE MARIE | 21.05.2003 27.05.2003 1 | 21.01.1939
JEAN DUPONT | 21.05.2003 27.05.2003 1 |
22.11.1927 DELLEY YVONNE | 23.06.2003 03.07.2003 2 | DOC M 21.01.1939
JEAN AIMARD | 21.05.2003 27.05.2003 1 |
21.01.1939 JEAN-PAUL | 18.06.1973 20.07.1997 |
21.01.1939 JEAN DUPONT | 21.05.2003 27.05.2003 1 |

merci encore

Mike






FxM a pensé très fort :
Bonsoir Mike,

Trois questions :

- les dates constituent-elles des dates en temps que telles pour Excel ou
bien sont-elles considérées comme des caractères parmi du texte ?
(en d'autres mots, peut-on faire une recherche sur . ?)

- le caractère | est-il un caractère ou marque-t-il un saut de colonne ?
22.11.1927 DELLEY YVONNE | 23.06.2003 03.07.2003 2 | DOC M en une seule et
même ligne ou bien :
22.11.1927 DELLEY YVONNE en colonne A
23.06.2003 03.07.2003 2 en colonne B
DOC M en colonne C

- qu'entends-tu par "extraire sur la feuille feuille" ?
Cherches-tu à faire une copie (où ?). Ne penses-tu pas qu'il serait mieux de
recopier sur une autre feuille pour éviter les mélanges ?
Peut-on enlever les lignes non concernées ou souhaites-tu conserver toutes
les lignes originales.

@+
FxM





mike wrote:

hello à tous

je désire extraire dans un grand classeur les lignes qui finissent après la
date par 1 ou 2 ou blanc, tout en sachant que la longueur de la ligne est
aléatoire(mais toujours après la date). Il y a 3 sortes de ligne (blanc à
la fin, 1 à la fin, 2 à la fin)

exemple:

21.01.1939 CHRISTEN ANNE MARIE | 18.06.1973 20.07.1997 |
21.01.1939 CHRISTEN ANNE MARIE | 21.05.2003 27.05.2003 1 |
22.11.1927 DELLEY YVONNE | 23.06.2003 03.07.2003 2 | DOC M

Je recherche une formule ou une fonction qui pourrais m'extraire les lignes
seulement les 1 et les 2 dans la même feuille(macro?)

Merci à tous de votre aide!!

Mike




--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com


Avatar
Mike
Merci, je vais tester demain

encore un tout petit conseil
j'ai testé cette formule et ca marche, mais comment inclure le 2 ème
critère "2 |" dans la même formule

=DROITE(A2;CHERCHE(" 1 |";A2)-1)

si jamais....

Bonne soirée

Mike





Bonjour,

En supposant que chaque ligne d'origine égale une seule cellule de la
colonne A de la feuille "Feuil1", et que les lignes à conserver sont
copiées en colonne A de la feuille "Feuil2"

Ajouter la référence à Microsssoft VBScript Regular Expressions 5.5

Sub lavieestbiencompliquée()
Dim j As Long, derniereligne As Long
Dim i As Long, ligne As String
Dim re As Object
Set re = New RegExp
re.Pattern = " d |"
re.IgnoreCase = True
derniereligne = Sheets("Feuil1").Range("a65536").End(xlUp).Row
j = 1
For i = 1 To derniereligne
ligne = Sheets("Feuil1").Cells(i, 1).Value
If re.Test(ligne) = True Then
Sheets("Feuil2").Cells(j, 1).Value = Sheets("Feuil1").Cells(i,
1).Value
j = j + 1
End If
Next
End Sub


"mike" a écrit dans le message de
news:
hello à tous

je désire extraire dans un grand classeur les lignes qui finissent
après la date par 1 ou 2 ou blanc, tout en sachant que la longueur de
la ligne est aléatoire(mais toujours après la date). Il y a 3 sortes de
ligne (blanc à la fin, 1 à la fin, 2 à la fin)

exemple:

21.01.1939 CHRISTEN ANNE MARIE | 18.06.1973 20.07.1997 |
21.01.1939 CHRISTEN ANNE MARIE | 21.05.2003 27.05.2003 1 |
22.11.1927 DELLEY YVONNE | 23.06.2003 03.07.2003 2 | DOC M

Je recherche une formule ou une fonction qui pourrais m'extraire les
lignes seulement les 1 et les 2 dans la même feuille(macro?)

Merci à tous de votre aide!!

Mike

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com



--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com


Avatar
Daniel.M
Salut Mike,

Le pattern du code que t'as suggéré Clément ne fait pas de distinction entre les
1 ou les 2 (ou n'importe quelle chiffre unique) suivant la date. Il devrait donc
te sortir autant les 1 que les 2.

Pour extraire les lignes qui contiennent seulement le chiffre 1 ou 2
après la date et avant le séparateur vertical, remplace dans le code

re.Pattern = " d |"
par
re.Pattern = " (1|2) |"

Salutations,

Daniel M.

"Mike" wrote in message
news:
Merci, je vais tester demain

encore un tout petit conseil
j'ai testé cette formule et ca marche, mais comment inclure le 2 ème
critère "2 |" dans la même formule

=DROITE(A2;CHERCHE(" 1 |";A2)-1)

si jamais....

Bonne soirée

Mike





Bonjour,

En supposant que chaque ligne d'origine égale une seule cellule de la
colonne A de la feuille "Feuil1", et que les lignes à conserver sont
copiées en colonne A de la feuille "Feuil2"

Ajouter la référence à Microsssoft VBScript Regular Expressions 5.5

Sub lavieestbiencompliquée()
Dim j As Long, derniereligne As Long
Dim i As Long, ligne As String
Dim re As Object
Set re = New RegExp
re.Pattern = " d |"
re.IgnoreCase = True
derniereligne = Sheets("Feuil1").Range("a65536").End(xlUp).Row
j = 1
For i = 1 To derniereligne
ligne = Sheets("Feuil1").Cells(i, 1).Value
If re.Test(ligne) = True Then
Sheets("Feuil2").Cells(j, 1).Value = Sheets("Feuil1").Cells(i,
1).Value
j = j + 1
End If
Next
End Sub


"mike" a écrit dans le message de
news:
hello à tous

je désire extraire dans un grand classeur les lignes qui finissent
après la date par 1 ou 2 ou blanc, tout en sachant que la longueur de
la ligne est aléatoire(mais toujours après la date). Il y a 3 sortes de
ligne (blanc à la fin, 1 à la fin, 2 à la fin)

exemple:

21.01.1939 CHRISTEN ANNE MARIE | 18.06.1973 20.07.1997 |
21.01.1939 CHRISTEN ANNE MARIE | 21.05.2003 27.05.2003 1 |
22.11.1927 DELLEY YVONNE | 23.06.2003 03.07.2003 2 | DOC M

Je recherche une formule ou une fonction qui pourrais m'extraire les
lignes seulement les 1 et les 2 dans la même feuille(macro?)

Merci à tous de votre aide!!

Mike

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com



--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com