Erreur d'éxécution 1004

Fermé
Emilie - Modifié par Emilie le 25/07/2011 à 09:50
 Utilisateur anonyme - 25 juil. 2011 à 13:26
Bonjour,

je fais une petite macro excel permettant de déplacer mes graphiques de mes différentes feuilles dans une seule feuille mais j'ai l'erreur suivante :

Erreur d'execution 1004 "Erreur définie par l'application ou par l'objet"


voici mon code :

Sub miseenpage()

Workbooks("Macro SCE2 amont.xlsm").Worksheets("Graphs").DrawingObjects.Delete

Dim der As Long
Dim j As Integer
Dim i As Integer
der = Sheets.Count

j = 1
For i = 2 To der - 9

Sheets(i).Select
Dim nom As String

nom = ActiveSheet.Cells(1, 2)



ActiveSheet.ChartObjects(nom).Activate
ActiveChart.ChartArea.Copy

Sheets("Graphs").Cells(j, 1).Select
ActiveSheet.Paste

j = j + 15

Next i

For i = der - 9 To der - 3

Sheets(i).Select

ActiveSheet.ChartObjects(nom).Activate
ActiveChart.ChartArea.Copy

Sheets("Graphs").Cells(j, 1).Select
ActiveSheet.Paste

j = j + 15

Next i


End Sub


Merci de m'aider

1 réponse

Utilisateur anonyme
25 juil. 2011 à 13:26
Bonjour,

Dans ta deuxième boucle, lors du changement de feuille,
la valeur de ta variable [nom] n'est pas affecté (modifié).

Et pourtant il y a le même balayage sur tes feuilles que
dans la première boucle, ce ne seait pas suprenant qu'il
y ait débordement à cet endroit !

Sheets(i).Select
ActiveSheet.ChartObjects(nom).Activate

devrait se lire :

Sheets(i).Select
nom = ActiveSheet.Cells(1, 2).Value
ActiveSheet.ChartObjects(nom).Activate

de plus, il serait souhaitable que tu sorte le dimensionnement
de la variable [nom] de ta boucle. En ce qui a trait au VBA, pour
plus de lisibilité, je recommande de déclarer toutes tes variables
en début de procédure :

Dim der As Long
Dim j As Long, i As Long
Dim nom As String

autre point, j est utilisé pour définir une ligne :

Sheets("Graphs").Cells(j, 1).Select

les propriétés des valeurs de lignes et de colonnes sont
définis comme étant des [Long]. Il serait aussi souhaitable
que tu t'habitue à utliser des variables de type [Long].

ActiveCell.Row de type [Long]
ActiveCell.Column de type [Long]

Cdt

Lupin
0