Erreur d'éxécution 1004
Emilie
-
Utilisateur anonyme -
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
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
A voir également:
- Erreur d'éxécution 1004
- Erreur t32 ✓ - Forum Livebox
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur 0x80070643 - Accueil - Windows
- Corriger l'erreur 0x80070643 de la mise à jour KB5034441 de Windows 10 - Accueil - Windows
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
1 réponse
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
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