Bonjour,
Je dois créer une macro qui fait des graphiques d'un tableau de lignes et colonnes variables dès l'ouverture d'un fichier contenant un tableau ( du moins des données). Quand j'utilise la macro, où le code est sur la feuille en question, manuellement avec un bouton elle marche mais quand mon fichier avec le tableau s'ouvre ( le code est aussi dans le thisworkbook ) j'obtiens une erreur d'exécution 1004 : erreur définie par l'application ou l'objet.
voici mon code sur le thisworkbook qui est le même que sur la feuille du tableau :
Private Sub Workbook_Open()
Dim colonne As Integer
Dim ligne As Integer
Dim colonne_date As Integer
Dim compteur As Integer
colonne = WorksheetFunction.CountA(Range("A1:BB1"))
ligne = WorksheetFunction.CountA(Range("A1:A1000"))
colonne_date = 1
compteur = 1
While (IsDate(Cells(2, colonne_date)) <> True And colonne_date < colonne + 2)
colonne_date = colonne_date + 1
Wend
Sheets.Add After:=ActiveSheet
If (colonne_date = 1) Or (colonne_date > colonne) Then
For i = 1 To colonne - 1
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(1).Values = Sheets(1).Range(Cells(2, i + 1), Cells(ligne, i + 1))
ActiveChart.FullSeriesCollection(1).Name = Sheets(1).Cells(1, i + 1)
ActiveChart.FullSeriesCollection(1).XValues = Sheets(1).Range(Cells(2, 1), Cells(ligne, 1))
ActiveSheet.Shapes("Graphique " & i).IncrementLeft -230
ActiveSheet.Shapes("Graphique " & i).IncrementTop -50 + 300 * (i - 1)
Next i
Else
For i = 1 To colonne
ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(1).Values = Sheets(1).Range(Cells(2, i), Cells(ligne, i))
ActiveChart.FullSeriesCollection(1).Name = Sheets(1).Cells(1, i)
ActiveChart.FullSeriesCollection(1).XValues = Sheets(1).Range(Cells(2, colonne_date), Cells(ligne, colonne_date))
ActiveSheet.Shapes("Graphique " & cc).IncrementLeft -230
ActiveSheet.Shapes("Graphique " & cc).IncrementTop -50 + 300 * (compteur - 1)
If colonne_date - 1 = i Then
i = i + 1
End If
compteur = compteur + 1
Next i
End If
End Sub
Les lignes en question qui affichent l'erreur sont en gras.
Merci de votre aide