XL 2010 Demande de formule complexe avec recherche de données dans fichier texte pour tableau et graphique

Benjam

XLDnaute Nouveau
Bonjour à tous,

j'ai une demande assez particulière et je ne sais pas du tout comment m'y prendre car je ne connais vraiment que les fonctions de base d'Excel...
Je viens régulièrement sur le forum pour trouver des réponses et je suis en général très satisfait de ce que je trouve.
Malheureusement là, il s'agit d'un cas bien spécifique, j'espère que vous pourrez m'aider car je ne sais même pas si ce que je vais demander est possible...

Je vais essayer d'être clair car il y a beaucoup de paramètres à prendre en compte.


Voici le contexte actuel:

Je travail sur des machines industrielles de précisions, nous devons en début de chaque semaine passer des témoins pour valider la conformité des machines et ainsi pouvoir produire.
La validation de ces témoins est stockée dans un fichier texte (.txt) avec les conformités et non conformités via l'interface de la machine.
Il y a un fichier texte par mois ou sont incrémentées les valeurs par semaine via le logiciel.
Au début de chaque mois, le logiciel recréé un dossier avec le n° du mois et l'année et il recrée également un fichier texte de "contrôle des témoins".

Actuellement, je vais chercher toutes mes infos une par une et je rentre tout à la main mais cela me prend beaucoup de temps.


Mon objectif:

Trouver un moyen pour qu'Excel puisse aller chercher mes données, les trier et les incrémentées dans un tableau et un graphique, voir mon exemple de fichier Excel en PJ dont je me sers en ce moment, c'est pour vous donner un aperçu de ce que j'aimerai avoir automatiquement par Excel.

Il y a bien sûr un chemin d'accès pour accéder à ses données qui est du type: \\Machine XX\RESULTATS Machine XX\2016-05\CONTROLE

Donc sur le chemin d'accès, nous avons le nom de la machine avec un sous dossier de résultats de la machine, puis viens le sous dossier de l'année avec le mois et encore un sous dossier appelé "contrôle"
c'est donc ici que je vais trouver mon fichier texte de contrôle de mes témoins.


Ensuite dans mon fichier texte appelé "controle _témoins_2016_05.txt" (voir l'exemple en PJ), il me faut récupérer les résultats de 2 témoins différents avec les dates et des données précises.

Pour les différencier:

Témoin n°1:

1) Ce témoin à un code sur plusieurs colonne: 1 0 0 0 (en colonne RFB, RFH et RA)
Là je dois récupérer les données inscrites dans la colonne "FA" de type: 0.169


Témoin n°2:

2) Cet autre témoin a un n° de série de type: 20150811110246-37, sur la colonne RFB.
Sur celui-ci, je doit récupérer les données inscrites dans la colonne "sanction" de type: 0.144


Bien entendu, il me faudrait récupérer pour les deux témoins et pour chaque semaine, que les produits jugé "MACHINE CONFORME".
Les "MACHINE NON CONFORME" ne doivent pas être pris en compte donc il faudrait que le tri puisse se faire également sur la recherche.


Voilà, j'espère avoir été assez clair, je ne sais pas du tout si cela est possible.

En tout cas si vous me trouvez une solution, merci d'y rajouter quelques explications car je suis assez limité en Excel, le tout, afin que je comprenne bien.

Par avance je vous remercie de votre aide car je ne trouve vraiment pas de solutions.

Si vous avez des questions, je reste à votre disposition.


Cordialement,



PS:pour des raisons de confidentialités d'entreprise j'ai remplacé le nom des machines et des témoins.Merci de votre compréhension.
 

Pièces jointes

  • graf machine X.xlsx
    19.6 KB · Affichages: 45
  • controle_témoins_2016_05.txt
    1.4 KB · Affichages: 50

sousou

XLDnaute Barbatruc
Bonjour
Pourrais-tu expliquer plus précisément ce que tu veux prélever.
1 témoin (1 0 0 0 (en colonne RFB, RFH et RA)) quatre chiffres pour 3 colonnes? Quelle ligne?
2 témoin le numéro de série apparait plusieurs fois. Quelle ligne?
Ca c'est pour récupérer les données le fichier texte d'une seule machine??!!
 

Benjam

XLDnaute Nouveau
Bonjour SOUSOU,

Tout d'abord, merci de répondre.
Je sais que le sujet est difficile à expliquer, merci de vous y intéresser en tout cas.

Alors je me rend compte en fait que les tabulations faite par la machine ne sont pas correct lors de l'incrémentation du fichier .txt
En effet il y a des décalages, donc pour le témoin n°1, il est sur les 4 colonnes (n°serie/position, RFB, RFH et RA) mais cela est décalé, ceci dit, je repère bien ce témoin par le code 1 0 0 0.
Je ne peux par contre pas changer ce que la machine fait sur le document.txt

Pour le 2 témoin, le numéro de série apparaît en effet plusieurs fois car on le passe à des dates différentes (voir la colonne date) et on le passe autant de fois jusqu'à temps qu'il soit "machine conforme".

En fait on a un autre rapport qui nous permet de réajuster les paramètres machine en fonction des résultats.
Tout cela au final est valable pour le témoin n°1 et n°2, le fait qu'on les passe plusieurs fois, d'où les lignes qui apparaissent parfois avec "MACHINE NON CONFORME, INFORMER LE LABO", cela nous permet de réajuster la machine.

C'est pour cela que la recherche ne doit prendre pour les 2 témoins que les lignes "machine conforme" et en fonction de la date.

En clair et pour cet exemple, il faudrait qu'Excel puisse prélever:

-Pour le témoin n°1: les lignes 3, 8 et 16

-pour le témoin n°2: les lignes 1,4,9,15,17


Pour finir, la réponse à votre dernière question, oui c'est pour une seule machine et pour un seul mois (voir les dates sur fichier .txt, elles sont en format anglais).

Si j'ai une formule qui peut me faire ça, j'arriverai à la décortiquer et à l'adapter à d'autres machines et en fonction du mois, enfin j'espère...

Voilà, en espérant avoir été assez clair, je peux recommencer une explication s'il le faut.

Merci de votre aide.
 

sousou

XLDnaute Barbatruc
Bonsoir
Dans le code ci-dessous, tu trouveras un exemple pour récupérer les données que tu cherches
N'étant pas dans ta configuration, j'ai pour l'exemple imposé le nom du fichier, et son emplacement dans le mon pc
Il suffira d'utiliser ces codes en boucle pour tout tes fichiers.

Principe:
Chargement du fichier dans un classeur excel
Appel à une procédure témoin: Pour chaque ligne de la colonne c du fichier,Calcul le nom du témoin,regarde si conforme, mémorise les résultats.
Tu devras sans doûte faire quelques modifs pour t'adapter à ton contexte, mais c'est une méthode comme une autre.
Les msgbox sont là pour analyser le déroulement (à supprimer)



Public tmp
Sub recup()
fichier = "controle_témoins_2016_05.txt"
chemindonnées = ThisWorkbook.Path & "\Données\"
Call charge(chemindonnées & fichier)
Call temoin(tmp)
sup
End Sub

Sub temoin(fichier)
For Each i In fichier.UsedRange.Columns(3).Rows
If Len(i) = 1 Then
numero = i & i.Offset(0, 1) & i.Offset(0, 2) & i.Offset(0, 3)
témoin = "témoin 1"
Else
numero = i
témoin = "témoin 2"
End If
MsgBox numero
If i.Offset(0, 6) = "MACHINE CONFORME" Then
Call mémoire(i, témoin)
End If
Next
End Sub
Sub mémoire(i, témoin)
With ThisWorkbook.Sheets(témoin)
Set ligne = .Columns(1).End(xlDown).Offset(1, 0)
MsgBox ligne.Address
ligne.Value = i.Offset(0, -2).Value
ligne.Offset(0, 1).Value = i.Offset(0, 4)
End With
End Sub

Sub charge(fichier)
MsgBox fichier
Workbooks.OpenText Filename:= _
fichier _
, Origin:=xlWindows, StartRow:=9, DataType:=xlDelimited, TextQualifier _
:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:= _
False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array _
(1, 3), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8 _
, 1), Array(9, 1)), DecimalSeparator:=".", TrailingMinusNumbers:=True
Set tmp = ActiveWorkbook.Sheets(1)
End Sub

Sub sup()
tmp.Parent.Close savechanges:=False
End Sub
 

Benjam

XLDnaute Nouveau
Bonjour SOUSOU,

Et bien je dois dire Chapeau! Quel boulot!!
Merci.

Je vais essayer tout cela en suivant bien vos instructions.
je reviendrai peut-être vers vous pour quelques question car je suis vraiment débutant sur Excel...

En tout cas un gros merci de passer du temps sur ma demande.

Bonne journée
 

Discussions similaires

Haut Bas