grande.valeur (nombres + texte)

Le
j-pascal
Bonsoir,

J'ai une colonne composée de chiffres et de lettres :

50V
A28
90N
100V
G58
etc.

Actuellement, j'utilise une macro pour faire un tri croissant.
Est-il possible avec la fonction GRANDE.VALEUR de réaliser ce même tri
dès lors qu'il y a des lettres ?

Mes essais fonctionnent avec des nombres, mais pas avec le texte.

Merci d'avance pour votre aide.

JP
Vos réponses Page 2 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
j-pascal
Le #18538991
Bonjour Xavier,

Désolé, j'ai toujours le même msg d'erreur, ce qui néanmoins ne me fait
pas douter de la justesse de ta formule. J'ai dû oublier de préciser
qqch !

Bon we

JP

je me permet une petit correction de la formule


=GRANDE.VALEUR(SI(ESTERREUR(GAUCHE(D1:D5;1)*1);DROITE(D1:D5;NBCAR(D1:D5)-1);GAUCHE(D1:D5;NBCAR(D1:D5)))*1;LIGNE())

Validation matricielle :Ctrl + maj + Enter

Xavier


"j-pascal" discussion :
Bonsoir,

C'est dommage, ça ne fonctionne pas dans mon exemple (mon tableau de
référence comprend des données elles-mêmes issues de formules
matricielles). J'obtiens après ajustement des plages : #VALEURS! dans
toutes les cellules.
A noter que le bas de ma colonne de références renvoit des zéros.
Je vais refaire des essais demain, car ta proposition m'intéresse beaucoup.

@+

JP

juste pour le plaisir,
suppose que tes données en D1:D5
Il est possible d'utiliser grande valeur de cette manière :

Validation maticielle :Ctrl + maj + Enter
Tu sélectionnes la plage par exemple E1:E5 , appuie sur la touche F2
tu copies la formule et tu valides...tu obtiendras tes nombres en ordre
décroissant

=GRANDE.VALEUR(SI(ESTERREUR(GAUCHE(D1:D5;1)*1);DROITE(D1:D5;NBCAR(D1:D5)-1);GAUCHE(D1:D5;NBCAR(D1:D5)-1))*1;LIGNE())



"j-pascal" discussion :
Bonsoir,

J'ai une colonne composée de chiffres et de lettres :

50V
A28
90N
100V
G58
etc.

Actuellement, j'utilise une macro pour faire un tri croissant.
Est-il possible avec la fonction GRANDE.VALEUR de réaliser ce même tri
dès lors qu'il y a des lettres ?

Mes essais fonctionnent avec des nombres, mais pas avec le texte.

Merci d'avance pour votre aide.

JP








j-pascal
Le #18538981
Bonjour Jacques,

Je suis bluffé !! J'adore ce genre de formule qui me dépasse !

(Par contre j'ai des "#NA" en regard du "champ" qui contient des zéros
; je sais les traiter avec RECHERCHEV, mais en matriciel !?!?)

@+ ?

JP

Bonjour,

=INDEX(champ;EQUIV(LIGNE(INDIRECT("1:"&LIGNES(champ)));NB.SI
(champ;"<="&champ);0))
Valider avec Maj+ctrl+entrée

http://boisgontierjacques.free.fr/fichiers/jb-trimatriciel.zip

JB
http://boisgontierjacques.free.fr


On 30 jan, 21:36, j-pascal
Bonsoir,

J'ai une colonne composée de chiffres et de lettres :

50V
A28
90N
100V
G58
etc.

Actuellement, j'utilise une macro pour faire un tri croissant.
Est-il possible avec la fonction GRANDE.VALEUR de réaliser ce même tri
dès lors qu'il y a des lettres ?

Mes essais fonctionnent avec des nombres, mais pas avec le texte.

Merci d'avance pour votre aide.

JP




Coetera
Le #18539151
> Actuellement, j'utilise une macro pour faire un tri croissant.
Est-il possible avec la fonction GRANDE.VALEUR de réaliser ce même tri dès
lors qu'il y a des lettres ?



********************

Pour éviter quelques surprises que peut réserver une matricielle et pouvoir
gérer ce genre de liste :

50 V
Azzerty
XY6120
90 N
100 VZ
G58

mieux vaut utiliser une fonction perso (dans un module ordinaire) :

Function MaxNum(plage As Range)
leMax = ""
For Each c In plage
y = c.Value
For i = 1 To Len(c)
x = Mid(c, i, 1)
If Not IsNumeric(x) Then
z = Application.Substitute(y, x, "")
y = z
End If
Next
On Error Resume Next
If z * 1 > leMax * 1 Then leMax = z
Next
MaxNum = leMax
End Function

Etc
Merguez07
Le #18539341
as tu bien fait la validation matricielle Ctrl + maj + Enter ?


"j-pascal" discussion :
Bonjour Xavier,

Désolé, j'ai toujours le même msg d'erreur, ce qui néanmoins ne me fait
pas douter de la justesse de ta formule. J'ai dû oublier de préciser qqch
!

Bon we

JP

je me permet une petit correction de la formule


=GRANDE.VALEUR(SI(ESTERREUR(GAUCHE(D1:D5;1)*1);DROITE(D1:D5;NBCAR(D1:D5)-1);GAUCHE(D1:D5;NBCAR(D1:D5)))*1;LIGNE())

Validation matricielle :Ctrl + maj + Enter

Xavier


"j-pascal" discussion :
Bonsoir,

C'est dommage, ça ne fonctionne pas dans mon exemple (mon tableau de
référence comprend des données elles-mêmes issues de formules
matricielles). J'obtiens après ajustement des plages : #VALEURS! dans
toutes les cellules.
A noter que le bas de ma colonne de références renvoit des zéros.
Je vais refaire des essais demain, car ta proposition m'intéresse
beaucoup.

@+

JP

juste pour le plaisir,
suppose que tes données en D1:D5
Il est possible d'utiliser grande valeur de cette manière :

Validation maticielle :Ctrl + maj + Enter
Tu sélectionnes la plage par exemple E1:E5 , appuie sur la touche F2
tu copies la formule et tu valides...tu obtiendras tes nombres en ordre
décroissant

=GRANDE.VALEUR(SI(ESTERREUR(GAUCHE(D1:D5;1)*1);DROITE(D1:D5;NBCAR(D1:D5)-1);GAUCHE(D1:D5;NBCAR(D1:D5)-1))*1;LIGNE())



"j-pascal" discussion :
Bonsoir,

J'ai une colonne composée de chiffres et de lettres :

50V
A28
90N
100V
G58
etc.

Actuellement, j'utilise une macro pour faire un tri croissant.
Est-il possible avec la fonction GRANDE.VALEUR de réaliser ce même tri
dès lors qu'il y a des lettres ?

Mes essais fonctionnent avec des nombres, mais pas avec le texte.

Merci d'avance pour votre aide.

JP












j-pascal
Le #18540041
oui, bien sûr !

as tu bien fait la validation matricielle Ctrl + maj + Enter ?


"j-pascal" discussion :
Bonjour Xavier,

Désolé, j'ai toujours le même msg d'erreur, ce qui néanmoins ne me fait pas
douter de la justesse de ta formule. J'ai dû oublier de préciser qqch !

Bon we

JP

je me permet une petit correction de la formule


=GRANDE.VALEUR(SI(ESTERREUR(GAUCHE(D1:D5;1)*1);DROITE(D1:D5;NBCAR(D1:D5)-1);GAUCHE(D1:D5;NBCAR(D1:D5)))*1;LIGNE())

Validation matricielle :Ctrl + maj + Enter

Xavier


"j-pascal" discussion :
Bonsoir,

C'est dommage, ça ne fonctionne pas dans mon exemple (mon tableau de
référence comprend des données elles-mêmes issues de formules
matricielles). J'obtiens après ajustement des plages : #VALEURS! dans
toutes les cellules.
A noter que le bas de ma colonne de références renvoit des zéros.
Je vais refaire des essais demain, car ta proposition m'intéresse
beaucoup.

@+

JP

juste pour le plaisir,
suppose que tes données en D1:D5
Il est possible d'utiliser grande valeur de cette manière :

Validation maticielle :Ctrl + maj + Enter
Tu sélectionnes la plage par exemple E1:E5 , appuie sur la touche F2
tu copies la formule et tu valides...tu obtiendras tes nombres en ordre
décroissant

=GRANDE.VALEUR(SI(ESTERREUR(GAUCHE(D1:D5;1)*1);DROITE(D1:D5;NBCAR(D1:D5)-1);GAUCHE(D1:D5;NBCAR(D1:D5)-1))*1;LIGNE())



"j-pascal" discussion :
Bonsoir,

J'ai une colonne composée de chiffres et de lettres :

50V
A28
90N
100V
G58
etc.

Actuellement, j'utilise une macro pour faire un tri croissant.
Est-il possible avec la fonction GRANDE.VALEUR de réaliser ce même tri
dès lors qu'il y a des lettres ?

Mes essais fonctionnent avec des nombres, mais pas avec le texte.

Merci d'avance pour votre aide.

JP














Merguez07
Le #18540331
un petit ci-joint please car chez moi ça marche

xavier

"j-pascal" discussion :
oui, bien sûr !

as tu bien fait la validation matricielle Ctrl + maj + Enter ?


"j-pascal" discussion :
Bonjour Xavier,

Désolé, j'ai toujours le même msg d'erreur, ce qui néanmoins ne me fait
pas douter de la justesse de ta formule. J'ai dû oublier de préciser
qqch !

Bon we

JP

je me permet une petit correction de la formule


=GRANDE.VALEUR(SI(ESTERREUR(GAUCHE(D1:D5;1)*1);DROITE(D1:D5;NBCAR(D1:D5)-1);GAUCHE(D1:D5;NBCAR(D1:D5)))*1;LIGNE())

Validation matricielle :Ctrl + maj + Enter

Xavier


"j-pascal" discussion :
Bonsoir,

C'est dommage, ça ne fonctionne pas dans mon exemple (mon tableau de
référence comprend des données elles-mêmes issues de formules
matricielles). J'obtiens après ajustement des plages : #VALEURS! dans
toutes les cellules.
A noter que le bas de ma colonne de références renvoit des zéros.
Je vais refaire des essais demain, car ta proposition m'intéresse
beaucoup.

@+

JP

juste pour le plaisir,
suppose que tes données en D1:D5
Il est possible d'utiliser grande valeur de cette manière :

Validation maticielle :Ctrl + maj + Enter
Tu sélectionnes la plage par exemple E1:E5 , appuie sur la touche F2
tu copies la formule et tu valides...tu obtiendras tes nombres en
ordre décroissant

=GRANDE.VALEUR(SI(ESTERREUR(GAUCHE(D1:D5;1)*1);DROITE(D1:D5;NBCAR(D1:D5)-1);GAUCHE(D1:D5;NBCAR(D1:D5)-1))*1;LIGNE())



"j-pascal" discussion :
Bonsoir,

J'ai une colonne composée de chiffres et de lettres :

50V
A28
90N
100V
G58
etc.

Actuellement, j'utilise une macro pour faire un tri croissant.
Est-il possible avec la fonction GRANDE.VALEUR de réaliser ce même
tri
dès lors qu'il y a des lettres ?

Mes essais fonctionnent avec des nombres, mais pas avec le texte.

Merci d'avance pour votre aide.

JP


















michdenis
Le #18540681
http://cjoint.com/?ccnimwFxJS


"j-pascal"
Bonsoir,

C'est dommage, ça ne fonctionne pas dans mon exemple (mon tableau de
référence comprend des données elles-mêmes issues de formules
matricielles). J'obtiens après ajustement des plages : #VALEURS! dans
toutes les cellules.
A noter que le bas de ma colonne de références renvoit des zéros.
Je vais refaire des essais demain, car ta proposition m'intéresse
beaucoup.

@+

JP

juste pour le plaisir,
suppose que tes données en D1:D5
Il est possible d'utiliser grande valeur de cette manière :

Validation maticielle :Ctrl + maj + Enter
Tu sélectionnes la plage par exemple E1:E5 , appuie sur la touche F2
tu copies la formule et tu valides...tu obtiendras tes nombres en ordre
décroissant

=GRANDE.VALEUR(SI(ESTERREUR(GAUCHE(D1:D5;1)*1);DROITE(D1:D5;NBCAR(D1:D5)-1);GAUCHE(D1:D5;NBCAR(D1:D5)-1))*1;LIGNE())



"j-pascal" discussion :
Bonsoir,

J'ai une colonne composée de chiffres et de lettres :

50V
A28
90N
100V
G58
etc.

Actuellement, j'utilise une macro pour faire un tri croissant.
Est-il possible avec la fonction GRANDE.VALEUR de réaliser ce même tri
dès lors qu'il y a des lettres ?

Mes essais fonctionnent avec des nombres, mais pas avec le texte.

Merci d'avance pour votre aide.

JP


j-pascal
Le #18541091
A la lecture de ton classeur, je crois comprendre mon problème ...

Certes je veux un tri de toutes les valeurs, mais sans les tronquer ;
je ne veux pas récupérer que la partie numérique. Donc ta proposition
ne répond effectivement pas à mes besoins que j'aurai certainement mal
formulés.
A partir de là, j'ai "compris" que si une cellule ne comportait pas de
valeur numérique, ex : "AWX", j'obtenais la même erreur que celle
constatée dans mon classeur "#VALEUR!".

Je conserve ton exemple pour de futurs besoins,

Merci

JP

http://cjoint.com/?ccnimwFxJS


"j-pascal" discussion :
Bonsoir,

C'est dommage, ça ne fonctionne pas dans mon exemple (mon tableau de
référence comprend des données elles-mêmes issues de formules
matricielles). J'obtiens après ajustement des plages : #VALEURS! dans
toutes les cellules.
A noter que le bas de ma colonne de références renvoit des zéros.
Je vais refaire des essais demain, car ta proposition m'intéresse
beaucoup.

@+

JP

juste pour le plaisir,
suppose que tes données en D1:D5
Il est possible d'utiliser grande valeur de cette manière :

Validation maticielle :Ctrl + maj + Enter
Tu sélectionnes la plage par exemple E1:E5 , appuie sur la touche F2
tu copies la formule et tu valides...tu obtiendras tes nombres en ordre
décroissant

=GRANDE.VALEUR(SI(ESTERREUR(GAUCHE(D1:D5;1)*1);DROITE(D1:D5;NBCAR(D1:D5)-1);GAUCHE(D1:D5;NBCAR(D1:D5)-1))*1;LIGNE())



"j-pascal" discussion :
Bonsoir,

J'ai une colonne composée de chiffres et de lettres :

50V
A28
90N
100V
G58
etc.

Actuellement, j'utilise une macro pour faire un tri croissant.
Est-il possible avec la fonction GRANDE.VALEUR de réaliser ce même tri
dès lors qu'il y a des lettres ?

Mes essais fonctionnent avec des nombres, mais pas avec le texte.

Merci d'avance pour votre aide.

JP




j-pascal
Le #18554181
Bonsoir,

Merci pour cette proposition.
Ca ne fonctionne pas chez moi ; j'ai dû faire une erreur qq part.

"plage" est bien la plage à traiter ?
La fonction "=MaxNum(plage)" est bien copiée dans la première cellule
de la colonne où je compte récupérer le résultat, puis recopiée en bas
?

Ta solution m'intéresse, mais je n'arrive pas à l'appliquer pour
l'instant.

A bientôt ?

JP

Actuellement, j'utilise une macro pour faire un tri croissant.
Est-il possible avec la fonction GRANDE.VALEUR de réaliser ce même tri dès
lors qu'il y a des lettres ?



********************

Pour éviter quelques surprises que peut réserver une matricielle et pouvoir
gérer ce genre de liste :

50 V
Azzerty
XY6120
90 N
100 VZ
G58

mieux vaut utiliser une fonction perso (dans un module ordinaire) :

Function MaxNum(plage As Range)
leMax = ""
For Each c In plage
y = c.Value
For i = 1 To Len(c)
x = Mid(c, i, 1)
If Not IsNumeric(x) Then
z = Application.Substitute(y, x, "")
y = z
End If
Next
On Error Resume Next
If z * 1 > leMax * 1 Then leMax = z
Next
MaxNum = leMax
End Function

Etc


Coetera
Le #18556011
> Merci pour cette proposition.
Ca ne fonctionne pas chez moi ; j'ai dû faire une erreur qq part.



La réponse fournie est une fonction personnalisée pour renvoyer le "nombre max"
Si tu veux trier une plage en n'utilisant que les valeurs numériques contenues,
utiliser cette fonction dans une colonne adjacente et trier sur cette colonne
ajoutée

Function ExtractNum(cel As Range)
ExtractNum = ""
For i = 1 To Len(cel)
x = Mid(cel, i, 1)
If IsNumeric(x) Then ExtractNum = (ExtractNum & x) * 1
Next
End Function

http://www.cijoint.fr/cjlink.php?file=cj200902/cijzOROaX0.xls

PS : Ton exemple n'en comportant pas, le traitement des valeurs numériques avec
décimales n'est pas assuré, mais ça peut se faire

Etc
Publicité
Poster une réponse
Anonyme