Macro : Ouvrir uniquement fichier "*.xls", "*.xlsx", "*.xlsm" puis copier/sauvegarder

roidurif

XLDnaute Occasionnel
Bonjour,

La macro me permet d'ouvrir dans un repertoire les fichiers excel un à un, pour ensuite copier l'onglet et le sauvegarder dans un autre fichiers excel.

Sachant que j'ai plusieurs types de fichier excel à ouvrir ("*.xls", "*.xlsx", "*.xlsm"), je ne sais pas indiquer à la macro, d'ouvrir uniquement les fichiers ayant ces extentions "*.xls", "*.xlsx", "*.xlsm".

Merci de votre aide.

Code:
Sub Enregistrer_onglet()

Dim Chemin As String
Dim Fichier As String
Dim i As Long

Application.DisplayAlerts = False
Chemin = "C:\Traités\"
Fichier = Dir(Chemin & "*.xls", "*.xlsx", "*.xlsm")
Do While Fichier <> ""

For i = 1 To Sheets.Count
Workbooks.Open Filename:=Chemin & Fichier

Sheets("Tableau").Copy
TempFilePath = "C:\DATA\"
TempFileName = Workbooks(Fichier).Worksheets("Fiche").Range("F19") & "_" & Workbooks(Fichier).Worksheets("Fiche").Range("F7") & "_E_" & Format(Now, "yyyymmdd") & "_A_MAJ00_01"
FileExtStr = ".xlsx" '
ActiveWorkbook.SaveAs Filename:=TempFilePath & TempFileName & FileExtStr
ActiveWorkbook.Close

Workbooks(Fichier).Close SaveChanges:=False

Fichier = Dir
Next i
Loop
Application.DisplayAlerts = True
End Sub
 

C@thy

XLDnaute Barbatruc
Re : Macro : Ouvrir uniquement fichier "*.xls", "*.xlsx", "*.xlsm" puis copier/sauveg

Hello le fil, Pierrot,

j'ouvre un fichier .txt et je le transforme en colonnes (jusque làn tout va bien, merci l'enregistreur de macros...)
mais je veux le sauvegarder en : nom du fichier + .xlsx au lieu de .txt...
j'ai cherché avec left mais pas réussi...

Peut-être parmi vous y-a-t-il quelqu'un qui sait?

Un grand MERCI

C@thy
 

camarchepas

XLDnaute Barbatruc
Re : Macro : Ouvrir uniquement fichier "*.xls", "*.xlsx", "*.xlsm" puis copier/sauveg

C@thy,

J'ai pas bien décodé le besoin ,

comme ceci peut être alors :

NomFichier = Replace(NomFichier, ".txt", ".xlsx")
ActiveWorkbook.SaveAs Filename:="C:\temp\" & NomFichier, FileFormat:=xlWorkbookNormal, CreateBackup:=False
 

job75

XLDnaute Barbatruc
Re : Macro : Ouvrir uniquement fichier "*.xls", "*.xlsx", "*.xlsm" puis copier/sauveg

Bonjour C@thy, hello camarchepas,

Le fichier .txt doit avoir été ouvert par Workbooks.Open et être le classeur actif.

Alors exécute ce code :

Code:
Dim chemin$
chemin = ThisWorkbook.Path & "\" 'à adapter
'----
With ActiveWorkbook
  If LCase(Right(.Name, 4)) = ".txt" Then 'sécurité
    Application.DisplayAlerts = False 'si le fichier .xlsx existe déjà
    .SaveAs chemin & Left(.Name, Len(.Name) - 4), 51 '51 => format .xlsx
    .Close 'facultatif
  End If
End With
A+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 164
Messages
2 085 877
Membres
103 009
dernier inscrit
dede972