Extraction d'une chaîne de caractères

  • Initiateur de la discussion Initiateur de la discussion joss56
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

joss56

XLDnaute Accro
Bonjour à tous,

Dans une cellule, j'ai des données qui se présentent ainsi: T0,T28,T56.
T0 signifie jour1, T28, jour 28 etc... Comment extraire la valeur maximale d'une telle chaîne? Par exemple, ici, je voudrais récupérer la valeur 56. Merci de votre aide et bon dimanche.

Jocelyn
 
Re : Extraction d'une chaîne de caractères

Merci, James.

Le problème est que la chaîne figure dans une seule et même cellule et que la moulinette doit être faite en vb! Il y a la dedans sûrement besoin de left, right, instr et asc mais comment agencer tout ça, je donne ma langue au chat!
 
Re : Extraction d'une chaîne de caractères

Pas si idiote que ça la question: il s'agit d'une toute petite partie d'une application bcp plus volumineuse développée en vba, alors si je commence à faire des sub, functions, procédures globales d'un côté et une multitude de cellules calculées à l'aide de fonctions Excel, ça va vite devenir ingérable.
 
Re : Extraction d'une chaîne de caractères

Bonjour le Forum 🙂,
Ces temps-ci, on parle beaucoup de Split (que je ne connaissais pas avant) qui va te permettre de récupérer tes T0, etc. dans un tableau sous la forme
Code:
Tableau() = Split(Cellule, ",")
Ensuite une petite boucle en utilisant UBound pour définir la taille de ton tableau devrait donner quelque chose comme
Code:
For I = 0 To UBound(Tableau() -1)
Tableau(I) = Right(Tableau(I), Len(Tableau(I) - 1))
Next I
Après, il te suffit de trier ton tableau.
Bon courage 😎
Rajout : Tu peux même trier avec les "T", si c'est toujours la même lettre.
 
Re : Extraction d'une chaîne de caractères

Re 🙂,
Pour le tri, tu peux t'inspirer de ce code, extrait d'un code de Frédéric Sigorneau sur les jours fériés
Code:
  'tri du tableau
  Dim I%, J%, K%, tmp
  For I = LBound(Arr) To UBound(Arr)
    J = I
    For K = J + 1 To UBound(Arr)
      If Arr(K) <= Arr(J) Then J = K
    Next K
    If I <> J Then
      tmp = Arr(J): Arr(J) = Arr(I): Arr(I) = tmp
    End If
  Next I
A + 😎
 
Re : Extraction d'une chaîne de caractères

A tout hasard donc ... si c'est la dernière valeur ... la fonction right () fait le boulot ... sinon si elle est n'importe où, alors JNP a raison :
1. Il faut construire un array
2. Le trier
3. Prendre la valeur max

A+
 
Re : Extraction d'une chaîne de caractères

Re 🙂,
D'où la boucle que j'avais proposé (avec des erreurs de parenthèses... 😱)
Code:
For I = 0 To UBound(Tableau()) -1
Tableau(I) = Right(Tableau(I), Len(Tableau(I)) - 1)
Next I
Il me semble que le tableau obtenu par Split part de 0, d'où 0 To UBound -1.
Pour repasser en valeur numérique, CInt devrait faire l'affaire, mais le tableau fourni par Split étant en String, il faudrait peut-être passer par
Code:
TableauI(I) = CInt(TableauS(I))
où TableauI (nouveau tableau) est en Integer et TableauS (obtenu par Split) en String.
Bon dimanche 😎
PS : Si c'est la dernière valeur en utilisant juste Right, attention à la longueur de chaine : T8 sera différent de T18, voir T188... Autant utiliser Split et ne prendre que la dernière valeur du tableau.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

N
Réponses
24
Affichages
4 K
Nico17620
N
C
Réponses
10
Affichages
2 K
Comfortably_Numb
C
L
Réponses
22
Affichages
10 K
Lemontine
L
S
Réponses
9
Affichages
2 K
Sabrhm
S
Retour