extraire années extrèmes d'une cellule

Le
jipeache
bonjour,
dans une cellule A1, plusieurs années sont mentionnées sous la forme
"19xx" dans un texte assez long, il peut y avoir entre 2 et environ 20
années.
Je souhaite extraire et recopier en cellule B1 les années extrèmes
contenues dans A1 (l'année la plus ancienne et l'année la plus
récente) séparées par un tiret, ex : 1910-1968.
Comment faire ?
Merci d'avance
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Poulpor
Le #4321671
Bonjour Jipeache,

Je vois deux solutions pour ton problème :

- ou créer une macro sur mesure, qui n'est pas évidente
- ou une procédure simple

Je propose la procédure :

1/ Sélectionner la colonne - données / convertir et séparer en délimité avec
séparateur "-"
2/ employer les formules min et max pour obtenir les années extrèmes

Evidemment, si ce projet est à renouveler plusieurs fois, on pourra
réfléchir à la macro

En sespérant avoir fait avancé l'affaire,

Poulpor



bonjour,
dans une cellule A1, plusieurs années sont mentionnées sous la forme
"19xx" dans un texte assez long, il peut y avoir entre 2 et environ 20
années.
Je souhaite extraire et recopier en cellule B1 les années extrèmes
contenues dans A1 (l'année la plus ancienne et l'année la plus
récente) séparées par un tiret, ex : 1910-1968.
Comment faire ?
Merci d'avance




JB
Le #4321561
Bonjour,

On suppose que les années sont séparées par - :

1980-1960-1970-2004-2007-2002

Dans un module:

Function MiniMaxi(cell As Range)
temp = Split([A1], "-")
mn = 9999
mx = 0
For Each c In temp
If Val(c) < mn Then mn = Val(c)
If Val(c) > mx Then mx = Val(c)
Next c
MiniMaxi = mn & "-" & mx
End Function

Dans le tableur:

=minimaxi(A1)

JB

On 21 mar, 10:20, "jipeache"
bonjour,
dans une cellule A1, plusieurs années sont mentionnées sous la forme
"19xx" dans un texte assez long, il peut y avoir entre 2 et environ 20
années.
Je souhaite extraire et recopier en cellule B1 les années extrèmes
contenues dans A1 (l'année la plus ancienne et l'année la plus
récente) séparées par un tiret, ex : 1910-1968.
Comment faire ?
Merci d'avance


JB
Le #4321541
Version années dans texte:

xx 1960 yy 1980 zzz 2007 xxxxx 2006

Function MiniMaxi2(cell As Range)
Dim temp()
k = 0
For i = 1 To Len(cell) - 4
If Mid(cell, i, 4) Like "####" Then
k = k + 1
ReDim Preserve temp(1 To k)
temp(k) = Val(Mid(cell, i, 4))
End If
Next i
mn = 9999
mx = 0
For Each c In temp
If c < mn Then mn = c
If c > mx Then mx = c
Next c
MiniMaxi2 = mn & "-" & mx
End Function

JB


On 21 mar, 10:20, "jipeache"
bonjour,
dans une cellule A1, plusieurs années sont mentionnées sous la forme
"19xx" dans un texte assez long, il peut y avoir entre 2 et environ 20
années.
Je souhaite extraire et recopier en cellule B1 les années extrèmes
contenues dans A1 (l'année la plus ancienne et l'année la plus
récente) séparées par un tiret, ex : 1910-1968.
Comment faire ?
Merci d'avance


jipeache
Le #4321341
Version années dans texte:

xx 1960 yy 1980 zzz 2007 xxxxx 2006

Function MiniMaxi2(cell As Range)
Dim temp()
k = 0
For i = 1 To Len(cell) - 4
If Mid(cell, i, 4) Like "####" Then
k = k + 1
ReDim Preserve temp(1 To k)
temp(k) = Val(Mid(cell, i, 4))
End If
Next i
mn = 9999
mx = 0
For Each c In temp
If c < mn Then mn = c
If c > mx Then mx = c
Next c
MiniMaxi2 = mn & "-" & mx
End Function

JB

Merci beaucoup pour vos réponses.

La supposition de JB est la bonne, les dates sont mélangées dans le
texte.
Je viens de tester sur un bout du tableau, la fonction fonctionne ;-)
Merci encore.

Pour mieux expliquer l'ancien pb voici un ex de cellule à traiter :
"Armentières-sur-Avre : IPCAR Odile, élevage cunicole (1979). Arnière s-
sur-Iton : CERALIT/Fabrication de produits céramiques, SARL, extension
de l'activité (1978). Asnières : DARDEL Jean, agrandissement de la
pisciculture (1977-1978) ; GAUTIER-LEVASSEUR Fromageries, SA,
transfert (1979-1980). Avrilly : PELEY Michel, exploitation d'un
chenil de garderie (1975-1980). Bâlines : DUMORTIER Roger, création
d'un élevage porcin (1977-1978). Barquet : LAMIOT Jean, élevage
avicole (1978-1980). Barre-en-Ouche (La) : CUDORGE Rémy, renonciation
à un projet d'implantation d'un élevage de perdreaux (1979) ; STAREX,
SA, reprise d'un dépôt de liquides inflammables précédemment exploi té
par la Sté SHELL BERRE (1978). Beaubray : BACLE Robert, exploitation
d'un élevage de canards de Barbarie en remplacement de l'élevage
avicole existant (1968-1979)., etc..."

Publicité
Poster une réponse
Anonyme