macro recup annee extreme fonctionne mal

Le
jipeache
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" =FAUX
avec : "MORTREUIL Julien Albert Marie, 1906-1934 $ MORTREUIL Maurice
Marie Louis, 1932-1954" j'obtiens : "1906-1934" =FAUX

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
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
JB
Le #4751581
Bonjour,

http://cjoint.com/?jkkICsSLYl

JB

On 10 sep, 10:12, jipeache
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


Philippe.R
Le #4751571
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" 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
Philippe.R
Le #4751541
Bonjour JB,
Désolé, pas vu ta réponse avant de poster
--
Avec plaisir
Philippe.R
"JB" news:
Bonjour,

http://cjoint.com/?jkkICsSLYl

JB

On 10 sep, 10:12, jipeache
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


JB
Le #4751511
Bonjour,

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

For i = 1 To Len(cell) - 3

JB
On 10 sep, 11:13, "Philippe.R"
Bonjour JB,
Désolé, pas vu ta réponse avant de poster
--
Avec plaisir
Philippe.R
"JB" Bonjour,

http://cjoint.com/?jkkICsSLYl

JB

On 10 sep, 10:12, jipeache


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 -



jipeache
Le #4751491
On 10 sep, 11:29, 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"
Merci beaucoup.

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

Publicité
Poster une réponse
Anonyme