urgent problème avec la macro

malouve

XLDnaute Nouveau
Bonjour,

j'ai tenté de faire une macro qui ouvre un fichier txt ( qui contient que des valeurs) en affiche des graphes
Mon problème c'est que le fichier en s'ouvrant ne reconnait pas les valeurs comme des nombres , ensuite je pécifie bien les cellules à prendre pour tracer les courbes mais il ne me le prend pas , je ne comprends pas à quoi cela est dû.

voico le code utilisé

Sub Macro3()
Dim l As Long
Dim i As Long
Dim Nom_fichier As String, Stockage As String
'définir le répertoire de stockage des fichiers
Stockage = "C:\Documents and Settings\lme00088\Desktop\"
'demande le numéro d'article
Nom_fichier = Application.InputBox(prompt:="Entrez le chemin du fichier", Type:=2)
If Nom_fichier > "" Then
'teste l'existence du fichier avant de l'ouvrir
If Not (Dir$(Stockage & Nom_fichier & ".txt", vbDirectory) = "") Then
Workbooks.Open Filename:=Stockage & Nom_fichier & ".txt"
Else
MsgBox "Fichier " & Stockage & Nom_fichier & ".txt" & " non trouvé"
End If
End If

'pour compter le nombre de lignes
l = Cells.SpecialCells(xlCellTypeLastCell).Row
Range("C" & 1 & "").Select
Range("C1") = l

'For i = 1 To l 'boucle de ligne
'If Range("A" & i).Value > 0.001 Then Range("B" & i).Value = Range("A" & i).Value Else Range("B" & i).Value = 0
'Next -------------- process trop long/ le faire manuellement---------------------

' creation du 1er graphique
Charts.Add
With ActiveChart
.ChartType = xlColumnClustered
.SetSourceData Source:=Sheets("Nom_fichier").Range("A1:A11999") ---le problème se situe à ce niveau ---erro9 "out of range"
.Location Where:=xlLocationAsNewSheet, Name:="courbe1"
End With

' creation du 2eme graphique
Charts.Add
With ActiveChart
.ChartType = xlColumnClustered
.SetSourceData Source:=Sheets("Nom_Fichier").Range("A12000:A23999")
.Location Where:=xlLocationAsObject, Name:="courbe1"
End With

' creation du 3eme graphique
Charts.Add
With ActiveChart
.ChartType = xlColumnClustered
.SetSourceData Source:=Sheets("Nom_Fichier").Range("A24000:A35999")
.Location Where:=xlLocationAsObject, Name:="courbe1"
End With


With Sheets("courbe1")
.Shapes("chart 1").Left = 0
.Shapes("chart 1").Top = 0
.Shapes("chart 1").Width = 325
.Shapes("chart 1").Height = 225
.Shapes("chart 2").Top = 0
.Shapes("chart 2").Left = .Shapes("Chart 1").Width + 5
' .Shapes("chart 3").Top = .Shapes("Chart 1").Height + 5
' .Shapes("chart 3").Left = 0
' .Shapes("4mn").Top = .Shapes("Chart 2").Height + 5
' .Shapes("4mn").Left = .Shapes("Chart 3").Width + 5
End With

End Sub

J'aimerais aussi savoir comment faire un bouton permanent afin d'activer la macro au lieu de le lancer du code comme je le fais actuellement

Je vous remercie pour vos réponses
 

MECEQI

XLDnaute Nouveau
Re : urgent problème avec la macro

Bonjour,
Essayer, plus souple ,(amonavis, l'Egyptien)

'ActiveSheet.ChartObjects.Add(POSGAUCHE,POSSOMMET,LARGEUR, HAUTEUR).Name = ("nom")

ActiveSheet.ChartObjects.Add(0, 0, 720, 450).Name = ("Graphique 1")
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets("Feuilx").Range(Cells(1, 5), Cells(100, 5))' ou autres
Ce qui est mieux , pour ne pas se prendre les pieds dans le tapis, par la suite quand on veut le localiser

ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Values = Sheets("Feillx").Range(Cells(1, 8), Cells(100, 8)) ...Puis 3, puis 4.....
Pour rajouter une tendance et apres tu peut facilement faire des......

ActiveChart.Axes(xlCategory).AxisBetweenCategories = False


ActiveChart.PlotArea.Select 'ZONE GRAPHE

With Selection
.Top = 0 '356 'POSZONEY - HAUTZON
.Left = 0 '106 'POSXZONE
.Height = 450 'HAUTZON
.Width = 750 'LARGZONE
End With

ActiveChart.Legend.Select
Selection.Delete
ActiveChart.SeriesCollection(1).Select
Selection.MarkerStyle = -4142
ActiveChart.SeriesCollection(2).Select
Selection.MarkerStyle = -4142
ActiveChart.SeriesCollection(3).Select
Selection.MarkerStyle = -4142
ActiveChart.SeriesCollection(4).Select
Selection.MarkerStyle = -4142
ActiveChart.SeriesCollection(5).Select
Selection.MarkerStyle = -4142

ActiveChart.PlotArea.Select
ActiveChart.SeriesCollection(1).Select
With Selection.Border
.ColorIndex = 4
.Weight = 3 'xlThin
.LineStyle = xlContinuous
End With
 

Discussions similaires

Statistiques des forums

Discussions
312 046
Messages
2 084 843
Membres
102 686
dernier inscrit
Franck6950