Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

blocage de copie par VBA de 3 feuilles de1 fichier sur 1 autre

4 réponses
Avatar
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

4 réponses

Avatar
anonymousA
Bonjour,

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+


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




Avatar
Antoine76
Je dois avouer que je n'avais pas penser à vérifier cela.
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" a écrit dans le message de news:
437ef38b$0$29183$
Bonjour,

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+


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






Avatar
anonymousA
La réponse est située dans le fait que ^parmi les 3 feuilles , tu as une
feuille graphique et qui n'est pas une worksheet. Donc plantage. Il
suffit de remplacer worksheets par sheets et ca fonctionnera.

A+




Je dois avouer que je n'avais pas penser à vérifier cela.
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" a écrit dans le message de news:
437ef38b$0$29183$

Bonjour,

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+



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











Avatar
Antoine76
Effectivement, je ne connaissais pas cette subtilité entre sheet et
worksheet
Merci à toi ami anonyme !
et merci ausi à Michdenis...
"anonymousA" a écrit dans le message de news:
437f32d8$0$29183$
La réponse est située dans le fait que ^parmi les 3 feuilles , tu as une
feuille graphique et qui n'est pas une worksheet. Donc plantage. Il
suffit de remplacer worksheets par sheets et ca fonctionnera.

A+




Je dois avouer que je n'avais pas penser à vérifier cela.
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" a écrit dans le message de news:
437ef38b$0$29183$

Bonjour,

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+



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