Transformer une cellule alphanumérique en cellule numérique
26 réponses
Flac
Bonjour à tous,
Excel 2000
Soit la valeur suivante figurant dans la cellule A1
Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être
aussi bien 2008 ou 2010)
L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
En attendant que quelqu'un propose d'utiliser les "expressions régulières", la première réponse qui me vient à l'esprit est de lire caractère par caractère, pour évaluer si le caractère est un chif fre (ou un séparateur décimal), et dans l'affirmative le concaténer dans un e chaîne temporaire, dont on évaluera, en fin de traitement, la valeur par la fonction Value(string).
___________________________________ Flac a écrit, le 29/12/2009 23:11 :
Bonjour à tous, Excel 2000 Soit la valeur suivante figurant dans la cellule A1 Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être aussi bien 2008 ou 2010) L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Quelle pourrait être la syntaxe de ma macro
Merci
Flac
Bonjour,
En attendant que quelqu'un propose d'utiliser les "expressions
régulières", la première réponse qui me vient à l'esprit est de lire
caractère par caractère, pour évaluer si le caractère est un chif fre (ou
un séparateur décimal), et dans l'affirmative le concaténer dans un e
chaîne temporaire, dont on évaluera, en fin de traitement, la valeur par
la fonction Value(string).
___________________________________
Flac a écrit, le 29/12/2009 23:11 :
Bonjour à tous,
Excel 2000
Soit la valeur suivante figurant dans la cellule A1
Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait
être aussi bien 2008 ou 2010)
L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
En attendant que quelqu'un propose d'utiliser les "expressions régulières", la première réponse qui me vient à l'esprit est de lire caractère par caractère, pour évaluer si le caractère est un chif fre (ou un séparateur décimal), et dans l'affirmative le concaténer dans un e chaîne temporaire, dont on évaluera, en fin de traitement, la valeur par la fonction Value(string).
___________________________________ Flac a écrit, le 29/12/2009 23:11 :
Bonjour à tous, Excel 2000 Soit la valeur suivante figurant dans la cellule A1 Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être aussi bien 2008 ou 2010) L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Quelle pourrait être la syntaxe de ma macro
Merci
Flac
Gloops
Fredo P. a écrit, le 30/12/2009 00:00 :
=Mid([A1],len([A1])-7,4)
Ah, effectivement, si on est sûr que la longueur de la partie numériq ue est toujours la même, et qu'elle est toujours à la fin, on peut faire comme ça, c'est bien plus simple.
Fredo P. a écrit, le 30/12/2009 00:00 :
=Mid([A1],len([A1])-7,4)
Ah, effectivement, si on est sûr que la longueur de la partie numériq ue
est toujours la même, et qu'elle est toujours à la fin, on peut faire
comme ça, c'est bien plus simple.
Ah, effectivement, si on est sûr que la longueur de la partie numériq ue est toujours la même, et qu'elle est toujours à la fin, on peut faire comme ça, c'est bien plus simple.
Fredo P.
=Mid([A1],len([A1])-7,4)
--
Fredo P.
"Flac" a écrit dans le message de news:
Bonjour à tous, Excel 2000 Soit la valeur suivante figurant dans la cellule A1 Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être aussi bien 2008 ou 2010) L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Quelle pourrait être la syntaxe de ma macro
Merci
Flac
=Mid([A1],len([A1])-7,4)
--
Fredo P.
"Flac" <luc_bt@hotmail.com> a écrit dans le message de news:
4F8878BE-53E3-4926-9349-080B3DD0CD70@microsoft.com...
Bonjour à tous,
Excel 2000
Soit la valeur suivante figurant dans la cellule A1
Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être
aussi bien 2008 ou 2010)
L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Bonjour à tous, Excel 2000 Soit la valeur suivante figurant dans la cellule A1 Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être aussi bien 2008 ou 2010) L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Quelle pourrait être la syntaxe de ma macro
Merci
Flac
Jacky
Bonsoir,
Compatible xl 2003-2007 Le texte en A1 dans l'exemple '------------- Sub jj() x% = Mid([A1], Application.Find("_", [A1]) + 1, 4) MsgBox x End Sub '-------------- Sans vba =STXT(A1;CHERCHE("_";A1)+1;4) -- Salutations JJ
"Flac" a écrit dans le message de news:
Bonjour à tous, Excel 2000 Soit la valeur suivante figurant dans la cellule A1 Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être aussi bien 2008 ou 2010) L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Quelle pourrait être la syntaxe de ma macro
Merci
Flac
Bonsoir,
Compatible xl 2003-2007
Le texte en A1 dans l'exemple
'-------------
Sub jj()
x% = Mid([A1], Application.Find("_", [A1]) + 1, 4)
MsgBox x
End Sub
'--------------
Sans vba
=STXT(A1;CHERCHE("_";A1)+1;4)
--
Salutations
JJ
"Flac" <luc_bt@hotmail.com> a écrit dans le message de news:
4F8878BE-53E3-4926-9349-080B3DD0CD70@microsoft.com...
Bonjour à tous,
Excel 2000
Soit la valeur suivante figurant dans la cellule A1
Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être
aussi bien 2008 ou 2010)
L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Compatible xl 2003-2007 Le texte en A1 dans l'exemple '------------- Sub jj() x% = Mid([A1], Application.Find("_", [A1]) + 1, 4) MsgBox x End Sub '-------------- Sans vba =STXT(A1;CHERCHE("_";A1)+1;4) -- Salutations JJ
"Flac" a écrit dans le message de news:
Bonjour à tous, Excel 2000 Soit la valeur suivante figurant dans la cellule A1 Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être aussi bien 2008 ou 2010) L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Quelle pourrait être la syntaxe de ma macro
Merci
Flac
Jacky
Re... Ou si "Allocation_2009.xls" est le nom du classeur Sans cellule intermédiaire '------------------ Sub jj() [a1] = Mid(ThisWorkbook.Name, Application.Find("_", ThisWorkbook.Name) + 1, 4) End Sub '----------------- -- Salutations JJ
"Jacky" a écrit dans le message de news: ub%
Bonsoir,
Compatible xl 2003-2007 Le texte en A1 dans l'exemple '------------- Sub jj() x% = Mid([A1], Application.Find("_", [A1]) + 1, 4) MsgBox x End Sub '-------------- Sans vba =STXT(A1;CHERCHE("_";A1)+1;4) -- Salutations JJ
"Flac" a écrit dans le message de news:
Bonjour à tous, Excel 2000 Soit la valeur suivante figurant dans la cellule A1 Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être aussi bien 2008 ou 2010) L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Quelle pourrait être la syntaxe de ma macro
Merci
Flac
Re...
Ou si "Allocation_2009.xls" est le nom du classeur
Sans cellule intermédiaire
'------------------
Sub jj()
[a1] = Mid(ThisWorkbook.Name, Application.Find("_", ThisWorkbook.Name) +
1, 4)
End Sub
'-----------------
--
Salutations
JJ
"Jacky" <Dupond@marcel.fr> a écrit dans le message de news:
ub%23fv3NiKHA.4220@TK2MSFTNGP05.phx.gbl...
Bonsoir,
Compatible xl 2003-2007
Le texte en A1 dans l'exemple
'-------------
Sub jj()
x% = Mid([A1], Application.Find("_", [A1]) + 1, 4)
MsgBox x
End Sub
'--------------
Sans vba
=STXT(A1;CHERCHE("_";A1)+1;4)
--
Salutations
JJ
"Flac" <luc_bt@hotmail.com> a écrit dans le message de news:
4F8878BE-53E3-4926-9349-080B3DD0CD70@microsoft.com...
Bonjour à tous,
Excel 2000
Soit la valeur suivante figurant dans la cellule A1
Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être
aussi bien 2008 ou 2010)
L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Re... Ou si "Allocation_2009.xls" est le nom du classeur Sans cellule intermédiaire '------------------ Sub jj() [a1] = Mid(ThisWorkbook.Name, Application.Find("_", ThisWorkbook.Name) + 1, 4) End Sub '----------------- -- Salutations JJ
"Jacky" a écrit dans le message de news: ub%
Bonsoir,
Compatible xl 2003-2007 Le texte en A1 dans l'exemple '------------- Sub jj() x% = Mid([A1], Application.Find("_", [A1]) + 1, 4) MsgBox x End Sub '-------------- Sans vba =STXT(A1;CHERCHE("_";A1)+1;4) -- Salutations JJ
"Flac" a écrit dans le message de news:
Bonjour à tous, Excel 2000 Soit la valeur suivante figurant dans la cellule A1 Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être aussi bien 2008 ou 2010) L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Quelle pourrait être la syntaxe de ma macro
Merci
Flac
Gloops
Nous voyons là illustrer l'importance de l'interprétation de l'énon cé, pour anticiper des évolutions possibles dans le format du texte à transformer.
Fredo est parti du principe que le nombre à extraire est toujours à l a fin du nom juste avant l'extension, et a compté le nombre de caractèr es que ça fait à partir du début, en tenant compte de la longueur tota le.
Jacky a remarqué que le nombre se trouve juste après un caractère d e soulignement, et a pris les quatre caractères suivants.
Pour ma part, j'ai anticipé qu'un jour on puisse avoir Allocation_2007_Trim_III.xls Toutefois j'ai pêché en ce sens que si le numéro de trimestre est f ourni en chiffre arabe, je retourne 20073, qui a l'inconvénient d'être passablement à côté de la plaque.
Je crois que pour ce cas de figure c'est Jacky qui s'en sort.
Si en revanche nous avons Allocation_3eme_trim_2007.xls, là ce sera Fre do.
Pour ma part, j'ai répondu à "L'important est que je veux ne retenir que les chiffres", mais j'ai mal anticipé la présence d'autres chiffres q ue ceux de l'année.
___________________________________ Flac a écrit, le 29/12/2009 23:11 :
Bonjour à tous, Excel 2000 Soit la valeur suivante figurant dans la cellule A1 Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être aussi bien 2008 ou 2010) L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Quelle pourrait être la syntaxe de ma macro
Merci
Flac
Nous voyons là illustrer l'importance de l'interprétation de l'énon cé,
pour anticiper des évolutions possibles dans le format du texte à
transformer.
Fredo est parti du principe que le nombre à extraire est toujours à l a
fin du nom juste avant l'extension, et a compté le nombre de caractèr es
que ça fait à partir du début, en tenant compte de la longueur tota le.
Jacky a remarqué que le nombre se trouve juste après un caractère d e
soulignement, et a pris les quatre caractères suivants.
Pour ma part, j'ai anticipé qu'un jour on puisse avoir
Allocation_2007_Trim_III.xls
Toutefois j'ai pêché en ce sens que si le numéro de trimestre est f ourni
en chiffre arabe, je retourne 20073, qui a l'inconvénient d'être
passablement à côté de la plaque.
Je crois que pour ce cas de figure c'est Jacky qui s'en sort.
Si en revanche nous avons Allocation_3eme_trim_2007.xls, là ce sera Fre do.
Pour ma part, j'ai répondu à "L'important est que je veux ne retenir que
les chiffres", mais j'ai mal anticipé la présence d'autres chiffres q ue
ceux de l'année.
___________________________________
Flac a écrit, le 29/12/2009 23:11 :
Bonjour à tous,
Excel 2000
Soit la valeur suivante figurant dans la cellule A1
Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait
être aussi bien 2008 ou 2010)
L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Nous voyons là illustrer l'importance de l'interprétation de l'énon cé, pour anticiper des évolutions possibles dans le format du texte à transformer.
Fredo est parti du principe que le nombre à extraire est toujours à l a fin du nom juste avant l'extension, et a compté le nombre de caractèr es que ça fait à partir du début, en tenant compte de la longueur tota le.
Jacky a remarqué que le nombre se trouve juste après un caractère d e soulignement, et a pris les quatre caractères suivants.
Pour ma part, j'ai anticipé qu'un jour on puisse avoir Allocation_2007_Trim_III.xls Toutefois j'ai pêché en ce sens que si le numéro de trimestre est f ourni en chiffre arabe, je retourne 20073, qui a l'inconvénient d'être passablement à côté de la plaque.
Je crois que pour ce cas de figure c'est Jacky qui s'en sort.
Si en revanche nous avons Allocation_3eme_trim_2007.xls, là ce sera Fre do.
Pour ma part, j'ai répondu à "L'important est que je veux ne retenir que les chiffres", mais j'ai mal anticipé la présence d'autres chiffres q ue ceux de l'année.
___________________________________ Flac a écrit, le 29/12/2009 23:11 :
Bonjour à tous, Excel 2000 Soit la valeur suivante figurant dans la cellule A1 Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être aussi bien 2008 ou 2010) L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Quelle pourrait être la syntaxe de ma macro
Merci
Flac
michdenis
Bonjour,
Dim T as string, An as Integer T = Allocation_2009.xls An = left(Split(t,"_")(1),4)
"Flac" a écrit dans le message de groupe de discussion :
Bonjour à tous, Excel 2000 Soit la valeur suivante figurant dans la cellule A1 Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être aussi bien 2008 ou 2010) L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Quelle pourrait être la syntaxe de ma macro
Merci
Flac
Bonjour,
Dim T as string, An as Integer
T = Allocation_2009.xls
An = left(Split(t,"_")(1),4)
"Flac" <luc_bt@hotmail.com> a écrit dans le message de groupe de discussion :
4F8878BE-53E3-4926-9349-080B3DD0CD70@microsoft.com...
Bonjour à tous,
Excel 2000
Soit la valeur suivante figurant dans la cellule A1
Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être
aussi bien 2008 ou 2010)
L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Dim T as string, An as Integer T = Allocation_2009.xls An = left(Split(t,"_")(1),4)
"Flac" a écrit dans le message de groupe de discussion :
Bonjour à tous, Excel 2000 Soit la valeur suivante figurant dans la cellule A1 Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être aussi bien 2008 ou 2010) L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Quelle pourrait être la syntaxe de ma macro
Merci
Flac
Modeste
Bonsour® Flac avec ferveur ;o))) vous nous disiez :
Excel 2000 Soit la valeur suivante figurant dans la cellule A1 Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être aussi bien 2008 ou 2010) L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Quelle pourrait être la syntaxe de ma macro
en vba Left(Right(ThisWorkbook.Name, 8), 4)
Bonsour® Flac avec ferveur ;o))) vous nous disiez :
Excel 2000
Soit la valeur suivante figurant dans la cellule A1
Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait
être aussi bien 2008 ou 2010)
L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Bonsour® Flac avec ferveur ;o))) vous nous disiez :
Excel 2000 Soit la valeur suivante figurant dans la cellule A1 Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être aussi bien 2008 ou 2010) L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Quelle pourrait être la syntaxe de ma macro
en vba Left(Right(ThisWorkbook.Name, 8), 4)
Gloops
michdenis a écrit, le 30/12/2009 00:51 :
Bonjour,
Dim T as string, An as Integer T = Allocation_2009.xls An = left(Split(t,"_")(1),4)
Il y a des trucs intéressants à faire avec Split. En reprenant mon idée de la boucle caractère par caractère on peut garder plusieurs séquences numériques, et les retourner en tableau. Les données peuvent être transmises en séparant les séquences non numériques (sauf celle du début et celle de la fin) par des séparat eurs, par exemple un point-virgule pour chaque séquence.
Allocation_2008_3eme_trimestre.xls ou Allocation_2008_trim_3.xls devient alors Resultat = "2008;3" Annee = Split(Resultat, ";")(0) Trimestre = Split(Resultat, ";")(1)
Toutefois il reste une adaptation à faire lors de l'évolution, pour évaluer le nombre de séquences numériques et la signification de ch acune selon sa position.
michdenis a écrit, le 30/12/2009 00:51 :
Bonjour,
Dim T as string, An as Integer
T = Allocation_2009.xls
An = left(Split(t,"_")(1),4)
Il y a des trucs intéressants à faire avec Split.
En reprenant mon idée de la boucle caractère par caractère on peut
garder plusieurs séquences numériques, et les retourner en tableau.
Les données peuvent être transmises en séparant les séquences non
numériques (sauf celle du début et celle de la fin) par des séparat eurs,
par exemple un point-virgule pour chaque séquence.
Allocation_2008_3eme_trimestre.xls
ou
Allocation_2008_trim_3.xls
devient alors
Resultat = "2008;3"
Annee = Split(Resultat, ";")(0)
Trimestre = Split(Resultat, ";")(1)
Toutefois il reste une adaptation à faire lors de l'évolution, pour
évaluer le nombre de séquences numériques et la signification de ch acune
selon sa position.
Dim T as string, An as Integer T = Allocation_2009.xls An = left(Split(t,"_")(1),4)
Il y a des trucs intéressants à faire avec Split. En reprenant mon idée de la boucle caractère par caractère on peut garder plusieurs séquences numériques, et les retourner en tableau. Les données peuvent être transmises en séparant les séquences non numériques (sauf celle du début et celle de la fin) par des séparat eurs, par exemple un point-virgule pour chaque séquence.
Allocation_2008_3eme_trimestre.xls ou Allocation_2008_trim_3.xls devient alors Resultat = "2008;3" Annee = Split(Resultat, ";")(0) Trimestre = Split(Resultat, ";")(1)
Toutefois il reste une adaptation à faire lors de l'évolution, pour évaluer le nombre de séquences numériques et la signification de ch acune selon sa position.
isabelle
bonjour Flac,
=STXT(A1;TROUVE(".";A1)-4;4)*1
isabelle
Le 2009-12-29 17:11, Flac a écrit :
Bonjour à tous, Excel 2000 Soit la valeur suivante figurant dans la cellule A1 Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être aussi bien 2008 ou 2010) L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Quelle pourrait être la syntaxe de ma macro
Merci
Flac
bonjour Flac,
=STXT(A1;TROUVE(".";A1)-4;4)*1
isabelle
Le 2009-12-29 17:11, Flac a écrit :
Bonjour à tous,
Excel 2000
Soit la valeur suivante figurant dans la cellule A1
Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait
être aussi bien 2008 ou 2010)
L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009
Bonjour à tous, Excel 2000 Soit la valeur suivante figurant dans la cellule A1 Allocation_2009.xls
Je voudrais par une macro ne retenir que le nombre 2009 (ça pourrait être aussi bien 2008 ou 2010) L'important est que je veux ne retenir que les chiffres.
Dans mon exemple, Allocation_2009.xls deviendrait le nombre 2009