Hello,

voilà une question pour t'occuper ouskel (comme promis)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
    For i = 1 To Responsivness.TextBox9
 
        Workbooks.Open CheminFichier & "\" & Responsivness.TextBox7 & "\" & _
        Responsivness.TextBox8 & ") " & NomsMois(Responsivness.TextBox8) & "\responsivness" & i
        Set FicTemp = ActiveWorkbook
        ThisWorkbook.Sheets.Add After:=ThisWorkbook.Worksheets(Worksheets.Count)
        ThisWorkbook.ActiveSheet.Name = "Copie" & i
        FicTemp.Sheets(1).Copy ThisWorkbook.Sheets("Copie" & i)
        FicTemp.Close
    Next
Je voudrais
  1. Ajouter une feuille dans mon fichier où s'execute la macro
  2. copier les données d'une feuille d'un autre classeur
  3. fermer l'autre classeur
là ca m'ajoute bien une feuille "Copie1" mais aussi une feuille "Feuil1 (2)" où sont copiés les données (copie1 restant vierge)

j'ai tenté aussi de faire comme ca car je me de que le probleme vient de cette ligne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
FicTemp.Sheets(1).Copy ThisWorkbook.Sheets("Copie" & i)
donc j'ai modifié mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
    For i = 1 To Responsivness.TextBox9
 
        Workbooks.Open CheminFichier & "\" & Responsivness.TextBox7 & "\" & _
        Responsivness.TextBox8 & ") " & NomsMois(Responsivness.TextBox8) & "\responsivness" & i
        Set FicTemp = ActiveWorkbook
        ThisWorkbook.Sheets.Add After:=ThisWorkbook.Worksheets(Worksheets.Count)
        ThisWorkbook.ActiveSheet.Name = "Copie" & i
        FicTemp.Sheets(1).Range(Sheets(1).Cells(1, 1), Sheets(1).Cells(65536, 256)).Copy _
        ThisWorkbook.Sheets("Copie" & i).Range(Sheets("Copie" & i).Cells(1, 1), Sheets("Copie" & i).Cells(65536, 256))
        FicTemp.Close
    Next
mais là j'ai "l'indice n'appartient pas à la selection" à la ligne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
        FicTemp.Sheets(1).Range(Sheets(1).Cells(1, 1), Sheets(1).Cells(65536, 256)).Copy _
        ThisWorkbook.Sheets("Copie" & i).Range(Sheets("Copie" & i).Cells(1, 1), Sheets("Copie" & i).Cells(65536, 256))
mais je comprend pas trop à quel niveau de la ligne vient le souci

et si quelqu'un pourrait me donner une autre facon d'ecrire

Code : Sélectionner tout - Visualiser dans une fenêtre à part
ThisWorkbook.Sheets("Copie" & i).Range(Sheets("Copie" & i).Cells(1, 1), Sheets("Copie" & i).Cells(65536, 256))
en plus court j'apprecierai aussi