extraire données spécifiques d'une cellule

9 réponses
Avatar
jip
bonjour
dans plusieurs tableaux excel j'ai des donn=C3=A9es repr=C3=A9sentant des d=
imensions =C3=A0 extraire pour les relever.
exemple :

"Trac=C3=A9 de la route nationale 12 de Paris =C3=A0 Brest =C3=A9tablie ent=
re 1745 et 1780 (voir Atlas de Trudaine). Au dos "Route royale n=C2=B012 de=
Paris =C3=A0 Brest. Premi=C3=A8re carte =E2=80=A6 Grande route =E2=80=A6".=
$ Avant 1756 $ Don Sauvage, avocat =C3=A0 Angers, 1873 $ O. Ms. papier, en=
cre noir et rouge, sans =C3=A9chelle $ 105 x 51"

o=C3=B9 je dois extraire 105 x 51

Parfois plusieurs dimensions dans la m=C3=AAme cellule, comme :

Atlas : 53 x 31,5 x 2 ; tableau : 53 x 53 ; feuille : indiqu=C3=A9 pour cha=
cune $ - "Plan d'assemblage de voiries urbaine de la commune de Routot". $ =
1- Place communale, Grande rue, place du Bourg ; 203 x 61,5 $ 2- Rue de la =
Mailleraye ; 170,5 x 30,1 $ 3- Rue de Caudebec ; 125,5 x 30,1 $ 4- Rue de R=
ougemontiers ; 149,2 x 30,1 $ 5- Rue de Hauville ; 163,5 x 30,1 $ 6- Rue du=
Clos Beaulieu ; 92,5 x 30,1 $ 7- Rue de La Mare Besnard ; 168 x 30,1 $ 8- =
Rue Taupin ; 51 x 30,1 $ 9- Chemin du Foss=C3=A9 Aubr=C3=A9e ; 161 x 30,1 $=
10- Ancien chemin aux B=C5=93ufs ; 87 x 30,1 $ 11- Rue Brasseresse ; 154 x=
30,10 $ - L=C3=A9gende des alignements, 4 pages recto-verso plus 1 page ; =
52 x 30,1

Parfois la mention cm figure apr=C3=A8s les chiffres :=20

Carte du d=C3=A9partement de l'Eure d'apr=C3=A8s l'ordre de Mr Rolland de C=
hambaudoin pr=C3=A9fet. $ par Jainin $ 1808 $ grav=C3=A9e, limites en rouge=
. $ =C3=A9ch. en toises $ 45 x 35 cm

Comment faire pour avoir ces donn=C3=A9es facilement ?
Une id=C3=A9e ?
Merci d'avance
Cordialement.

9 réponses

Avatar
News.aioe.org
Bonjour,
Afin de bien illustrer ce que tu veux faire, copie ce qui suit dans une
cellule d'une feuille de calcul et extrait ce que tu veux obtenir comme
résultat et la disposition de ces données que tu veux avoir dans les
cellules adjacentes. Utilise l'adresse "Cjoint.com" pour publier ce classeur
et retourne-nous l'adresse ici. Tu as plus de chances d'avoir des réponses!
'--------------------------------------
Atlas : 53 x 31,5 x 2 ; tableau : 53 x 53 ; feuille : indiqué pour chacune
$ - "Plan d'assemblage de voiries urbaine de la commune de Routot". $ 1-
Place communale, Grande rue, place du Bourg ; 203 x 61,5 $ 2- Rue de la
Mailleraye ; 170,5 x 30,1 $ 3- Rue de Caudebec ; 125,5 x 30,1 $ 4- Rue de
Rougemontiers ; 149,2 x 30,1 $ 5- Rue de Hauville ; 163,5 x 30,1 $ 6- Rue du
Clos Beaulieu ; 92,5 x 30,1 $ 7- Rue de La Mare Besnard ; 168 x 30,1 $ 8-
Rue Taupin ; 51 x 30,1 $ 9- Chemin du Fossé Aubrée ; 161 x 30,1 $ 10- Ancien
chemin aux Bœufs ; 87 x 30,1 $ 11- Rue Brasseresse ; 154 x 30,10 $ - Légende
des alignements, 4 pages recto-verso plus 1 page ; 52 x 30,1
'--------------------------------------
MichD
Avatar
isabelle
bonjour,
pour une première recherche tu pourrais utiliser cette formule en cellule B2 et
à recopier vers la droite,
=STXT($A2;CHERCHE("§";SUBSTITUE($A2;"x";"§";COLONNE()-1))-3;9)
mais ce n'est pas parfait, il faudra adapter avec les vrai données.
isabelle
Le 2017-01-05 à 10:43, jip a écrit :
bonjour dans plusieurs tableaux excel j'ai des données représentant des
dimensions à extraire pour les relever. exemple :
"Tracé de la route nationale 12 de Paris à Brest établie entre 1745 et 1780
(voir Atlas de Trudaine). Au dos "Route royale n°12 de Paris à Brest.
Première carte … Grande route …". $ Avant 1756 $ Don Sauvage, avocat à
Angers, 1873 $ O. Ms. papier, encre noir et rouge, sans échelle $ 105 x 51"
où je dois extraire 105 x 51
Parfois plusieurs dimensions dans la même cellule, comme :
Atlas : 53 x 31,5 x 2 ; tableau : 53 x 53 ; feuille : indiqué pour chacune $
- "Plan d'assemblage de voiries urbaine de la commune de Routot". $ 1- Place
communale, Grande rue, place du Bourg ; 203 x 61,5 $ 2- Rue de la Mailleraye
; 170,5 x 30,1 $ 3- Rue de Caudebec ; 125,5 x 30,1 $ 4- Rue de Rougemontiers
; 149,2 x 30,1 $ 5- Rue de Hauville ; 163,5 x 30,1 $ 6- Rue du Clos Beaulieu
; 92,5 x 30,1 $ 7- Rue de La Mare Besnard ; 168 x 30,1 $ 8- Rue Taupin ; 51 x
30,1 $ 9- Chemin du Fossé Aubrée ; 161 x 30,1 $ 10- Ancien chemin aux Bœufs ;
87 x 30,1 $ 11- Rue Brasseresse ; 154 x 30,10 $ - Légende des alignements, 4
pages recto-verso plus 1 page ; 52 x 30,1
Parfois la mention cm figure après les chiffres :
Carte du département de l'Eure d'après l'ordre de Mr Rolland de Chambaudoin
préfet. $ par Jainin $ 1808 $ gravée, limites en rouge. $ éch. en toises $ 45
x 35 cm
Comment faire pour avoir ces données facilement ? Une idée ? Merci d'avance
Cordialement.
Avatar
jip
à recopier vers la droite,
=STXT($A2;CHERCHE("§";SUBSTITUE($A2;"x";"§";COLONNE()-1))-3;9 )
mais ce n'est pas parfait, il faudra adapter avec les vrai données.

je vais tester, merci.
Sinon voici le lien pour voir un exemple.
http://www.cjoint.com/c/GAgjfbSEPqR
cordialement
Avatar
Jacquouille
Bonjour
Vu la densité de matière dans une seule cellule, je serais tenté d'orienter
mes recherches en positionnant tous les "x", puis extraire 3 ou 4 caractères
de part et d'autre de chaque x.
Pour ce faire, il "suffit" de chercher la position du premier "x", puis, à
partir de celui-ci, chercher le deuxième, .....
Mais je crains que tu aies une formule au moins aussi épaisse que les
données.
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"jip" a écrit dans le message de groupe de discussion :
à recopier vers la droite,
=STXT($A2;CHERCHE("§";SUBSTITUE($A2;"x";"§";COLONNE()-1))-3;9)
mais ce n'est pas parfait, il faudra adapter avec les vrai données.

je vais tester, merci.
Sinon voici le lien pour voir un exemple.
http://www.cjoint.com/c/GAgjfbSEPqR
cordialement
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
News.aioe.org
Une façon d'extraire ce que tu cherches avec une macro :
ton fichier incluant la macro : http://www.cjoint.com/c/GAgnlrvF8Yi
MichD
Avatar
JièL
Si je puis me permettre... pour éviter "in aux Bœu" en N2 il serait
peut-être souhaitable de rechercher non pas un "x" mais " x " (espace x
espace)... en espérant que le x soit toujours suivi et précédé d'un espace.
--
JièL xxx
Le 06/01/2017 à 14:12, News.aioe.org a écrit :
Une façon d'extraire ce que tu cherches avec une macro :
ton fichier incluant la macro : http://www.cjoint.com/c/GAgnlrvF8Yi
MichD
Avatar
Jacquouille
Re
le premier "x" est le 140 ème caractère.
Pour plus de facilités, j'ai ajouté une ligne, dans laquelle je cherche la
position des "x", soit la ligne 7
=STXT(A3;CHERCHE("x";$A$3;1)-3;3)&STXT($A$3;CHERCHE("x";$A$3;1);6) ---->donne
53x31,5
MAIS, il faudra à chaque réponse, jongler avec le nb de car à prendre à
partir de x ( ou avant).
http://www.cjoint.com/c/GAgnAIZXN1Y
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"Jacquouille" a écrit dans le message de groupe de discussion :
o4nuoo$1ekj$
Bonjour
Vu la densité de matière dans une seule cellule, je serais tenté d'orienter
mes recherches en positionnant tous les "x", puis extraire 3 ou 4 caractères
de part et d'autre de chaque x.
Pour ce faire, il "suffit" de chercher la position du premier "x", puis, à
partir de celui-ci, chercher le deuxième, .....
Mais je crains que tu aies une formule au moins aussi épaisse que les
données.
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"jip" a écrit dans le message de groupe de discussion :
à recopier vers la droite,
=STXT($A2;CHERCHE("§";SUBSTITUE($A2;"x";"§";COLONNE()-1))-3;9)
mais ce n'est pas parfait, il faudra adapter avec les vrai données.

je vais tester, merci.
Sinon voici le lien pour voir un exemple.
http://www.cjoint.com/c/GAgjfbSEPqR
cordialement
---
L'absence de virus dans ce courrier électronique a été vérifiée par le
logiciel antivirus Avast.
https://www.avast.com/antivirus
---
L'absence de virus dans ce courrier électronique a été vérifiée par le logiciel antivirus Avast.
https://www.avast.com/antivirus
Avatar
News.aioe.org
Bien vu! Merci.
La nouvelle procédure irait comme suit :
'-----------------------------------------------------------------------------
Sub Extraire()
Dim X As Long, P As Long
Dim Tblo(), F As String, Rg As Range
Dim C As Range, T As String, A As Long
Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheets("Feuil2") 'Nom de l'onglet de la feuille de calcul
'Adapter la plage selon ton application
'A1 = ligne de départ de la colonne A jusqu'à la derniere cellule
Set Rg = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
End With
For Each C In Rg
With C
T = .Value
Do
P = P + 1
P = InStr(P, T, " X", vbTextCompare) 'Légère modification à
cette ligne
If P <> 0 Then
F = Trim(Mid(T, P - 5, 12)) 'Légère modification à cette
ligne
If Not IsNumeric(Left(F, 1)) Then
F = Trim(Right(F, Len(F) - 1))
End If
If Not IsNumeric(Right(F, 1)) Then
F = Trim(Left(F, Len(F) - 1))
End If
A = A + 1
C.Offset(, A) = F
Else
A = 0
Exit Do
End If
Loop
End With
Next
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
'-----------------------------------------------------------------------------
MichD
Avatar
La Norme Fran
On Thu, 5 Jan 2017 07:43:39 -0800 (PST), jip
wrote:
bonjour
dans plusieurs tableaux excel j'ai des données représentant des dimensions à extraire pour les relever.
exemple :
"Tracé de la route nationale 12 de Paris à Brest établie entre 1745 et 1780 (voir Atlas de Trudaine). Au dos "Route royale n°12 de Paris à Brest. Première carte … Grande route …". $ Avant 1756 $ Don Sauvage, avocat à Angers, 1873 $ O. Ms. papier, encre noir et rouge, sans échelle $ 105 x 51"
où je dois extraire 105 x 51
Parfois plusieurs dimensions dans la même cellule, comme :
Atlas : 53 x 31,5 x 2 ; tableau : 53 x 53 ; feuille : indiqué pour chacune $ - "Plan d'assemblage de voiries urbaine de la commune de Routot". $ 1- Place communale, Grande rue, place du Bourg ; 203 x 61,5 $ 2- Rue de la Mailleraye ; 170,5 x 30,1 $ 3- Rue de Caudebec ; 125,5 x 30,1 $ 4- Rue de Rougemontiers ; 149,2 x 30,1 $ 5- Rue

de Hauville ; 163,5 x 30,1 $ 6- Rue du Clos Beaulieu ; 92,5 x 30,1 $ 7- Rue de La Mare Besnard ; 168 x 30,1 $ 8- Rue Taupin ; 51 x 30,1 $ 9- Chemin du Fossé Aubrée ; 161 x 30,1 $ 10- Ancien chemin aux Bœufs ; 87 x 30,1 $ 11- Rue Brasseresse ; 154 x 30,10 $ - Légende des alignements, 4 pages recto-verso plus 1 page ; 52 x 30,1
Parfois la mention cm figure après les chiffres :
Carte du département de l'Eure d'après l'ordre de Mr Rolland de Chambaudoin préfet. $ par Jainin $ 1808 $ gravée, limites en rouge. $ éch. en toises $ 45 x 35 cm
Comment faire pour avoir ces données facilement ?
Une idée ?
Merci d'avance
Cordialement.

Si tu as Excel 2013, tu peux utiliser la nouvelle fonction
d'apprentissage "Remplissage instantané"
https://www.youtube.com/watch?v=FtNSfMiccpo
http://nicole-leveque.over-blog.com/article-excel-2013-nouveautes-le-remplissage-instantane-117460060.html
Il suffit d'activer la fonction, de faire toi même les premières
lignes et il complête de lui même.
Quand les données ne sont pas homogène, il va se tromper et quand tu
rectifiera son erreur, il corrigera le reste.
Avantage, pas besoin de coder ou faire des fonction parfois un peu
prise de tête.
Inconvénient, si tu modifies une données d'origine par la suite, il ne
fera rien. Il faudra relancer la fonction.
Si les lignes sont trop longues et complexe, rien n'empêche de
convertir en colonne avec $ comme séparateur, puis il detectera les
ABC x DE cm ou bien les ABC x DE
Si tu n'as pas 2013, et que le fichier excel ne fait pas plusieurs
dizaine de Mo, tu peux toujours les fournir ici ou trouver un Excel
2013
--
« le politiquement correct ne proclame pas la tolérance ; il ne fait qu'organiser la haine. » (Jacques Barzun)
C'est une doctrine obligatoire, qui n'est en réalité que l'expression la plus autoritaire du conformisme