Bonjour,
Je suis nouvelle sur ce forum et j'avoue ne pas être familière avec comment un forum fonctionne.
En tout cas, voici mon problème:
J'ai enregistré une macro que j'ai ensuite modifiée à mes besoins. En résumé, cette macro ouvre un autre fichier Excel (qui contient des données), enregistre sous un nouveau nom, formatte les données, insère une nouvelle feuille puis cré un graphique.
Quand j'exécute la macro à l'endroit où elle a été enregistré la première fois, tout fonctionne.
Quand je la met dans Workbook_open, on dirait que les références sont mêlées: FichierMacro ouvre bel et bien FichierData (noms fictifs de fichiers). Ensuite le FichierData est renommé FichierGraphique puis les données sont formattée et une nouvelle page est insérée. Jusque là tout va bien. Cependant, quand je crée le graphique, au lieu de le mettre dans la feuille que je viens de créer dans FichierGraphique, il la met dans la feuille de FichierMacro!!!
Pourtant tout fonctionne bien quand je l'exécute manuellement...
Pouvez-vous m'aider? Les références ne fonctionnent plus à partir du moment où j'utilise ActiveSheet.... J'ai essayé d'ajouter un Activate mais cela ne fonctionne pas plus (je ne l'avais pas dans la version manuelle de la macro et cela fonctionnait)
Merci de m'aider je patauge un peu.
Marie
Je suis nouvelle sur ce forum et j'avoue ne pas être familière avec comment un forum fonctionne.
En tout cas, voici mon problème:
J'ai enregistré une macro que j'ai ensuite modifiée à mes besoins. En résumé, cette macro ouvre un autre fichier Excel (qui contient des données), enregistre sous un nouveau nom, formatte les données, insère une nouvelle feuille puis cré un graphique.
Quand j'exécute la macro à l'endroit où elle a été enregistré la première fois, tout fonctionne.
Quand je la met dans Workbook_open, on dirait que les références sont mêlées: FichierMacro ouvre bel et bien FichierData (noms fictifs de fichiers). Ensuite le FichierData est renommé FichierGraphique puis les données sont formattée et une nouvelle page est insérée. Jusque là tout va bien. Cependant, quand je crée le graphique, au lieu de le mettre dans la feuille que je viens de créer dans FichierGraphique, il la met dans la feuille de FichierMacro!!!
Pourtant tout fonctionne bien quand je l'exécute manuellement...
Pouvez-vous m'aider? Les références ne fonctionnent plus à partir du moment où j'utilise ActiveSheet.... J'ai essayé d'ajouter un Activate mais cela ne fonctionne pas plus (je ne l'avais pas dans la version manuelle de la macro et cela fonctionnait)
Code:
Dim sFichier As String
Dim sDate As String
Dim sAnnee As String
Dim sMois As String
Dim sJour As String
Dim sPath As String
sPath = "C:\testexcel\"
sDate = Date - 1
sAnnee = Year(sDate)
sMois = Month(sDate)
If Len(sMois) < 2 Then
sMois = "0" & sMois
End If
sJour = Day(sDate)
If Len(sJour) < 2 Then
sMois = "0" & sJour
End If
'Creation nom de fichiers
sFichier = Right(sAnnee, 2) & sMois & sJour & "_essai"
sFichierNouv = Right(sAnnee, 2) & sMois & sJour & "Graph_essai"
'Vérifie si fichier existe
If FileFolderExists(sPath & sFichier & ".xls") Then
'Ouvre fichier avec les données
Workbooks.Open Filename:=sPath & sFichier & ".xls"
'Renomme le fichier
ActiveWorkbook.SaveAs Filename:= _
sPath & sFichierNouv & ".xls", FileFormat:=xlExcel8, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
), Array(14, 1), Array(15, 1)), TrailingMinusNumbers:=True
Workbooks(sFichierNouv & ".xls").Activate
ActiveWorkbook.CheckCompatibility = False
'Creation du graphique
ActiveWorkbook.Sheets.Add.Name = "Graphique"
'ActiveSheet.Name = "Graphique"
ActiveWorkbook.Sheets("Graphique").Activate
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatterLines
ActiveChart.HasTitle = True
ActiveChart.ChartTitle.Text = sJour & "-" & sMois & "-" & sAnnee
'Ajout courbe 1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = "=""Courbe 1 (%)"""
ActiveChart.SeriesCollection(1).XValues = _
"='" & sFichier & "'!$B$7:$B$12"
ActiveChart.SeriesCollection(1).Values = _
"='" & sFichier & "'!$C$7:$C$12"
'Ajout courbe 2
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Name = "=""Courbe 2"""
ActiveChart.SeriesCollection(2).XValues = _
"='" & sFichier & "'!$B$7:$B$12"
ActiveChart.SeriesCollection(2).Values = _
"='" & sFichier & "'!$D$7:$D$12"
'Ajout courbe 3
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(3).Name = "=""Courbe3"""
ActiveChart.SeriesCollection(3).XValues = _
"='" & sFichier & "'!$B$7:$B$12"
ActiveChart.SeriesCollection(3).Values = _
"='" & sFichier & "'!$E$7:$E$12"
'Ajout courbe 4
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(4).Name = "=""Courbe 4"""
ActiveChart.SeriesCollection(4).XValues = _
"='" & sFichier & "'!$B$7:$B$12"
ActiveChart.SeriesCollection(4).Values = _
"='" & sFichier & "'!$G$7:$G$12"
'Workbooks(sFichierNouv & ".xls").Activate
'ActiveWorkbook.Save
'ActiveWorkbook.Close
'Application.Quit
End If
Merci de m'aider je patauge un peu.
Marie