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

macro recup annee extreme fonctionne mal

5 réponses
Avatar
jipeache
Bonjour,
(sous excel 2000).
un membre de cette assembl=E9e m'avait aimablement fourni il y a qque
temps une fonction pour extraire les ann=E9es extr=E8mes de cellules
contenant un tas d'ann=E9es au milieu de texte.

Ex : de : "ALLEAUME Auguste, 1868-1871 $ DUBOIS Hyppolite Elie
Fran=E7ois, 1913-1930 $ LEGENDRE Gaston Alexandre Rose, 1907-1912 $
LEROY Emile Alexandre, 1885-1912 $ LUNOIS Lucien Louis, 1875-1888 $
MARCEL Jean Baptiste Honor=E9, 1853-1877 $ METAYER Ren=E9 Louis Marie
Joseph, 1924-1925 $ PERCEVAULT Ernest Jean, 1874 $ ROGER L=E9on,
1879-1880" j'obtiens 1853-1930 ce qui semble correct.
(les "$" sont pour utilation interne sous un autre logiciel)
Mais avec :"VERNIETTES Lucien Pierre, 1893" j'obtiens "#valeur!" ???
avec : "POUIVET Lucien Constant Louis, 1904-1937" j'obtiens
"1904-1904" =3DFAUX
avec : "MORTREUIL Julien Albert Marie, 1906-1934 $ MORTREUIL Maurice
Marie Louis, 1932-1954" j'obtiens : "1906-1934" =3DFAUX

Comment corriger la fonction ? Une autre solution ? Merci d'avance


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

5 réponses

Avatar
JB
Bonjour,

http://cjoint.com/?jkkICsSLYl

JB

On 10 sep, 10:12, jipeache wrote:
Bonjour,
(sous excel 2000).
un membre de cette assemblée m'avait aimablement fourni il y a qque
temps une fonction pour extraire les années extrèmes de cellules
contenant un tas d'années au milieu de texte.

Ex : de : "ALLEAUME Auguste, 1868-1871 $ DUBOIS Hyppolite Elie
François, 1913-1930 $ LEGENDRE Gaston Alexandre Rose, 1907-1912 $
LEROY Emile Alexandre, 1885-1912 $ LUNOIS Lucien Louis, 1875-1888 $
MARCEL Jean Baptiste Honoré, 1853-1877 $ METAYER René Louis Marie
Joseph, 1924-1925 $ PERCEVAULT Ernest Jean, 1874 $ ROGER Léon,
1879-1880" j'obtiens 1853-1930 ce qui semble correct.
(les "$" sont pour utilation interne sous un autre logiciel)
Mais avec :"VERNIETTES Lucien Pierre, 1893" j'obtiens "#valeur!" ???
avec : "POUIVET Lucien Constant Louis, 1904-1937" j'obtiens
"1904-1904" úUX
avec : "MORTREUIL Julien Albert Marie, 1906-1934 $ MORTREUIL Maurice
Marie Louis, 1932-1954" j'obtiens : "1906-1934" úUX

Comment corriger la fonction ? Une autre solution ? Merci d'avance

Voila la fonction :
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


Avatar
Philippe.R
Bonjour,
Chez moi, la fonction, placée sans modification dans un module ordinaire du
classeur, donne les résultats attendus dans tous les cas :
1853-1930
1893-1893
1904-1937
1906-1954
Micro climat ?
--
Avec plaisir
Philippe.R
"jipeache" a écrit dans le message de
news:
Bonjour,
(sous excel 2000).
un membre de cette assemblée m'avait aimablement fourni il y a qque
temps une fonction pour extraire les années extrèmes de cellules
contenant un tas d'années au milieu de texte.

Ex : de : "ALLEAUME Auguste, 1868-1871 $ DUBOIS Hyppolite Elie
François, 1913-1930 $ LEGENDRE Gaston Alexandre Rose, 1907-1912 $
LEROY Emile Alexandre, 1885-1912 $ LUNOIS Lucien Louis, 1875-1888 $
MARCEL Jean Baptiste Honoré, 1853-1877 $ METAYER René Louis Marie
Joseph, 1924-1925 $ PERCEVAULT Ernest Jean, 1874 $ ROGER Léon,
1879-1880" j'obtiens 1853-1930 ce qui semble correct.
(les "$" sont pour utilation interne sous un autre logiciel)
Mais avec :"VERNIETTES Lucien Pierre, 1893" j'obtiens "#valeur!" ???
avec : "POUIVET Lucien Constant Louis, 1904-1937" j'obtiens
"1904-1904" úUX
avec : "MORTREUIL Julien Albert Marie, 1906-1934 $ MORTREUIL Maurice
Marie Louis, 1932-1954" j'obtiens : "1906-1934" úUX

Comment corriger la fonction ? Une autre solution ? Merci d'avance


Voila la fonction :
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
Avatar
Philippe.R
Bonjour JB,
Désolé, pas vu ta réponse avant de poster
--
Avec plaisir
Philippe.R
"JB" a écrit dans le message de
news:
Bonjour,

http://cjoint.com/?jkkICsSLYl

JB

On 10 sep, 10:12, jipeache wrote:
Bonjour,
(sous excel 2000).
un membre de cette assemblée m'avait aimablement fourni il y a qque
temps une fonction pour extraire les années extrèmes de cellules
contenant un tas d'années au milieu de texte.

Ex : de : "ALLEAUME Auguste, 1868-1871 $ DUBOIS Hyppolite Elie
François, 1913-1930 $ LEGENDRE Gaston Alexandre Rose, 1907-1912 $
LEROY Emile Alexandre, 1885-1912 $ LUNOIS Lucien Louis, 1875-1888 $
MARCEL Jean Baptiste Honoré, 1853-1877 $ METAYER René Louis Marie
Joseph, 1924-1925 $ PERCEVAULT Ernest Jean, 1874 $ ROGER Léon,
1879-1880" j'obtiens 1853-1930 ce qui semble correct.
(les "$" sont pour utilation interne sous un autre logiciel)
Mais avec :"VERNIETTES Lucien Pierre, 1893" j'obtiens "#valeur!" ???
avec : "POUIVET Lucien Constant Louis, 1904-1937" j'obtiens
"1904-1904" úUX
avec : "MORTREUIL Julien Albert Marie, 1906-1934 $ MORTREUIL Maurice
Marie Louis, 1932-1954" j'obtiens : "1906-1934" úUX

Comment corriger la fonction ? Une autre solution ? Merci d'avance

Voila la fonction :
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


Avatar
JB
Bonjour,

Le dernier caractère n'était pas testé:

For i = 1 To Len(cell) - 3

JB
On 10 sep, 11:13, "Philippe.R" <AS_rauphil_chez_wanadoo.fr> wrote:
Bonjour JB,
Désolé, pas vu ta réponse avant de poster
--
Avec plaisir
Philippe.R
"JB" a écrit dans le message denews:118941329
Bonjour,

http://cjoint.com/?jkkICsSLYl

JB

On 10 sep, 10:12, jipeache wrote:



Bonjour,
(sous excel 2000).
un membre de cette assemblée m'avait aimablement fourni il y a qque
temps une fonction pour extraire les années extrèmes de cellules
contenant un tas d'années au milieu de texte.

Ex : de : "ALLEAUME Auguste, 1868-1871 $ DUBOIS Hyppolite Elie
François, 1913-1930 $ LEGENDRE Gaston Alexandre Rose, 1907-1912 $
LEROY Emile Alexandre, 1885-1912 $ LUNOIS Lucien Louis, 1875-1888 $
MARCEL Jean Baptiste Honoré, 1853-1877 $ METAYER René Louis Marie
Joseph, 1924-1925 $ PERCEVAULT Ernest Jean, 1874 $ ROGER Léon,
1879-1880" j'obtiens 1853-1930 ce qui semble correct.
(les "$" sont pour utilation interne sous un autre logiciel)
Mais avec :"VERNIETTES Lucien Pierre, 1893" j'obtiens "#valeur!" ???
avec : "POUIVET Lucien Constant Louis, 1904-1937" j'obtiens
"1904-1904" úUX
avec : "MORTREUIL Julien Albert Marie, 1906-1934 $ MORTREUIL Maurice
Marie Louis, 1932-1954" j'obtiens : "1906-1934" úUX

Comment corriger la fonction ? Une autre solution ? Merci d'avance

Voila la fonction :
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- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Avatar
jipeache
On 10 sep, 11:29, JB wrote:
Bonjour,

Le dernier caractère n'était pas testé:

For i = 1 To Len(cell) - 3

JB
On 10 sep, 11:13, "Philippe.R" <AS_rauphil_chez_wanadoo.fr> wrote:

Merci beaucoup.

Fonctionne très bien avec la petite mofdif ! Parfait.
Et merci aussi pour la rapidité de réponse