XL 2013 erreur 91 pour un graphique

babalouche

XLDnaute Nouveau
Bonjour le forum,

Je dois faire une macro en vba pour faire des graphiques a partir de tableau contenu dans des fichiers.
mon fichier qui contient la macro agit sur le fichier contenant le tableau et doit créer une feuille sur celui ci pour y mettre les graphiques. Seulement j'ai une erreur 91 quand je commence à faire les graphiques.
Les lignes où sont l'erreur sont en gras ( comme j'ai un if j'ai 2 fois l'erreur ).
Le fichier test1_batiste1.xlsm est le fichier de la macro

Sub Workbook_Open()

Dim classeur As String
Dim Wkb As Workbook
Dim colonne As Integer
Dim ligne As Integer
Dim colonne_date As Integer
Dim compteur As Integer

Windows("test1_batiste1.xlsm").Activate

classeur = ""
For Each Wkb In Application.Workbooks
If Not Wkb Is ThisWorkbook And LCase(Wkb.Name) <> "test1_batiste1.xlsm" Then
classeur = Wkb.Name
Exit For
End If
Next Wkb

Workbooks(classeur).Activate

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

Workbooks(classeur).Activate
Sheets(1).Activate
Workbooks(classeur).Sheets.Add After:=ActiveSheet

If (colonne_date = 1) Or (colonne_date > colonne) Then
For i = 1 To colonne - 1
Workbooks(classeur).ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SeriesCollection.NewSeries.Workbooks (classeur)
ActiveChart.FullSeriesCollection(1).Values = Workbooks(classeur).Sheets(1).Range(Workbooks(classeur).Sheets(1).Cells(2, i + 1), Workbooks(classeur).Sheets(1).Cells(ligne, i + 1))
ActiveChart.FullSeriesCollection(1).Name = Workbooks(classeur).Sheets(1).Cells(1, i + 1)
ActiveChart.FullSeriesCollection(1).XValues = Workbooks(classeur).Sheets(1).Range(Workbooks(classeur).Sheets(1).Cells(2, 1), Workbooks(classeur).Sheets(1).Cells(ligne, 1))
Workbooks(classeur).ActiveSheet.Shapes("Graphique " & i).IncrementLeft -230
Workbooks(classeur).ActiveSheet.Shapes("Graphique " & i).IncrementTop -50 + 300 * (i - 1)
Next i
Else
For i = 1 To colonne
Workbooks(classeur).ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
ActiveChart.SeriesCollection.NewSeries.Workbooks (classeur)
ActiveChart.FullSeriesCollection(1).Values = Workbooks(classeur).Worksheets(1).Range(Workbooks(classeur).Sheets(1).Cells(2, i), Workbooks(classeur).Sheets(1).Cells(ligne, i))
ActiveChart.FullSeriesCollection(1).Name = Workbooks(classeur).Worksheets(1).Cells(1, i)
ActiveChart.FullSeriesCollection(1).XValues = Workbooks(classeur).Worksheets(1).Range(Workbooks(classeur).Sheets(1).Cells(2, colonne_date), Workbooks(classeur).Sheets(1).Cells(ligne, colonne_date))
Workbooks(classeur).ActiveSheet.Shapes("Graphique " & cc).IncrementLeft -230
Workbooks(classeur).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
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
C'est que je n'y avais sans doute pas compris grand chose à votre ancien code. Mais à un moment vous avez dans ColDate le numéro de colonne de la 1ère commençant par une date. Après, vous pouvez déterminer comme vous voulez des numéros de colonne de début, de fin et de valeurs x avant de créer votre(vos) graphique(s).
 

babalouche

XLDnaute Nouveau
c'est bon j'ai réussi merci beaucoup Dranreb voilà le code modifié
Set RngTit = RngDon.Rows(1)
Set RngDon = RngDon.Rows(2).Resize(RngDon.Rows.Count - 1)
For Col = 1 To RngTit.Columns.Count
If Col <> ColDate Then
Set Cht = Wbk.Charts.Add
Set Sér = Cht.SeriesCollection.NewSeries
Sér.Name = RngTit.Columns(Col)
Sér.XValues = RngDon.Columns(ColDate)
Sér.Values = RngDon.Columns(Col): End If: Next Col
End Sub
j'ai juste changé de place cette ligne de code
 

babalouche

XLDnaute Nouveau
Dernière question par rapport aux graphiques on peut appeler d'autres types de graphiques ( courbe,camembert,...) ? Je cherche sur internet mais je trouve aucun code. Si vous en connaissez quelques et que je pourrais apprendre ca me servirait pour la suite.
Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 299
Messages
2 086 991
Membres
103 422
dernier inscrit
victus5