Extraire partie du nom de fichier

Le
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
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #25569412
Bonjour,


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

Retourne : 05

MichD
---------------------------------------------------------------
MichD
Le #25569402
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
---------------------------------------------------------------
Manu
Le #25569422
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" 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
---------------------------------------------------------------

MichD
Le #25569472
| 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
---------------------------------------------------------------
Manu
Le #25569462
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" 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
---------------------------------------------------------------

MichD
Le #25569552
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
---------------------------------------------------------------
Manu
Le #25569622
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" 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
---------------------------------------------------------------
MichD
Le #25569612
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
---------------------------------------------------------------
Manu
Le #25569602
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" 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
---------------------------------------------------------------

MichD
Le #25569672
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
---------------------------------------------------------------
Publicité
Poster une réponse
Anonyme