Aide pour la rédaction s'une macro

Aiker

XLDnaute Nouveau
Bonjour,
Je cherche de l'aide pour réaliser une macro dans le cadre d'un enseignement à l'université.
Cette macro a pour but d'ouvrir un fichier .cfc, de le mettre sous forme de tableau utilisable puis de faire une courbe pour en extraire les valeurs.

Je réussi quelques points de cette macro mais d'autre me pose des soucis :
- tout d'abord j'aimerais réaliser une macro qui me permettent d'aller chercher le fichier voulu dans l'ordinateur, le problème c'est que je ne connais pas le chemin qui permet d'aller jusqu'au fichier dans la mesure où je ne sais pas dans quel dossier ces fichiers se trouvent dans l'ordinateur du prof qui le corrigera.
- le deuxième point se situe après avoir tracé la courbe, j'aimerai que la macro supprime les données aberrante de la courbe, c'est à dire les valeurs au début et à la fin de la courbe qui ne suivent pas le profil général de la courbe.
-Le dernier point serait d'avoir, une fois que tout ceci est fait et que j'ai pu obtenir une courbe de tendance de mon graphique, une feuille qui me permet d'afficher des valeurs que je ressors de l'équation de la courbe de tendance.

Merci d'avance pour votre aide.

Bonne soirée

Aiker

PS: je ne sais pas si je suis dans la bonne section
 

JNP

XLDnaute Barbatruc
Re : Aide pour la rédaction s'une macro

Bonsoir Aiker et bienvenue :),
Après quelques recherches sur le web, j'ai trouvé que .cfc venait de ColdFusion et ressemblait à de l'HTML, mais sorti de ça, sans un fichier exemple, nous aurons du mal à te renseigner :rolleyes:...
Si tu as une localisation par rapport au fichier Excel et sa macro, ThisWorkbook.Path te donne le chemin d'accès du fichier Excel, de là, il doit être possible de trouver le chemin vers le CFC :D.
La suppression des premières et dernières valeurs vont dépendre du premier point ;)...
Pour ton dernier point, on verra quand on en sera là :p...
Bonne soirée :cool:
 

Aiker

XLDnaute Nouveau
Re : Aide pour la rédaction s'une macro

Bonjour,
Merci d'avoir répondu aussi vite. Je m'excuse de ne pas être revenu plus vite mais la semaine dernière était conscrée aux exams...(grrr:()
Je joins un fichier .cfc
Ce qui serait bien en fait dans la macro, ce serait que l'utilisateur n'ait qu'à entrer le numéro du fichier, dans ce cas 1536, dans une case du fichier excel contenant la macro, et qu'ensuite en appuyant sur le bouton de lancement de la macro apparaisse le tableau issu du fichier. Les noms du fichier sont tous du même type (1536,1537...1540).
Voila
Merci pour votre aide en tout cas. ;)

Bonne journée.
 

Pièces jointes

  • fichier cfc.zip
    1.9 KB · Affichages: 15

JNP

XLDnaute Barbatruc
Re : Aide pour la rédaction s'une macro

Re :),
Donc ton fichier CFC est un fichier texte avec séparateur "," :p.
Donc en sériant les problèmes :
1) il faut décrire les fichiers pour récupérer les CFC et les renommer en TXT :
Code:
Chemin = "C:\temp"
Set Dossier = CreateObject("Scripting.FileSystemObject").GetFolder(Chemin)
For Each Fichier In Dossier.Files
    If Right(Fichier.Name, 4) = ".cfc" Then ' liste les fichier CFC seulement
        AncienNom = Chemin & "\" & Fichier.Name
        NouveauNom = Chemin & "\" & Left(Fichier.Name, Len(Fichier.Name) - 4) & ".txt"
        Name AncienNom As NouveauNom
    End If
Next
2) Avec l'enregistreur de macro, enregistrer la réquête (en 2010, ça donne ça, mais il vaudrait mieux récuopérer une requête 2003 :rolleyes:)
Code:
    Range("A1").Select
    With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;C:\temp\1536.txt", _
        Destination:=Range("$A$1"))
        .Name = "1536_1"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 850
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = False
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
3) puis remplacer tes "." par des "," pour être dans un format numérique compatible
Code:
Cells.Replace What:=".", Replacement:=",", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Voilà déjà de quoi faire, quand tu auras mis ça en application, on verra pour la suite des événements ;)...
Bon courage :cool:
 

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 192
Membres
102 809
dernier inscrit
Sandrine83