Divers problèmes :)

p4_ent

XLDnaute Nouveau
Bonjour,
Mon classeur excel est ainsi fait :
Une feuille "data" où j'importe via macro des données d'un document texte, une feuille "data_calc" ou chaque colonne de "data" est traitée par une formule et enfin une feuille "rapport" où je tire des graphes des données de "data_calc"

Le but de la première macro est d'accélérer le système d'import. Elle se présente ainsi :

Code:
Workbooks.OpenText FileName:=Application.GetOpenFilename("Text Files,*.txt"), Origin:= _
        xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
        , Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
        Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1))
    Columns("A:F")
    Selection.Copy
    Windows("FluCoal.xlt").Activate
    Columns("A:F")
    ActiveSheet.Paste
    Selection.Columns.AutoFit
    Application.CutCopyMode = False
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .ShrinkToFit = False
        .MergeCells = False
    End With
    End Sub

Problème 1 : J'aimerais que le fichier texte qui est ouvert dans un nouveau classeur soit automatiquement fermé à l'issue de l'opération.
Genre :

Code:
Windows("machin.txt").Activate
    ActiveWindow.Close

Si j'ai ouvert "machin.txt", ok ça marche mais le fichier que j'ouvre change en fait de nom à chaque fois. Comment faire pour que ça marche quel que soit le nom du fichier ?

Problème 2 : Le nombre de lignes du fichier texte change aussi à chaque fois. "data_calc" recalcule d'autres colonnes à partir des colonnes de "data". Le nombre de lignes et leur emplacement (en terme de numéro de ligne) est par contre le même bien sûr.
Jusqu'ici, en bon newbie, je procédais de la façon suivante : je copiais la formule sur un grand nombre de lignes, nombre supérieur au nombre de lignes du fichier texte, les formules s'appliquaient et les lignes de trop étaient supprimées.
C'est une méthode, vous en conviendrez, un peu naze mais ce sont là mes limites :).
Question donc : est-il possible de demander, dans la macro, que la formule présente à la ligne X dans "data_calc" soit copiée jusqu'au numéro de ligne correspondant au numéro de ligne au-delà duquel il n'y a plus de valeur dans "data" ?

Problème 3 : Je disais donc que des graphes étaient tirés de "data_calc" pour s'inscrire dans "rapport"
Les premiers graphes ne sont pas bien méchants et prennent l'intégralité des valeurs d'une colonne.
Le dernier est plus délicat et jusqu'ici je doutais qu'on puisse l'automatiser mais bon.. sait-on jamais ? :)
Admettons qu'il y ait genre 80 lignes dans "data_calc". Est-il possible de détecter et d'indexer automatiquement la dernière ligne de cette colonne qui présente une valeur type 99,X (X étant un chiffre instable d'une ligne à l'autre) ?
Est-il alors possible de demander : fais-moi un graphe dont les valeurs séchelonneront entre un max = cette valeur et un min = la valeur de cette colonne mais 10 lignes au dessus de la valeur max ?
Compliquons un peu : ces deux valeurs sont des bornes qui sont pour moi facilement détectables. Malheureusement, ces deux valeurs ne sont pas dans la colonne qui m'intéresse. Héhé :D
En résumé, je voudrais en X par exemple :
min : la valeur 10 lignes au dessus de 99,X mais dans la colonne de droite
max : ce qu'il y a dans la colonne à droite du fameux 99,X
Et en Y
min : la valeur 10 lignes au dessus de 99,X mais dans la colonne de gauche
max : ce qu'il y a dans la colonne à gauche du fameux 99,X
Et enfin est-ce que la formule de la mort qui me donnerait ces points peut être incluse dans "données sources" d'un graphique ?

LOL.. Voilà si vous pouvez m'aider sivouplé :) merki
 
Dernière édition:

Discussions similaires

Réponses
1
Affichages
108
Réponses
33
Affichages
895
Réponses
0
Affichages
308

Statistiques des forums

Discussions
314 611
Messages
2 111 145
Membres
111 051
dernier inscrit
MANUREVALAND