Ouvrir un fichier le modifier et le refermer

wug

XLDnaute Nouveau
Salut à tous,

J'ai un vingtaine de classeur excel dans un répertoire, j'aimerais les ouvrir modifier le noms de l'onglet( il n'y en a que un) et les refermer en les enregistrant de cette manière dans le même répértoire:nomedel'onglet_année.xls
Pour l'année j'aimerai juste les deux dernier chiffre de L'année par exemple 1945 on aurait _45.
l'année on peut la trouver dans la cellule A4 de chaque classeur sous ce format:
exemple:
2006.01.01. 00:00

Comme je m'y connais pas très bien en vba je sollicite votre aide

merci
 

mromain

XLDnaute Barbatruc
Re : Ouvrir un fichier le modifier et le refermer

Bonjour wug,

Voici un essai par macro (non testé, vu qu'on a pas de fichier exemple..).
Il faut adapter le chemin du dossier contenant le fichiers à modifier ainsi que le nom à donner à leurs onglet.
VB:
Sub RenommerOngletEtFichier()
Dim curFile As Object
Dim curWbk As Excel.Workbook
Dim nouveauNomOnglet As String, nouveauNomClasseur As String, pathDossier As String

    'chemin du dossier contenant les fichier à renommer
    pathDossier = "C:\test"
    'nom à donner au onglets
    nouveauNomOnglet = "nouveauNomOnglet"
    
    'boucler sur chaque fichier du dossier
    For Each curFile In CreateObject("Scripting.FileSystemObject").GetFolder(pathDossier).Files
        
        'si il s'agit bien d'un fichier excel
        If UCase(Right(curFile.Name, 3)) = "XLS" Then
            
            'ouvrir le fichier
            Set curWbk = Application.Workbooks.Open(curFile.Path)
            
            'modifier le nom de l'onglet
            curWbk.Sheets(1).Name = nouveauNomOnglet
            
            'générer le nouveau nom du classeur
            nouveauNomClasseur = curWbk.Path & "\" & nouveauNomOnglet & "_" & Mid(curWbk.Sheets(1).Range("A4").Text, 3, 2)
            
            'fermer le classeur en enregistrant les modification
            curWbk.Close True
            
            'renommer le fichier avec le nouveau nom
            Name curFile.Path As nouveauNomClasseur
            
        End If
    Next curFile
    
End Sub
a+
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 823
dernier inscrit
ben talha redouane