Erreur d'éxécution 1004

Emilie -  
 Utilisateur anonyme -
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

  1. Utilisateur anonyme
     
    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