Comment faire pour avoir le maximum ou le minimum d'1 série de lettres ou
mots dans une collonne
ex : série = PA, PB, PC, PD, PE
Min (série) = "PA"
Max (série) = "PE"
Pas sûr de comprendre ! Est-ce que tu veux obtenir la première valeur et la dernière de ta série ?
Serge
"bsh77" a écrit dans le message de news: brt8kg$mrp$
Bonsoir à toutes et à tous,
Comment faire pour avoir le maximum ou le minimum d'1 série de lettres ou mots dans une collonne ex : série = PA, PB, PC, PD, PE Min (série) = "PA" Max (série) = "PE"
Merci pour votre aide
BS
Bonsoir,
Pas sûr de comprendre !
Est-ce que tu veux obtenir la première valeur
et la dernière de ta série ?
Serge
"bsh77" <bang-son.huynh@wanadoo.fr> a écrit dans le message de news:
brt8kg$mrp$1@news-reader4.wanadoo.fr...
Bonsoir à toutes et à tous,
Comment faire pour avoir le maximum ou le minimum d'1 série de lettres ou
mots dans une collonne
ex : série = PA, PB, PC, PD, PE
Min (série) = "PA"
Max (série) = "PE"
Pas sûr de comprendre ! Est-ce que tu veux obtenir la première valeur et la dernière de ta série ?
Serge
"bsh77" a écrit dans le message de news: brt8kg$mrp$
Bonsoir à toutes et à tous,
Comment faire pour avoir le maximum ou le minimum d'1 série de lettres ou mots dans une collonne ex : série = PA, PB, PC, PD, PE Min (série) = "PA" Max (série) = "PE"
Merci pour votre aide
BS
bsh77
En fait, c'est pour obtenir l'équivalence de la fonction Min ou Max dans Excel pour les caractères. Pour répondre à ta question, ma série n'est pas forcément classée dans l'ordre. A+ BS
"garnote" a écrit dans le message de news: AIpEb.11091$
Bonsoir,
Pas sûr de comprendre ! Est-ce que tu veux obtenir la première valeur et la dernière de ta série ?
Serge
"bsh77" a écrit dans le message de news: brt8kg$mrp$
Bonsoir à toutes et à tous,
Comment faire pour avoir le maximum ou le minimum d'1 série de lettres ou
mots dans une collonne ex : série = PA, PB, PC, PD, PE Min (série) = "PA" Max (série) = "PE"
Merci pour votre aide
BS
En fait, c'est pour obtenir l'équivalence de la fonction Min ou Max dans
Excel pour les caractères.
Pour répondre à ta question, ma série n'est pas forcément classée dans
l'ordre.
A+
BS
"garnote" <rien@absent.net> a écrit dans le message de news:
AIpEb.11091$FS2.233@charlie.risq.qc.ca...
Bonsoir,
Pas sûr de comprendre !
Est-ce que tu veux obtenir la première valeur
et la dernière de ta série ?
Serge
"bsh77" <bang-son.huynh@wanadoo.fr> a écrit dans le message de news:
brt8kg$mrp$1@news-reader4.wanadoo.fr...
Bonsoir à toutes et à tous,
Comment faire pour avoir le maximum ou le minimum d'1 série de lettres
ou
mots dans une collonne
ex : série = PA, PB, PC, PD, PE
Min (série) = "PA"
Max (série) = "PE"
En fait, c'est pour obtenir l'équivalence de la fonction Min ou Max dans Excel pour les caractères. Pour répondre à ta question, ma série n'est pas forcément classée dans l'ordre. A+ BS
"garnote" a écrit dans le message de news: AIpEb.11091$
Bonsoir,
Pas sûr de comprendre ! Est-ce que tu veux obtenir la première valeur et la dernière de ta série ?
Serge
"bsh77" a écrit dans le message de news: brt8kg$mrp$
Bonsoir à toutes et à tous,
Comment faire pour avoir le maximum ou le minimum d'1 série de lettres ou
mots dans une collonne ex : série = PA, PB, PC, PD, PE Min (série) = "PA" Max (série) = "PE"
Merci pour votre aide
BS
j
si les données sont dans A1:A10 et sont constituées de mots de 2 lettres : =INDEX(A1:A10;EQUIV(MAX(1000*CODE(A1:A10)+CODE(DROITE(A1:A10;1)));1000*CODE( A1:A10)+CODE(DROITE(A1:A10;1));0)) formule matricielle à valider par CTRL+MAJ+ENTREE (y a surement plus simple...) --
http://jacxl.free.fr/
"bsh77" a écrit dans le message de news: brt8kg$mrp$
Bonsoir à toutes et à tous,
Comment faire pour avoir le maximum ou le minimum d'1 série de lettres ou mots dans une collonne ex : série = PA, PB, PC, PD, PE Min (série) = "PA" Max (série) = "PE"
Merci pour votre aide
BS
si les données sont dans A1:A10 et sont constituées de mots de 2 lettres :
=INDEX(A1:A10;EQUIV(MAX(1000*CODE(A1:A10)+CODE(DROITE(A1:A10;1)));1000*CODE(
A1:A10)+CODE(DROITE(A1:A10;1));0))
formule matricielle à valider par CTRL+MAJ+ENTREE
(y a surement plus simple...)
--
J@C
http://jacxl.free.fr/
"bsh77" <bang-son.huynh@wanadoo.fr> a écrit dans le message de news:
brt8kg$mrp$1@news-reader4.wanadoo.fr...
Bonsoir à toutes et à tous,
Comment faire pour avoir le maximum ou le minimum d'1 série de lettres ou
mots dans une collonne
ex : série = PA, PB, PC, PD, PE
Min (série) = "PA"
Max (série) = "PE"
si les données sont dans A1:A10 et sont constituées de mots de 2 lettres : =INDEX(A1:A10;EQUIV(MAX(1000*CODE(A1:A10)+CODE(DROITE(A1:A10;1)));1000*CODE( A1:A10)+CODE(DROITE(A1:A10;1));0)) formule matricielle à valider par CTRL+MAJ+ENTREE (y a surement plus simple...) --
http://jacxl.free.fr/
"bsh77" a écrit dans le message de news: brt8kg$mrp$
Bonsoir à toutes et à tous,
Comment faire pour avoir le maximum ou le minimum d'1 série de lettres ou mots dans une collonne ex : série = PA, PB, PC, PD, PE Min (série) = "PA" Max (série) = "PE"
Merci pour votre aide
BS
AV
Pour les 5 premiers caractères..... On peut allonger encore ;-) Matricielle =INDEX(A1:A10;EQUIV(MAX(CODE(STXT(MINUSCULE(A1:A10&REPT(0;5^5));1;1))+CODE(STXT( MINUSCULE(A1:A10&REPT(0;5^5));2;1))+CODE(STXT(MINUSCULE(A1:A10&REPT(0;5^5));3;1) )+CODE(STXT(MINUSCULE(A1:A10&REPT(0;5^5));4;1))+CODE(STXT(MINUSCULE(A1:A10&REPT( 0;5^5));5;1)));CODE(STXT(MINUSCULE(A1:A10&REPT(0;5^5));1;1))+CODE(STXT(MINUSCULE (A1:A10&REPT(0;5^5));2;1))+CODE(STXT(MINUSCULE(A1:A10&REPT(0;5^5));3;1))+CODE(ST XT(MINUSCULE(A1:A10&REPT(0;5^5));4;1))+CODE(STXT(MINUSCULE(A1:A10&REPT(0;5^5));5 ;1));0))
PS : pour le MIN, remplacer REPT(0;5^5) par REPT("]";5^5)
Bofff AV
Pour les 5 premiers caractères.....
On peut allonger encore ;-)
Matricielle
=INDEX(A1:A10;EQUIV(MAX(CODE(STXT(MINUSCULE(A1:A10&REPT(0;5^5));1;1))+CODE(STXT(
MINUSCULE(A1:A10&REPT(0;5^5));2;1))+CODE(STXT(MINUSCULE(A1:A10&REPT(0;5^5));3;1)
)+CODE(STXT(MINUSCULE(A1:A10&REPT(0;5^5));4;1))+CODE(STXT(MINUSCULE(A1:A10&REPT(
0;5^5));5;1)));CODE(STXT(MINUSCULE(A1:A10&REPT(0;5^5));1;1))+CODE(STXT(MINUSCULE
(A1:A10&REPT(0;5^5));2;1))+CODE(STXT(MINUSCULE(A1:A10&REPT(0;5^5));3;1))+CODE(ST
XT(MINUSCULE(A1:A10&REPT(0;5^5));4;1))+CODE(STXT(MINUSCULE(A1:A10&REPT(0;5^5));5
;1));0))
PS : pour le MIN, remplacer REPT(0;5^5) par REPT("]";5^5)
Pour les 5 premiers caractères..... On peut allonger encore ;-) Matricielle =INDEX(A1:A10;EQUIV(MAX(CODE(STXT(MINUSCULE(A1:A10&REPT(0;5^5));1;1))+CODE(STXT( MINUSCULE(A1:A10&REPT(0;5^5));2;1))+CODE(STXT(MINUSCULE(A1:A10&REPT(0;5^5));3;1) )+CODE(STXT(MINUSCULE(A1:A10&REPT(0;5^5));4;1))+CODE(STXT(MINUSCULE(A1:A10&REPT( 0;5^5));5;1)));CODE(STXT(MINUSCULE(A1:A10&REPT(0;5^5));1;1))+CODE(STXT(MINUSCULE (A1:A10&REPT(0;5^5));2;1))+CODE(STXT(MINUSCULE(A1:A10&REPT(0;5^5));3;1))+CODE(ST XT(MINUSCULE(A1:A10&REPT(0;5^5));4;1))+CODE(STXT(MINUSCULE(A1:A10&REPT(0;5^5));5 ;1));0))
PS : pour le MIN, remplacer REPT(0;5^5) par REPT("]";5^5)
Bofff AV
Daniel.M
Salut,
Si tu as le fichier MOREFUN.XLL de Laurent Longre disponible chez http://longre.free.fr (et si tu ne l'as pas, c'est une bonne occasion de te le procurer!) tu utilises:
=INDEX(TRIV(Plage);1) et =INDEX(TRIV(Plage;;1);1)
Salutations,
Daniel M.
"bsh77" wrote in message news:brt8kg$mrp$
Bonsoir à toutes et à tous,
Comment faire pour avoir le maximum ou le minimum d'1 série de lettres ou mots dans une collonne ex : série = PA, PB, PC, PD, PE Min (série) = "PA" Max (série) = "PE"
Merci pour votre aide
BS
Salut,
Si tu as le fichier MOREFUN.XLL de Laurent Longre disponible chez
http://longre.free.fr
(et si tu ne l'as pas, c'est une bonne occasion de te le procurer!)
tu utilises:
=INDEX(TRIV(Plage);1)
et
=INDEX(TRIV(Plage;;1);1)
Salutations,
Daniel M.
"bsh77" <bang-son.huynh@wanadoo.fr> wrote in message
news:brt8kg$mrp$1@news-reader4.wanadoo.fr...
Bonsoir à toutes et à tous,
Comment faire pour avoir le maximum ou le minimum d'1 série de lettres ou
mots dans une collonne
ex : série = PA, PB, PC, PD, PE
Min (série) = "PA"
Max (série) = "PE"
Si tu as le fichier MOREFUN.XLL de Laurent Longre disponible chez http://longre.free.fr (et si tu ne l'as pas, c'est une bonne occasion de te le procurer!) tu utilises:
=INDEX(TRIV(Plage);1) et =INDEX(TRIV(Plage;;1);1)
Salutations,
Daniel M.
"bsh77" wrote in message news:brt8kg$mrp$
Bonsoir à toutes et à tous,
Comment faire pour avoir le maximum ou le minimum d'1 série de lettres ou mots dans une collonne ex : série = PA, PB, PC, PD, PE Min (série) = "PA" Max (série) = "PE"
Merci pour votre aide
BS
Daniel.M
Salut,
Sans MOREFUN.XLL, il y a la matricielle suivante (max 5 lettres, sinon faut ajuster les constantes matricielles):
Les matrices horizontales peuvent varier selon les configurations du OS. Ainsi les "." peuvent devoir y être remplacés par des "," ou des ""
Salutations,
Daniel M.
"Daniel.M" wrote in message news:%
Salut,
Si tu as le fichier MOREFUN.XLL de Laurent Longre disponible chez http://longre.free.fr (et si tu ne l'as pas, c'est une bonne occasion de te le procurer!) tu utilises:
=INDEX(TRIV(Plage);1) et =INDEX(TRIV(Plage;;1);1)
Salutations,
Daniel M.
"bsh77" wrote in message news:brt8kg$mrp$
Bonsoir à toutes et à tous,
Comment faire pour avoir le maximum ou le minimum d'1 série de lettres ou mots dans une collonne ex : série = PA, PB, PC, PD, PE Min (série) = "PA" Max (série) = "PE"
Merci pour votre aide
BS
Salut,
Sans MOREFUN.XLL, il y a la matricielle suivante (max 5 lettres, sinon faut
ajuster les constantes matricielles):
Les matrices horizontales peuvent varier selon les configurations du OS. Ainsi
les "." peuvent devoir y être remplacés par des "," ou des ""
Salutations,
Daniel M.
"Daniel.M" <prenom.maher@bigfoot.inutil.com> wrote in message
news:%23S7t1okxDHA.2620@TK2MSFTNGP09.phx.gbl...
Salut,
Si tu as le fichier MOREFUN.XLL de Laurent Longre disponible chez
http://longre.free.fr
(et si tu ne l'as pas, c'est une bonne occasion de te le procurer!)
tu utilises:
=INDEX(TRIV(Plage);1)
et
=INDEX(TRIV(Plage;;1);1)
Salutations,
Daniel M.
"bsh77" <bang-son.huynh@wanadoo.fr> wrote in message
news:brt8kg$mrp$1@news-reader4.wanadoo.fr...
Bonsoir à toutes et à tous,
Comment faire pour avoir le maximum ou le minimum d'1 série de lettres ou
mots dans une collonne
ex : série = PA, PB, PC, PD, PE
Min (série) = "PA"
Max (série) = "PE"
Les matrices horizontales peuvent varier selon les configurations du OS. Ainsi les "." peuvent devoir y être remplacés par des "," ou des ""
Salutations,
Daniel M.
"Daniel.M" wrote in message news:%
Salut,
Si tu as le fichier MOREFUN.XLL de Laurent Longre disponible chez http://longre.free.fr (et si tu ne l'as pas, c'est une bonne occasion de te le procurer!) tu utilises:
=INDEX(TRIV(Plage);1) et =INDEX(TRIV(Plage;;1);1)
Salutations,
Daniel M.
"bsh77" wrote in message news:brt8kg$mrp$
Bonsoir à toutes et à tous,
Comment faire pour avoir le maximum ou le minimum d'1 série de lettres ou mots dans une collonne ex : série = PA, PB, PC, PD, PE Min (série) = "PA" Max (série) = "PE"
Merci pour votre aide
BS
AV
Salut Daniel,
Si je puis me permettre un petit correctif pour un fonctionnement indépendant de la casse : =INDEX(A1:A10;EQUIV(MAX(PRODUITMAT(CODE(STXT(MINUSCULE(A1:A10)&" ";{12345};1))*32^{4321 };1+0*{1;2;3;4;5}));PRODUITMAT(CODE(STXT(MINUSCUL E(A1:A10)&" ";{12345};1))*32^{4321 };1+0*{1;2;3;4;5});0))
AV
Salut Daniel,
Si je puis me permettre un petit correctif pour un fonctionnement indépendant de
la casse :
=INDEX(A1:A10;EQUIV(MAX(PRODUITMAT(CODE(STXT(MINUSCULE(A1:A10)&"
";{12345};1))*32^{4321 };1+0*{1;2;3;4;5}));PRODUITMAT(CODE(STXT(MINUSCUL
E(A1:A10)&" ";{12345};1))*32^{4321 };1+0*{1;2;3;4;5});0))
Si je puis me permettre un petit correctif pour un fonctionnement indépendant de la casse : =INDEX(A1:A10;EQUIV(MAX(PRODUITMAT(CODE(STXT(MINUSCULE(A1:A10)&" ";{12345};1))*32^{4321 };1+0*{1;2;3;4;5}));PRODUITMAT(CODE(STXT(MINUSCUL E(A1:A10)&" ";{12345};1))*32^{4321 };1+0*{1;2;3;4;5});0))
Voilà! Ne reste plus qu'à recevoir les remerciements enthousiastes de bsh77 pour
nos efforts. :-))
M'est avis que c'est pas gagné ! ;-)
Comme le Père Noël est généreux et pour le fun : Limité à 9 caractères (allez donc savoir pourquoi !! ;)) :
================================ Sub zzzzzzzzzzzz() On Error Resume Next plg = Selection.Address maxCar = Evaluate("max(len(" & plg & ":" & plg & "))") For i = 1 To maxCar mat1 = mat1 & i & "," mat3 = mat3 & "1" & ";" Next For i = maxCar - 1 To 1 Step -1 mat2 = mat2 & i & "," Next mat1 = "{" & Left(mat1, Len(mat1) - 1) & "}" mat2 = "{" & Left(mat2, Len(mat2) - 1) & ",0}" mat3 = "{" & Left(mat3, Len(mat3) - 1) & "}" MsgBox Evaluate("index(" & plg & ",match(max(mmult(code(mid(lower(" & plg & ")&rept(0," & maxCar & ")," & mat1 & ",1))*10^" & mat2 & "," & mat3 & ")),mmult(code(mid(lower(" & plg & ")&rept(0," & maxCar & ")," & mat1 & ",1))*10^" & mat2 & "," & mat3 & "),0))") End Sub
================= Une fonction perso (pas de limitation)
Option Compare Text Function MAX_ALPHA(Plage As Range) For Each C In Plage For i = 1 To Len(C) x = x & Format(Asc(Mid(LCase(C), i, 1)), "000") Next If x > z Then z = x: z = z Lg = C.Row: Cl = C.Column End If x = "" Next On Error Resume Next MAX_ALPHA = Cells(Lg, Cl).Value End Function
Pour la MIN_ALPHA, je laisse "bsh77" faire un petit effort ! ;-)
PS : Pour mon Père Noël City Bank : 111 111 111
AV
Voilà! Ne reste plus qu'à recevoir les remerciements enthousiastes de bsh77
pour
nos efforts. :-))
M'est avis que c'est pas gagné ! ;-)
Comme le Père Noël est généreux et pour le fun :
Limité à 9 caractères (allez donc savoir pourquoi !! ;)) :
================================ Sub zzzzzzzzzzzz()
On Error Resume Next
plg = Selection.Address
maxCar = Evaluate("max(len(" & plg & ":" & plg & "))")
For i = 1 To maxCar
mat1 = mat1 & i & ","
mat3 = mat3 & "1" & ";"
Next
For i = maxCar - 1 To 1 Step -1
mat2 = mat2 & i & ","
Next
mat1 = "{" & Left(mat1, Len(mat1) - 1) & "}"
mat2 = "{" & Left(mat2, Len(mat2) - 1) & ",0}"
mat3 = "{" & Left(mat3, Len(mat3) - 1) & "}"
MsgBox Evaluate("index(" & plg & ",match(max(mmult(code(mid(lower(" & plg &
")&rept(0," & maxCar & ")," & mat1 & ",1))*10^" & mat2 & "," & mat3 &
")),mmult(code(mid(lower(" & plg & ")&rept(0," & maxCar & ")," & mat1 &
",1))*10^" & mat2 & "," & mat3 & "),0))")
End Sub
=================
Une fonction perso (pas de limitation)
Option Compare Text
Function MAX_ALPHA(Plage As Range)
For Each C In Plage
For i = 1 To Len(C)
x = x & Format(Asc(Mid(LCase(C), i, 1)), "000")
Next
If x > z Then
z = x: z = z
Lg = C.Row: Cl = C.Column
End If
x = ""
Next
On Error Resume Next
MAX_ALPHA = Cells(Lg, Cl).Value
End Function
Pour la MIN_ALPHA, je laisse "bsh77" faire un petit effort !
;-)
Voilà! Ne reste plus qu'à recevoir les remerciements enthousiastes de bsh77 pour
nos efforts. :-))
M'est avis que c'est pas gagné ! ;-)
Comme le Père Noël est généreux et pour le fun : Limité à 9 caractères (allez donc savoir pourquoi !! ;)) :
================================ Sub zzzzzzzzzzzz() On Error Resume Next plg = Selection.Address maxCar = Evaluate("max(len(" & plg & ":" & plg & "))") For i = 1 To maxCar mat1 = mat1 & i & "," mat3 = mat3 & "1" & ";" Next For i = maxCar - 1 To 1 Step -1 mat2 = mat2 & i & "," Next mat1 = "{" & Left(mat1, Len(mat1) - 1) & "}" mat2 = "{" & Left(mat2, Len(mat2) - 1) & ",0}" mat3 = "{" & Left(mat3, Len(mat3) - 1) & "}" MsgBox Evaluate("index(" & plg & ",match(max(mmult(code(mid(lower(" & plg & ")&rept(0," & maxCar & ")," & mat1 & ",1))*10^" & mat2 & "," & mat3 & ")),mmult(code(mid(lower(" & plg & ")&rept(0," & maxCar & ")," & mat1 & ",1))*10^" & mat2 & "," & mat3 & "),0))") End Sub
================= Une fonction perso (pas de limitation)
Option Compare Text Function MAX_ALPHA(Plage As Range) For Each C In Plage For i = 1 To Len(C) x = x & Format(Asc(Mid(LCase(C), i, 1)), "000") Next If x > z Then z = x: z = z Lg = C.Row: Cl = C.Column End If x = "" Next On Error Resume Next MAX_ALPHA = Cells(Lg, Cl).Value End Function
Pour la MIN_ALPHA, je laisse "bsh77" faire un petit effort ! ;-)
PS : Pour mon Père Noël City Bank : 111 111 111
AV
Daniel.M
Salut AV,
C'est le père Noël qui doit être content. On continue ... même si on semble les seuls à avoir du fun. :-)
2.Dans la formule, avec 10^, le programme sortira PZ avant QA. Le coefficient (10) n'est pas assez élevé. Il faut au moins un _coefficient_ de 2^maxcar Avec 5 lettres max, j'avais mis 32 (2^5). Si tu as un max de 9 lettres, ça devrait être 2^9 Ce coefficient 512 est lui même resoumis à l'exponentiation.
Donc, ça me donne:
Sub azz() On Error Resume Next plg = Selection.Address maxcar = Evaluate("max(len(" & plg & "))") For i = 1 To maxcar mat1 = mat1 & i & "," mat2 = mat2 & maxcar - i & "," Next mat3 = Application.Rept("1;", maxcar)
Pour la fonction perso, j'ai adapté pour gérer les valeurs d'erreurs dans la plage:
Function Max_Alpha(Plage As Range) Dim C As Range, x$, z$, maVal As Variant, i% For Each C In Plage If Not IsError(C) Then x = "" For i = 1 To Len(C) x = x & Format(Asc(LCase(Mid(C, i, 1))), "000") Next If x > z Then z = x: maVal = C End If End If Next 'On Error Resume Next If z = "" Then Max_Alpha = "" Else Max_Alpha = maVal End If End Function
Faut quand même avouer que la fonction TRIV() de Laurent apparaît comme un très bon choix. :-)
Salutations,
Daniel M.
Salut AV,
C'est le père Noël qui doit être content.
On continue ... même si on semble les seuls à avoir du fun. :-)
2.Dans la formule, avec 10^, le programme sortira PZ avant QA. Le coefficient
(10) n'est pas assez élevé.
Il faut au moins un _coefficient_ de 2^maxcar
Avec 5 lettres max, j'avais mis 32 (2^5).
Si tu as un max de 9 lettres, ça devrait être 2^9
Ce coefficient 512 est lui même resoumis à l'exponentiation.
Donc, ça me donne:
Sub azz()
On Error Resume Next
plg = Selection.Address
maxcar = Evaluate("max(len(" & plg & "))")
For i = 1 To maxcar
mat1 = mat1 & i & ","
mat2 = mat2 & maxcar - i & ","
Next
mat3 = Application.Rept("1;", maxcar)
Pour la fonction perso, j'ai adapté pour gérer les valeurs d'erreurs dans la
plage:
Function Max_Alpha(Plage As Range)
Dim C As Range, x$, z$, maVal As Variant, i%
For Each C In Plage
If Not IsError(C) Then
x = ""
For i = 1 To Len(C)
x = x & Format(Asc(LCase(Mid(C, i, 1))), "000")
Next
If x > z Then
z = x: maVal = C
End If
End If
Next
'On Error Resume Next
If z = "" Then
Max_Alpha = ""
Else
Max_Alpha = maVal
End If
End Function
Faut quand même avouer que la fonction TRIV() de Laurent apparaît comme un très
bon choix. :-)
2.Dans la formule, avec 10^, le programme sortira PZ avant QA. Le coefficient (10) n'est pas assez élevé. Il faut au moins un _coefficient_ de 2^maxcar Avec 5 lettres max, j'avais mis 32 (2^5). Si tu as un max de 9 lettres, ça devrait être 2^9 Ce coefficient 512 est lui même resoumis à l'exponentiation.
Donc, ça me donne:
Sub azz() On Error Resume Next plg = Selection.Address maxcar = Evaluate("max(len(" & plg & "))") For i = 1 To maxcar mat1 = mat1 & i & "," mat2 = mat2 & maxcar - i & "," Next mat3 = Application.Rept("1;", maxcar)
Pour la fonction perso, j'ai adapté pour gérer les valeurs d'erreurs dans la plage:
Function Max_Alpha(Plage As Range) Dim C As Range, x$, z$, maVal As Variant, i% For Each C In Plage If Not IsError(C) Then x = "" For i = 1 To Len(C) x = x & Format(Asc(LCase(Mid(C, i, 1))), "000") Next If x > z Then z = x: maVal = C End If End If Next 'On Error Resume Next If z = "" Then Max_Alpha = "" Else Max_Alpha = maVal End If End Function
Faut quand même avouer que la fonction TRIV() de Laurent apparaît comme un très bon choix. :-)