Bonjour à tous, problème très simple mais incompréhension au final.
J'ai un certain nombre de feuilles, contigües, que je veux transférer du fichier en cours (jjj) vers un fichier cible. J'indique le numéro de la première et de la dernière feuille, fichier cible, etc.
Devant l'échec du transfert (ou alors réussite partielle ou même excel qui au bout d'un moment refuse de transférer mes feuilles même en manuel), j'en reviens à un problème plus basique : sélectionner simplement les feuilles via un variant.
Dans les codes ci-dessous, j'ai une version manuelle et littérale qui se sélectionne (test), puis son équivalent qui plante (macro2) et enfin une version (macro3) avec les numéros de feuilles, qui plante (tout comme le laisser supposer l'essai échoué de la 1ère ligne dans test).
Est-ce normal, y'a-t-il une erreur de syntaxe ?
Bien sûr la sélection n'est pas une fin en soi (j'ai aperçu d'autres codes), c'est le transfert qui m'intéresse.
Les 2 fichiers : http://cjoint.com/?kBjDfkjQlV
J'ai un certain nombre de feuilles, contigües, que je veux transférer du fichier en cours (jjj) vers un fichier cible. J'indique le numéro de la première et de la dernière feuille, fichier cible, etc.
Devant l'échec du transfert (ou alors réussite partielle ou même excel qui au bout d'un moment refuse de transférer mes feuilles même en manuel), j'en reviens à un problème plus basique : sélectionner simplement les feuilles via un variant.
Dans les codes ci-dessous, j'ai une version manuelle et littérale qui se sélectionne (test), puis son équivalent qui plante (macro2) et enfin une version (macro3) avec les numéros de feuilles, qui plante (tout comme le laisser supposer l'essai échoué de la 1ère ligne dans test).
Est-ce normal, y'a-t-il une erreur de syntaxe ?
Bien sûr la sélection n'est pas une fin en soi (j'ai aperçu d'autres codes), c'est le transfert qui m'intéresse.
Les 2 fichiers : http://cjoint.com/?kBjDfkjQlV
Code:
Public Sub test()
'Sheets(Array(Sheets(2), Sheets(3))).Select
Sheets(Array("Sheet2", "Sheet3")).Select
End Sub
Sub Macro2()
'avec les noms exacts
Dim Liste As Variant, Premier As Integer, Dernier As Integer
Premier = Sheets("Coo").Cells(4, 2).Value
Dernier = Sheets("Coo").Cells(5, 2).Value
Liste = Sheets(Premier).Name
For i = Premier + 1 To Dernier
Liste = Liste & Chr(34) & "," & Chr(34) & Sheets(i).Name
Next i
Sheets(Array(Liste)).Select
Sheets(Array(Liste)).Move Before:=Workbooks("hhhh.xls").Sheets(3)
End Sub
Sub Macro3()
Dim Liste As Variant, Premier As Integer, Dernier As Integer
'avec les chiffres
Premier = Sheets("Coo").Cells(4, 2).Value
Dernier = Sheets("Coo").Cells(5, 2).Value
Liste = "Sheets(" & Premier & ")"
For i = Premier + 1 To Dernier
Liste = Liste & "," & "Sheets(" & i & ")"
Next i
Sheets(Liste).Select
Sheets(Array(Liste)).Move Before:=Workbooks("hhhh.xls").Sheets(3)
End Sub
Sub Macro1()
Sheets(Array("Janvier", "Février")).Select
Sheets("Ianuarie").Activate
Sheets(Array("Janvier", "Février")).Move Before:=Workbooks("hhhh.xls").Sheets(7)
End Sub