bonjour,
dans une cellule A1, plusieurs ann=E9es sont mentionn=E9es sous la forme
"19xx" dans un texte assez long, il peut y avoir entre 2 et environ 20
ann=E9es.
Je souhaite extraire et recopier en cellule B1 les ann=E9es extr=E8mes
contenues dans A1 (l'ann=E9e la plus ancienne et l'ann=E9e la plus
r=E9cente) s=E9par=E9es par un tiret, ex : 1910-1968.
Comment faire ?
Merci d'avance
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Poulpor
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
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
- 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
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" wrote:
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
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" <jipea...@gmail.com> wrote:
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
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" wrote:
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
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" wrote:
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
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" <jipea...@gmail.com> wrote:
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
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" wrote:
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
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..."
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..."
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..."