Extraire un texte du nom d'un fichier

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 !

sonskriverez

XLDnaute Occasionnel
Bonjour le forum

Pour copier/coller une feuille d'un fichier dans celui ouvert, j'utilse cette macro :

Sub Copier_Feuille()

' *** ouvrir un fichier Excel, selection une sheet , copier, coller dans une sheet du classeur appelant

Dim Fichier, Repdefaut As String
RepPardefaut = "C:\" ' A adapter

Fichier = Application.GetOpenFilename("Fichiers Excel (*.*), *.*", , "Sélectionner un fichier.")
If Fichier <> False Then
Application.ScreenUpdating = False
Workbooks.Open Fichier
Sheets("Feuil1").Cells.Copy ThisWorkbook.Sheets("Resultat").Range("A1")
ActiveWorkbook.Close
Application.ScreenUpdating = True
End If
' remise en place du répertoire par défaut
ChDrive "C:"
CurDir RepPardefaut
End Sub

Le fichier que je vais chercher sur le disque a toujours le même format, 29 caractère + date :

xxxxxxxxxxxxxxxxxxxxxxxxxxxxx26 09 2013.xls

Est-il possible d'extraire uniquement le texte date, le transformer en date et le coller dans la cellule A2 de ma feuille "Resultat et le copier vers le bas jusqu'à la dernière ligne ?

Merci de votre aide
 
Re : Extraire un texte du nom d'un fichier

Bonjour sonskriverez

Tu peux tester sur une feuille un code de ce type avec le nom du fichier en A1 pour faire le test:

Code:
Sub extrait_date()
Cells(2, 1) = CDate(Replace(Mid(Cells(1, 1), Len(Cells(1, 1)) - 13, 10), " ", "/"))
End Sub
 
Re : Extraire un texte du nom d'un fichier

Bonjour,

Voici une solution 🙂

Sub ext_date()
Dim lg_cell as integer
dim txt, annee, mois, jour as string

lg_cell = Len(Range("A1").Value)
txt = Mid(Range("A1").Value, 30, lg_cell - 33)
annee = Right(txt, 4)
mois = Mid(txt, 4, 2)
jour = Mid(txt, 1, 2)
Range("A2").FormulaR1C1Local = Format(jour & "/" & mois & "/" & annee, "dd/mm/yyyy")
Range("A2").Select
Selection.Copy
Range("A3").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
Range("A2").Select
Application.CutCopyMode = False
End Sub

BàT.

John

Ps: La solution de MJ13 est bcps plus courte que la mienne 😉 à chacun sa façon de faire ... 😉
 
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

Réponses
5
Affichages
247
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
174
Réponses
5
Affichages
479
Retour