XL 2013 Récupération du dernier résultat en fonction d'une recherche

julienhofmann

XLDnaute Nouveau
Bonjour,

J'utilise actuellement un spectromètre qui enregistre les données sous format Excel et qui ajoute au fur et à mesure les résultats dans une nouvelle ligne.
J'aimerais extraire les données de la dernière ligne en fonction du nom de l'échantillon (voir pièces jointes) vers un nouveau classeur. J'aimerais extraire les données de la colonne "Cr (%)" et "date" que si l'échantillon analysé s’appelle T45 et ne rien faire dans les autres cas.
Le but final étant que ces données ("Cr (%)" et "date") soit mis dans deux colonnes, pour pouvoir tracer "Cr (%)" en fonction de la "date" dans un graphique.

Merci de votre aide!
Cordialement
 

Pièces jointes

  • données logiciel.xlsx
    8.2 KB · Affichages: 28
  • données logiciel.xlsx
    8.2 KB · Affichages: 28

djidji59430

XLDnaute Barbatruc
Re : Récupération du dernier résultat en fonction d'une recherche

Bonjour,

=SOMMEPROD((feuil1!a2:a6)*(feuil1!B2:B6="t45")) pour la date
=SOMMEPROD((feuil1!C2:C6)*(feuil1!B2:B6="t45")) pour la valeur de Cr(%)

a faire correspondre sur la meme ligne!


Crdmt
 
Dernière édition:

julienhofmann

XLDnaute Nouveau
Re : Récupération du dernier résultat en fonction d'une recherche

Merci pour cette première aide!
Mais cela ne marche que si aucune donnée n'est ajoutée (que si le tableau ne change pas de taille)
En outre j'aimerais conserver la valeur précédente (ajouter les valeur les unes à la suite des autres)

Merci!
 

Paf

XLDnaute Barbatruc
Re : Récupération du dernier résultat en fonction d'une recherche

Bonjour julienhofmann, djidji59430,


un essai macro à adapter:
à chaque utilisation l'ensemble des données à récupérer sont copiées (en écrasant les précédentes) en feuille Feuil 2 (qui doit exister) :

Code:
Sub CopiT45()
 Dim Tablo, i As Long, WS1 As Worksheet, WS2 As Worksheet, x As Long
 Set WS1 = Worksheets("Feuil1")
 Set WS2 = Worksheets("Feuil2")

 With WS1
 derl = .Range("A" & Rows.Count).End(xlUp).Row
 ReDim Tablo(1 To derl, 1 To 2)
 For i = 2 To derl
    If .Cells(i, 2).Value = "T45" Then
        x = x + 1
        Tablo(x, 1) = .Cells(i, 1)
        Tablo(x, 2) = .Cells(i, 3)
    End If
 Next
 End With
 WS2.Range("A1").Value = "Date"
 WS2.Range("B1") = "Cr (%)"
 WS2.Range("A2").Resize(UBound(Tablo, 1), 2) = Tablo
End Sub

A+
 

julienhofmann

XLDnaute Nouveau
Re : Récupération du dernier résultat en fonction d'une recherche

Merci beaucoup Paf!!
Tout cela fonctionne super bien!
J'ai une seconde petite question : j'ai copié ta macro et ajouter un code pour que la macro s’exécute automatiquement toutes les 10 secondes, j'aimerai que ces données s'ajoute automatiquement à un graphique (Cr% en fonction de la date), comment est ce que je pourrais faire ca?
Dernière chose, j'aimerais que le graphique ne m'affiche que les 10 derniers résultats, comment faire cela?

Cordialement
Merci de votre aide !
 

chris

XLDnaute Barbatruc
Re : Récupération du dernier résultat en fonction d'une recherche

Bonjour

Ajouter une macro
Code:
Sub Boucle10s
    Application.OnTime Now + TimeValue("00:00:10"), "CopiT45"
End sub

Cependant macro de Paf recopie toutes les lignes T45, que ce soit la dernière ou non : je n'ai peut-être pas compris la demande mais je pensais que si la dernière ligne contenait autre chose on ne copiant rien du tout...

Pour le graphique, il y a plusieurs solutions mais la plus simple serait
  • dans un 1er temps (une seule fois) :
    • de mettre le tableau obtenu sous forme de tableau
    • d'ajouter une colonne supplémentaire à ce tableau avec une formule repérant si la ligne fait on non partie des 10 dernières
    • de construire le graphique sur le tableau
    • de filtrer le tableau résultats sur cette colonne
  • de modifier légèrement la macro afin de gérer l'aspect tableau et d'ajouter l'actualisation du filtre

En plus tu as 2013 : tu peux ajouter un segment au tableau résultat pour filtrer à volonté et avoir un graphique à géométrie variable (si tu ne veux pas systématiquement les 10 derniers).
 
Dernière édition:

Paf

XLDnaute Barbatruc
Re : Récupération du dernier résultat en fonction d'une recherche

re,

j'aimerai que ces données s'ajoute automatiquement à un graphique (Cr% en fonction de la date); Dernière chose, j'aimerais que le graphique ne m'affiche que les 10 derniers résultats

puisque les nouvelles données viennent écraser les anciennes, il faudrait juste définir des plages nommées dynamiques qui 'prennent' les 10 dernières lignes de chaque colonne(date et Cr%).

Si les dates sont en colonne A et les valeurs en B :

Dates fait référence à : =DECALER(Feuil2!$A$2;NBVAL(Feuil2!$A:$A)-11;;10;1)
Données fait référence à : =DECALER(Feuil2!$B$2;NBVAL(Feuil2!$B:$B)-11;;10;1)

et dans le graphique, ouvrir 'Données Sources'

Dans Valeurs: saisir ='nom du classeur avec extension'!Données
Dans Etiquettes de l'axes des abscisses (X) saisir ='nom du classeur avec extension'!Dates

(la procédure est sans doute un peu différente pour les versions XL 2007 et suivantes)

A+

Edit: Bonjour chris
 

Pièces jointes

  • Données T45.xls
    52 KB · Affichages: 31
Dernière édition:

julienhofmann

XLDnaute Nouveau
Re : Récupération du dernier résultat en fonction d'une recherche

re,

Merci pour vos aides!!

Je n'ai pas compris la signification de "Dates fait référence à" et "Données fait référence à" avec la fonction déclarer,
Pourtant le graphique fonctionne bien et ne sélectionne bien que les 10 dernières valeurs, la fonction déclarer est-elle cachée?

Merci pour l'onglet "Données sources", effectivement c'est un peu différent sur 2013 mais j'ai trouvé!

A+
 

djidji59430

XLDnaute Barbatruc
Re : Récupération du dernier résultat en fonction d'une recherche

Re a tous

T'as essayé avec un TCD ??? Et son graphique dynamique associé ??
 

Pièces jointes

  • données logiciel.xlsx
    25.9 KB · Affichages: 19
  • données logiciel.xlsx
    25.9 KB · Affichages: 18
Dernière édition:

chris

XLDnaute Barbatruc
Re : Récupération du dernier résultat en fonction d'une recherche

Bonjour
Re a tous
T'as essayé avec un TCD ??? Et son graphique dynamique associé ??

Merci djidji59430 : c'est ce à quoi j'avais pensé au départ mais ayant compris que que si la dernière ligne contenait autre chose que T45 on ne la prenait pas (j'attends toujours la réponse de julienhofmann à ce sujet :confused:) j'avais abandonné cette piste.

La non réponse de julienhofmann semble indiquer que j'avais mal compris cette phrase "J'aimerais extraire les données de la dernière ligne en fonction du nom de l'échantillon (voir pièces jointes) vers un nouveau classeur. J'aimerais extraire les données de la colonne "Cr (%)" et "date" que si l'échantillon analysé s’appelle T45 et ne rien faire dans les autres cas."

Si effectivement on prend tous les T45 c'est une bonne solution et il suffit d'actualiser le TCD toutes les 10 secondes (en mettant la source sous forme de tableau au préalable).

Mais on pourrait aussi directement avoir un graphique lié à la source mise sous forme de tableau en ajoutant la colonne que j'avais suggéré directement dans la source, en filtrant et en actualisant le filtre toutes les 10 secondes.
Pourquoi ne pas tirer parti des avancées de 2013...
 

julienhofmann

XLDnaute Nouveau
Re : Récupération du dernier résultat en fonction d'une recherche

Effectivement il faut faire quelque chose que si le nom de l'échantillon s'apelle T45

Par conte pour la TDC je n'ai aucune idée de comment faire! La TDC se fait avant la recherche de T45 ou après?
 

chris

XLDnaute Barbatruc
Re : Récupération du dernier résultat en fonction d'une recherche

Re

Pourrais-tu être plus précis sur l'ensemble du process.


  • Ton capteur envoie des données vers Excel en continu.
  • Toutes les 10 secondes un code doit faire quelque chose
Ce qui n'est pas clair, en tout cas pour moi, c'est si à l'instant T où le code doit s'exécuter, la dernière ligne contient autre chose que t45, le code ne fait rien et attend l'instant T suivant ou bien si toutes les lignes contenant T45 sont traitées...

Selon ta réponse, ce n'est pas du tout les mêmes solutions.
 

julienhofmann

XLDnaute Nouveau
Re : Récupération du dernier résultat en fonction d'une recherche

Re,

Oui mon capteur envoie des données sur Excel à chaque fois qu'une mesure est faite, j'avais mis 10 secondes de répétition de macro mais cela ne sert pas à grand (je peux mettre 2min c'est pareil)
Seul la dernière ligne est traitée et seulement si l'échantillon s’appelle T45

La graphique lié au tableau croisé dynamique est apparut sur excel 2013?
 

chris

XLDnaute Barbatruc
Re : Récupération du dernier résultat en fonction d'une recherche

RE

Donc il faut tout reprendre car ni le code de Paf ni les autres solutions n'éliminent les T45 n'apparaissant pas en dernière ligne.

Ta dernière question est également ambiguë : si tu parles de quand datent les graphiques croisés dans Excel, c'est très vieux.
En même temps je crois que les TCD. En tout cas il étaient déjà là dans 97 il me semble.
 

Discussions similaires

Statistiques des forums

Discussions
314 206
Messages
2 107 248
Membres
109 782
dernier inscrit
bernard 58