IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Tableau évolutif utilisant des formules


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Libéral
    Inscrit en
    Mai 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Libéral

    Informations forums :
    Inscription : Mai 2018
    Messages : 15
    Points : 9
    Points
    9
    Par défaut Tableau évolutif utilisant des formules
    Bonjour,

    Sur Excel, je bidouille des trucs qui au final me bloque quand je veux utiliser une fonctionnalité. Dans le cas qui m’amène, j'ai un tableau contenant des formules du type "=Si(A1="";""; A1+B)". D'un point de vu visuel c'est parfait car je n'ai pas des #VALEUR! qui apparaissent. Mais quand j'utilise un tableau croisée dynamique, bien évidemment les cellules ne sont pas considérés comme vide et ça met la pagaille.

    Je souhaite donc réaliser un journal de trading. Ce journal comprend une feuille contenant les données sources issues de mon broker. Dans c onglet j'ai un code vba basique qui met en forme (ordre chronologique croissant) et qui efface les entrées inutiles (ordres en attente n'ayant pas donné lieu à une ouverture de position sur le marché). Ces données sont renvoyées dans un deuxième tableau (onglet "traitement") qui met en forme les dates (dates mm.dd.yyyy hh:mm utilisées en données sources que je suis obligé de convertir avec =cnum(stext(...)) pour que les dates soient reconnues par Excel, vous commencez à voir le type de bidouille dont je parlais au début. Autre problème du tableau associé aux formules : J'ai besoin pour des calculs de prendre en compte la ligne d'avant pour faire des calculs, je suis donc obligé de laisser une première ligne vide ce qui empêche toute utilisation de filtre...

    J'entrevois le principe d'avoir un tableau de données et un endroit pour faire mes calculs, mais je ne vois pas comment concilier les deux puisque les données calculées sont indispensables dans un tableau... Bref je ne vois pas comment faire.

    La vraie question est : Comment dois-je procéder (l'utilisation normale pas la bidouille que j'utilise) pour faire un tableau propre, qui est amené à s'enrichir en lignes, pour que je puisse faire tous mes calculs nécessaire par la suite?
    La question secondaire est : Comment utiliser des graphiques avec des tableaux qui s'incrémentent ? Est-ce qu'un tableau croisée dynamique peut faire l'affaire?

    D'une manière générale, je cherche une méthode plus que des solutions, merci d'avance pour vos suggestions.

    Ps. En voulant mettre le fichier en annexe, je m'aperçois que ma façon de procéder (mettre des formules dans un tableau) alourdi incroyablement le fihcier, bref ce n'est décidément pas la bonne façon de procéder.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre actif
    Femme Profil pro
    Technicienne
    Inscrit en
    Avril 2018
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicienne

    Informations forums :
    Inscription : Avril 2018
    Messages : 153
    Points : 264
    Points
    264
    Par défaut
    Bonjour

    Je ne vais pas tenter de répondre à toutes tes questions, juste aborder trois points de ton message.

    Pour convertir tes dates, as-tu essayé la fonction DATEVAL ? Avec un peu de bol, le format de date que tu récupères (mm.dd.aaaa) pourrait être reconnu avec tes réglages et paramètres régionaux... Dans ce cas, la conversion de mm.dd.aaaa hh:mm en date+heure pourrait être, avec en A1 une date et heure au format texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DATEVAL(A1)+TEMPSVAL(A1)
    Et si le format mm.dd.aaaa n'est pas reconnu, tu peux quand même te passer des CNUM car même si tu rentres une chaîne de caractères comme argument de DATE, Excel arrive à reconnaître qu'elle n'est composée que de chiffres et qu'il s'agit en fait d'un nombre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    avec en A1 une date ayant exactement le format mm.dd.aaaa hh:mm
    =DATE(STXT(A1;7;4);STXT(A1;1;2);STXT(A1;4;2))+TEMPSVAL(DROITE(A1;5))
    Pour les formules utilisant la ligne au-dessus, j'ajoute une condition du genre SI(LIGNE()=LIGNE(en-tête du tableau)+1;...;...). Ou je joue avec un SI.ERREUR, ou si j'y arrive, je construis ma formule de manière à ce que l'en-tête ne lui pose pas de problème. Enfin n'importe quoi du moment que la première ligne se comporte comme les suivantes.

    En ce qui concerne l'organisation de ton classeur, je partirais plutôt sur un regroupement des tableaux. Pourquoi les multiplier si tes données arrivent déjà triées et ordonnées ? Je pourrait trouver cela justifié si, par exemple, tes données arrivaient avec toutes les lignes inutiles. Tu ferais alors un deuxième tableau qui reprendrait seulement les lignes que tu souhaites exploiter. Ou encore si tu les exploitais avec une organisation complètement différente...
    Mais là, tes données arrivent dans le bon ordre et sans lignes inutiles, puis tu les arranges un peu pour les rendre exploitables, puis tu effectues des calculs à partir de "l'arrangement". Imagine qu'une partie de tes données arrive déjà sous une forme exploitable. Si tu vas faire les calculs ailleurs, tu dois les transporter ailleurs. A chaque fois que tu transportes tes données, tu les répètes, et tu rajoutes des opérations.
    Est-ce que quelque chose t'empêche de tout faire dans le même tableau ? Récupérer tes données "brutes", rendre exploitables celles qui ne le sont pas, et effectuer les calculs ? Dans un tableau structuré il est facile de déplacer et de planquer les colonnes qui ne t'intéressent pas.

    PS je t'ai répondu sans avoir ouvert ton fichier.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Libéral
    Inscrit en
    Mai 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Libéral

    Informations forums :
    Inscription : Mai 2018
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Merci catapoulpe pour les conseils, je me penche aujourd'hui sur les calculs utilisant la ligne du dessus, je prends note de tes conseils. Je me demandais si je ne pouvais pas tirer quelque-chose de la fonction RANG().... Je vais creuser.

    Hier j'ai pu entrapercevoir la puissance d'une table déclarée, je vais donc les utiliser. Elles s'agrandissent automatiquement quand on colle de nouvelles données en-dessous, c'est parfait. J'ai aussi découvert la fonction DECALER() qui est incroyable. Notamment associée avec les fonctions LIGNES() et COLONNES(). j'obtiens des calculs avec des plages dynamiques, je n'ai donc plus besoin des =SI(A1="";"";...).

    Merci.

Discussions similaires

  1. Réponses: 10
    Dernier message: 11/05/2014, 16h19
  2. [WD15] Editeur de requête : utilisation des formules
    Par wd_newbie dans le forum WinDev
    Réponses: 4
    Dernier message: 08/12/2013, 16h49
  3. Utilisation des formules sur les attributs Date
    Par rdmontreal dans le forum W4 Express
    Réponses: 2
    Dernier message: 26/10/2011, 01h37
  4. [EXCEL][VBA] Utilisation des formules Excel en VBA
    Par Amanck dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/12/2005, 16h08
  5. [CR 9] Utilisation des formules
    Par Joleroy dans le forum Formules
    Réponses: 9
    Dernier message: 13/09/2004, 09h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo