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

Extraire partie du nom de fichier

11 réponses
Avatar
Manu
Bonjour,

J'ai des noms de fichiers de ce style : mon_fichier_etc 05-2013.xslm

Le début du nom de fichier est toujours différent mais c'est toujours du
texte, moi ce qui m'interesse, ce sont les numeros, et surtout les 2
premiers qui représente le mois (05).

En faite je souhaiterais que dans ma cellule A1, il mette mai si c'est
marqué 05 dans le nom de fichier, si c'etait 02, il devrait me mettre
Février....etc

Merci

Manu

10 réponses

1 2
Avatar
MichD
Bonjour,


Dim X As String
X = "mon_fichier_etc 05-2013.xslm"
MsgBox Mid(X, InStrRev(X, "-", Len(X)) - 2, 2)

Retourne : 05

MichD
---------------------------------------------------------------
Avatar
MichD
Et si tu veux mettre le mois dans A1

Dim X As String
X = "mon_fichier_etc 02-2013.xslm"
Range("A1") = Format(DateSerial(Year(Date), Mid(X, InStrRev(X, "-",
Len(X)) - 2, 2), 1), "MMMM")


MichD
---------------------------------------------------------------
Avatar
Manu
Merci Mich, Mais le soucis est que les noms de fichiers ne sont jamais les
mêmes... Il faudrait aller chercher les 2 premiers chiffres du nom du
fichier (et peu importe la longueur du nom du fichier) car ces 2 premiers
chiffres représentent tjrs le mois

Manu

"MichD" a écrit dans le message de news:
kt62te$uef$
Et si tu veux mettre le mois dans A1

Dim X As String
X = "mon_fichier_etc 02-2013.xslm"
Range("A1") = Format(DateSerial(Year(Date), Mid(X, InStrRev(X, "-",
Len(X)) - 2, 2), 1), "MMMM")


MichD
---------------------------------------------------------------

Avatar
MichD
| Il faudrait aller chercher les 2 premiers chiffres du nom

Les 2 chiffres le plus à droite, le plus à gauche????

Moi je veux bien, mais donne DES exemples
de types différents de noms de fichiers que
tu peux rencontrer!


MichD
---------------------------------------------------------------
Avatar
Manu
Tu as raison, désolé.

Oui, ce sont les 2 premiers chiffres qui représente le mois et c'est cela
qui m'interesse.

titi 05-2013.xlsm : je souhaite voir arriver Mai en A1
Lili_et_mimi 02-2013.xlsm : je souhaite voir arriver Février en A1

Manu

"MichD" a écrit dans le message de news:
kt65pq$7pk$
| Il faudrait aller chercher les 2 premiers chiffres du nom

Les 2 chiffres le plus à droite, le plus à gauche????

Moi je veux bien, mais donne DES exemples
de types différents de noms de fichiers que
tu peux rencontrer!


MichD
---------------------------------------------------------------

Avatar
MichD
La macro que je t'ai donnée devrait fonctionner dans les
exemples que tu as affichés

Dans le bout de code suivant, tu n'as qu'à remplacer le
nom du fichier "mon_fichier_etc 02-2013.xslm" par celui
que tu désires. Où éprouves-tu un problème?

Dim X As String
X = "mon_fichier_etc 02-2013.xslm"
Range("A1") = Format(DateSerial(Year(Date), Mid(X, InStrRev(X, "-",
Len(X)) - 2, 2), 1), "MMMM")


MichD
---------------------------------------------------------------
Avatar
Manu
J'ai du mal expliquer

Je souhaite que cette macro fonctionne avec n'importe quel nom de fichier,
j'ai plus d'une centaine de fichier qui ont tous des noms differents et avec
une longeurs differentes, mais le seul point commun de ces fichiers est que
les 2 premiers chiffres sont des N° de mois, et c'est cela que je souhaite
extraire.

Si je prend ton code, il faudrait que je mette tous les noms de fichiers,
c'est impossible... et en plus il y en à dont je ne connais pas encore le
nom.

Ais-je été plus clair ?

Manu

Si je prend le code"MichD" a écrit dans le message
de news: kt67ac$c9p$
La macro que je t'ai donnée devrait fonctionner dans les
exemples que tu as affichés

Dans le bout de code suivant, tu n'as qu'à remplacer le
nom du fichier "mon_fichier_etc 02-2013.xslm" par celui
que tu désires. Où éprouves-tu un problème?

Dim X As String
X = "mon_fichier_etc 02-2013.xslm"
Range("A1") = Format(DateSerial(Year(Date), Mid(X, InStrRev(X, "-",
Len(X)) - 2, 2), 1), "MMMM")


MichD
---------------------------------------------------------------
Avatar
MichD
Dans ton application, comment fais-tu pour obtenir
le nom du fichier dont tu veux extraire le mois?

Il s'agit alors d'attribuer à la variable X ce nom de fichier.
Tu peux traiter autant de noms de fichier que tu désires
dans une boucle où tu extrais le nom du fichier.

OÙ SONT CES NOMS DE FICHIERS???????????????

MichD
---------------------------------------------------------------
Avatar
Manu
Peu importe où ils sont... Je te donne un exemple concret, je recois par
mail un fichier xxxxx 05-2013.xlsm
Je l'ouvre (le fichier dont je veux extraire le mois, est obligatoirement
ouvert) et je veux ensuite prendre les 2 premiers chiffre comme mois de ce
fichier qui est en face de moi.

Mais je ne connais pas toujours les noms de fichiers, c'est pour cela que je
mettrai cette macro dans le classeur de macro personnel


"MichD" a écrit dans le message de news:
kt68lf$g7u$
Dans ton application, comment fais-tu pour obtenir
le nom du fichier dont tu veux extraire le mois?

Il s'agit alors d'attribuer à la variable X ce nom de fichier.
Tu peux traiter autant de noms de fichier que tu désires
dans une boucle où tu extrais le nom du fichier.

OÙ SONT CES NOMS DE FICHIERS???????????????

MichD
---------------------------------------------------------------

Avatar
MichD
Place ceci dans ton classeur de macros personnelles

Cette macro met le mois du fichier en A1 (en supposant que ces
chiffres existent dans le nom du fichier) dans la feuille
active du classeur actif au moment d'exécuter la macro.
'-------------------------------------
Sub test()
Dim Wk As Workbook, X As String
On Error Resume Next
Set Wk = ActiveWorkbook
X = Wk.Name
With Wk
If TypeName(.ActiveSheet) = "Worksheet" Then
.ActiveSheet.Range("A1") = Format(DateSerial(Year(Date), _
Mid(X, InStrRev(X, "-", Len(X)) - 2, 2), 1), "MMMM")
End If
End With
End Sub
'-------------------------------------



MichD
---------------------------------------------------------------
1 2