Création D'un Nouveau Fichier Excel

Bonjour le forum,

j'en appelle à vous, car j'ai un problème avec mon code, qui me renvoie une erreur d'éxécution 9: L'indice n'appartient pas à la sélection. Ce code a pour but de créer de nouveaux fichiers excel avec le nom des cellules de la colonne B de mon fichier (à partir de la ligne 4). La où il y a problème, c'est lorsque je veux copier des données d'un autre classeur dont je suis sur du chemin d'accès et du nom dans ce classeur que je viens de créer et dont le nom est la variable.

J'espère avoir été clair et que quelqu'un saura trouver mon erreur, car j'ai beau chercher, les noms de fichiers sont corrects, les emplacements aussi et la syntaxe normalement aussi.

Sub Nouveau_fichier_excel_numéro() Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim nom As String Dim NbLg As Long, Ligne As Long NbLg = Range("B" & Rows.Count).End(xlUp).Row Ligne = 4 While Ligne <= NbLg nom = Cells(Ligne, 2).Value 'On créer l'objet Excel Set xlApp = CreateObject("Excel.Application") 'On défini le nombre d'onglets (ici 5) xlApp.SheetsInNewWorkbook = 2 'On ajoute un classeur peut etre utilisé ici le format standard de classeur pour les tests d'étanchéité Set xlBook = xlApp.Workbooks.Add 'On créer l'objet onglet dans le nouveau classeur créé Set xlSheet = xlBook.Worksheets(1) 'On affecte un nom aux l'onglets xlSheet.Name = "Rapport" 'on libère l'objet onglet pour pouvoir en créer un nouveau ... etc Set xlSheet = Nothing Set xlSheet = xlBook.Worksheets(2) xlSheet.Name = "Février" '....... On donne un nom à chaque onglets 'On donne un nom au classeur avec le nom défini au dessus et le format 52 qui correspond à xlsm xlBook.SaveAs "C:\Users\jjelsch\Desktop\" & nom, FileFormat:=52 'On rend le classeur visible xlApp.Visible = True

L'erreur est sur cette ligne apparemment (suite du code):

Workbooks("C:\Users\XX\Desktop\XY.xlsm").Sheets(1).Range("B3:Q5").Copy (Workbooks("C:\Users\XX\Desktop\" & nom & ".xlsm").Sheets(1).Range("B3"))

Suite du code:

'On remet la propriété de l'application à 3 (par défaut) xlApp.SheetsInNewWorkbook = 3 'On ferme l'application xlApp.Quit Ligne = Ligne + 1 Wend End Sub

Merci d'avance et bonne journée à vous!!

Tag » Code Vba Pour Créer Un Fichier Excel