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
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