blocage de copie par VBA de 3 feuilles de1 fichier sur 1 autre
Le
Antoine76
Bonjour,
J'ai une petite difficulté que je n'arrive pas à résoudre en VBA sur Excel
2000.
But de la macro : j'essaie de transformer un fichier à feuille unique
(contenant les effectifs d'une entreprise), en fichier à 4 feuilles par
copiage de 3 feuilles (permettant d'obtenir différentes informations
statistiques et démographiques) provenant d'un autre fichier .
Plus concrètement, je pars d'un fichier "Lambda" parmi env. 200 fichiers du
même type (cad à 1 seule feuille) qui est ouvert ; à la demande, je veux
pouvoir activer une macro qui ouvrira un fichier différent "Noemie de base"
(téléchargeable ici : http://cjoint.com/?ltjAmXa5qn , et où j'ai
symboliquement mis 1 salarié dans la feuille salarié pour "fixer" les
idées), et dont la 1ère feuille (salariés) est à semblable à celle des 200
fichiers à 1 feuille (sauf que cette 1ère feuille ne contient normalement
aucun salarié - société fictive à effectif zéro !), mais qui possède en
plus, 3 autres feuilles de calcul qui, dans leur formules font référence à
des cellules de la 1ére feuille.
Lorsque la macro est lancée, elle ouvre donc le fichier à 4 feuilles, et
copie les 3 feuilles de calcul sur le fichier Lambda, qui passe alors de 1 à
4 feuilles, donnant ainsi tous les renseignements complémentaires souhaités.
Après plusieurs jours, lorsqu'il n'y a plus à exploiter les 3 feuilles
supplémentaires, une autre macro supprimera simplement les 3 feuilles
ajoutées.
J'ai déjà posé une 1ère question sur le forum et Michdenis m'a envoyé dont
un extrait est ci-dessous :
Dim Wk As Workbook
Dim Chemin As String
Chemin = ActiveWorkbook.Path
Set Wk = ActiveWorkbook
Workbooks.Open Filename:=Chemin & "\Noemie de base.xls"
With Workbooks("Noemie de base.xls")
With .Worksheets(Array("Statistiques", "Etat Démographique", "Courbe
des âges"))
.Copy Before:=Wk.Sheets(1)
End With
End With
Set Wk = Nothing
Mais, lorque je lance la macro, si le fichier à 4 feuilles s'ouvre bien, la
macro se bloque, le débogeur se cale sur la ligne "with
.worksheets(Array" et affiche : erreur d'exécutiuon 9 - l'indice
n'appartient pas à la sélection, et aucune feuille n'est alors copiée.
Je ne sais pas pourquoi !
Je ne sais si quelqu'un a une petite idée sur la question ?
Merci
Antoine
J'ai une petite difficulté que je n'arrive pas à résoudre en VBA sur Excel
2000.
But de la macro : j'essaie de transformer un fichier à feuille unique
(contenant les effectifs d'une entreprise), en fichier à 4 feuilles par
copiage de 3 feuilles (permettant d'obtenir différentes informations
statistiques et démographiques) provenant d'un autre fichier .
Plus concrètement, je pars d'un fichier "Lambda" parmi env. 200 fichiers du
même type (cad à 1 seule feuille) qui est ouvert ; à la demande, je veux
pouvoir activer une macro qui ouvrira un fichier différent "Noemie de base"
(téléchargeable ici : http://cjoint.com/?ltjAmXa5qn , et où j'ai
symboliquement mis 1 salarié dans la feuille salarié pour "fixer" les
idées), et dont la 1ère feuille (salariés) est à semblable à celle des 200
fichiers à 1 feuille (sauf que cette 1ère feuille ne contient normalement
aucun salarié - société fictive à effectif zéro !), mais qui possède en
plus, 3 autres feuilles de calcul qui, dans leur formules font référence à
des cellules de la 1ére feuille.
Lorsque la macro est lancée, elle ouvre donc le fichier à 4 feuilles, et
copie les 3 feuilles de calcul sur le fichier Lambda, qui passe alors de 1 à
4 feuilles, donnant ainsi tous les renseignements complémentaires souhaités.
Après plusieurs jours, lorsqu'il n'y a plus à exploiter les 3 feuilles
supplémentaires, une autre macro supprimera simplement les 3 feuilles
ajoutées.
J'ai déjà posé une 1ère question sur le forum et Michdenis m'a envoyé dont
un extrait est ci-dessous :
Dim Wk As Workbook
Dim Chemin As String
Chemin = ActiveWorkbook.Path
Set Wk = ActiveWorkbook
Workbooks.Open Filename:=Chemin & "\Noemie de base.xls"
With Workbooks("Noemie de base.xls")
With .Worksheets(Array("Statistiques", "Etat Démographique", "Courbe
des âges"))
.Copy Before:=Wk.Sheets(1)
End With
End With
Set Wk = Nothing
Mais, lorque je lance la macro, si le fichier à 4 feuilles s'ouvre bien, la
macro se bloque, le débogeur se cale sur la ligne "with
.worksheets(Array" et affiche : erreur d'exécutiuon 9 - l'indice
n'appartient pas à la sélection, et aucune feuille n'est alors copiée.
Je ne sais pas pourquoi !
Je ne sais si quelqu'un a une petite idée sur la question ?
Merci
Antoine

Poser une question


C'est sans doute qu'il y a une erreur dans l'écriture ( l'orthographe ou
le nombre d'espaces) dans les items du Array("Statistiques", "Etat
Démographique", "Courbe des âges") ou qu'il y a une différence
orthographique entre ces items et la réalité des noms de feuilles de ton
classeur.
Pour le reste , la syntaxe est evidemment correcte, mais qui en aurait
douté !!!
A+
Malheureusement pour moi (mais honneur à Michdenis - de toute façon, Errare
Humanim est !) tant l'ortjographe que les espaces sont OK !
Mystère...
Merci à toi Anonymous.
(mias toujours en stand-by)!
Antoine
"anonymousA" 437ef38b$0$29183$
feuille graphique et qui n'est pas une worksheet. Donc plantage. Il
suffit de remplacer worksheets par sheets et ca fonctionnera.
A+
worksheet
Merci à toi ami anonyme !
et merci ausi à Michdenis...
"anonymousA" 437f32d8$0$29183$