Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Transformer une cellule alphanumérique en cellule numérique

26 réponses
Avatar
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

Quelle pourrait être la syntaxe de ma macro

Merci

Flac

10 réponses

1 2 3
Avatar
Fredo P.
Ou encore avec plus de chance d'avoir le bon résultat jusqu'en 2099
=mid([A1],instr([A1],"20"),4)
--

Fredo P.


"isabelle" a écrit dans le message de news:

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









Avatar
Fredo P.
Ce qui est aussi surprenant, ta réponse à mon poste avant de l'avoir vu.
--

Fredo P.


"Gloops" a écrit dans le message de news:
ukrvs$
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érique
est toujours la même, et qu'elle est toujours à la fin, on peut faire
comme ça, c'est bien plus simple.
Avatar
Flac
Merci à vous tous,

Finalement c'est la suggestion de modeste qui sied le plus. Effectivement,
je voulais simplement récupérer l'année de mon fichier pour le sauvegarder
pour l'année suivante.

Bonne année 2010 à tous

Flac
Avatar
Jacky
Re...

je voulais simplement récupérer l'année de mon fichier pour le sauvegarder


Sauf à un passage à xl2007
;o)
Bonne année 2010 également
--
Salutations
JJ


"Flac" a écrit dans le message de news:

Merci à vous tous,

Finalement c'est la suggestion de modeste qui sied le plus.
Effectivement, je voulais simplement récupérer l'année de mon fichier pour
le sauvegarder pour l'année suivante.

Bonne année 2010 à tous

Flac





Avatar
Gloops
Fredo P. a écrit, le 30/12/2009 09:14 :
Ce qui est aussi surprenant, ta réponse à mon poste avant de l'avoi r vu.



Effectivement.
Pour tout dire, j'ai un faux contact dans ma carte mère, qui a tendance
à figer le traitement -et par la même occasion l'horloge- dans certai nes
positions de l'ordinateur.
Heureusement que les logiciels de synchronisation fonctionnent bien, ça
limite les dégâts, autrement j'aurais répondu une heure et demi ava nt
d'avoir lu :)

ça s'était calmé une dizaine de mois, et puis ça recommence.

Je croyais que l'heure était fournie par le serveur, mais ça n'a pas
l'air si évident (à moins que le serveur rencontre les mêmes problè mes :) )
Avatar
Flac
Bonjour,
Pourrais-tu m'expliquer l'expression "Sauf à un passage à xl2007"?
Est-ce-à-dire qu'il y aurait incompatibilité entre les macros faites sous
excel 2000 lorsqu'on
sauvegarde un fichier excel 2000 sous excel 2007?

Merci

Flac

"Jacky" a écrit dans le message de groupe de discussion :

Re...

je voulais simplement récupérer l'année de mon fichier pour le
sauvegarder


Sauf à un passage à xl2007
;o)
Bonne année 2010 également
--
Salutations
JJ


"Flac" a écrit dans le message de news:

Merci à vous tous,

Finalement c'est la suggestion de modeste qui sied le plus.
Effectivement, je voulais simplement récupérer l'année de mon fichier
pour le sauvegarder pour l'année suivante.

Bonne année 2010 à tous

Flac









Avatar
Jacky
Re
Le code que tu as retenu est:
Left(Right(ThisWorkbook.Name, 8), 4)

Le nom du fichier pour l'exemple était:
"Allocation_2009.xls "

Jusqu'a la version 2003 l'extension du fichier est sur 3 lettres(.xls)
Le code retenu retournera "2009"
L'extension des fichiers xl 2007 est sur 4 lettres (.xlsm)
Le code retenu retournera "009."

Teste ceci et tu comprendras
'-----------
Sub jj()
nom = "Allocation_2009.xls"
MsgBox "Xl 97-2003" & vbLf & "Résultat" & vbLf & vbLf & "Code Retenu " &
Left(Right(nom, 8), 4) & vbLf & "Code jj: " & Mid(nom, Application.Find("_",
nom) + 1, 4) & vbLf & "Code Denis: " & Left(Split(nom, "_")(1), 4)
nom = "Allocation_2009.xlsm"
MsgBox "Xl 2007-xxxx" & vbLf & "Résultat" & vbLf & vbLf & "Code Retenu " &
Left(Right(nom, 8), 4) & vbLf & "Code jj: " & Mid(nom, Application.Find("_",
nom) + 1, 4) & vbLf & "Code Denis: " & Left(Split(nom, "_")(1), 4)
End Sub
'--------------
Attention aux coupures de ligne du lecteur de news
--
Salutations
JJ


"Flac" a écrit dans le message de news:

Bonjour,
Pourrais-tu m'expliquer l'expression "Sauf à un passage à xl2007"?
Est-ce-à-dire qu'il y aurait incompatibilité entre les macros faites sous
excel 2000 lorsqu'on
sauvegarde un fichier excel 2000 sous excel 2007?

Merci

Flac

"Jacky" a écrit dans le message de groupe de discussion
:
Re...

je voulais simplement récupérer l'année de mon fichier pour le
sauvegarder


Sauf à un passage à xl2007
;o)
Bonne année 2010 également
--
Salutations
JJ


"Flac" a écrit dans le message de news:

Merci à vous tous,

Finalement c'est la suggestion de modeste qui sied le plus.
Effectivement, je voulais simplement récupérer l'année de mon fichier
pour le sauvegarder pour l'année suivante.

Bonne année 2010 à tous

Flac











Avatar
michdenis
Si tu as utilisé cette approche :
=mid([A1],instr([A1],"20"),4)

le chiffre 4 réfère à la longueur de l'extension
du fichier incluant le point ".xls"

Cependant, les fichiers Excel version 2007 ont
diverses extensions ayant 5 caractères incluant le
point.
Exemple : ".xlsx" fichier Excel sans macro
".xlsm" fichier possédant une macro
et d'autres ...

En conséquences, la méthode retenue ne sera plus adaptée.



"Flac" a écrit dans le message de groupe de discussion :

Bonjour,
Pourrais-tu m'expliquer l'expression "Sauf à un passage à xl2007"?
Est-ce-à-dire qu'il y aurait incompatibilité entre les macros faites sous
excel 2000 lorsqu'on
sauvegarde un fichier excel 2000 sous excel 2007?

Merci

Flac

"Jacky" a écrit dans le message de groupe de discussion :

Re...

je voulais simplement récupérer l'année de mon fichier pour le
sauvegarder


Sauf à un passage à xl2007
;o)
Bonne année 2010 également
--
Salutations
JJ


"Flac" a écrit dans le message de news:

Merci à vous tous,

Finalement c'est la suggestion de modeste qui sied le plus.
Effectivement, je voulais simplement récupérer l'année de mon fichier
pour le sauvegarder pour l'année suivante.

Bonne année 2010 à tous

Flac









Avatar
Modeste
Bonsour® michdenis avec ferveur ;o))) vous nous disiez :

Si tu as utilisé cette approche :
=mid([A1],instr([A1],"20"),4)

le chiffre 4 réfère à la longueur de l'extension
du fichier incluant le point ".xls"

Cependant, les fichiers Excel version 2007 ont
diverses extensions ayant 5 caractères incluant le
point.
Exemple : ".xlsx" fichier Excel sans macro
".xlsm" fichier possédant une macro
et d'autres ...

En conséquences, la méthode retenue ne sera plus adaptée.



;o)))
VBA :
=mid([A1],instr([A1],".xls")-4,4)
Formule :
=STXT(A1;TROUVE(".xls";A1)-4;4)
Avatar
michdenis
| VBA :
| =mid([A1],instr([A1],".xls")-4,4)
| Formule :
| =STXT(A1;TROUVE(".xls";A1)-4;4)

Et que fais-tu de l'extension de fichier "xlam" pour
un fichier de macros complémentaires Version 2007 ?

L'extension d'un modèle Excel 2007 avec Macro : xltm
L'extension d'un modèle Excel 2007 sans Macro : xltx

Ou des fichiers en Html ou Htm ?

Et la liste n'est pas exhaustive !

;-)
1 2 3