Importer des infos venant de fichiers txt
Bonjour
J'utilise un logiciel (venue race) pour gérer des compétitions de courses de rameurs
A la fin de la compétition, j'ai dans un répertoire (chemin et nom différent à chaque compétition) autant de fichiers .txt qu'il y a eu de séries durant la compétition
je dois aller dans chaque fichier txt pour récupérer les infos des résultats
Serait il possible qu'une macro puisse récupérer les infos de tous ces fichiers (1 fichier par série) du répertoire en les plaçant dans un fichier xls (nom au choix) ?
Avec comme titre des champs : (colonne A à M)
Nom fichier txt /date du fichier txt /heure du fichier txt
puis
/place/time rowed/meters rowed/boot/avgpace/id/bib number/class/ (infos venant du fichier txt)
puis
sexe
Pour info voici les infos d’un fichier TXt avec 3 concurrents (ligne 4, 5 et 6)
Ligne4 : 1,04:22.9,1000,3-rob-Arras Julie, 2:11.4,,0,
Ligne 5 : 2,04:36.1,1000,3-rob-arras Juliette, 2:18.1,,0,
Ligne6 : 3,04:56.0,1000,3-rob-Arras Camille, 2:28.0,,0,
Ligne 7 (vide)
mais il se peut qu'il y ait X concurrents et donc les infos serrait de la ligne 4 à X
la dernière ligne après les infos de X est vide
Merci
Chvalet
- Messages
- 1'794
- Excel
- 2010
- Inscrit
- 25/08/2014
- Emploi
- Consultant VB6 / SQL / VBA / Excel / Access
Bonsoir,
Ci-joint une proposition à tester (sélectionner le répertoire contenant tous les fichiers).
Bonne soirée
Bouben
Salut Bouben
Salut Forum ,
J'ai testé ton fichier, le résultat est excellent.
Si on peut aller plus loin :
Serait ce possible de mettre le bouton macro sur une feuille de départ nommée "importer"
Et Après le clic sur bouton ,
une fenetre s"ouvre en demandant " quel est le nom de la feuille destinataire choisie : "
Ainsi on inscrit le nom de la feuille voulue
puis bouton "ok" puis
ouverture de la feuille choisie si elle existe ou créée si absente
puis
une 2e fenetre s'ouvre avec le début de ta macro "parcourir"
merci beaucoup
Ch
- Messages
- 1'794
- Excel
- 2010
- Inscrit
- 25/08/2014
- Emploi
- Consultant VB6 / SQL / VBA / Excel / Access
Bonsoir,
Ci-joint une nouvelle version, à tester.
Bonne soirée !
Bouben
Bonsoir
Excellent fichier !
merci,
Ch
Bonsoir Bouben
Bonsoir Forum
J'ai utilisé ton fichier ces derniers jours , il est excellent
Serait il possible de faire quelques corrections et ajouts ?
en cas de réponse positive, les voici :
1-dans le Module importation existant : importer resultats
Dans la création de la feuille de résultats,
Serait il possible que le nom soit suivi obligatoirement par "-Résults" (concatener le nom choisi + "-Results"
2- Ajouter un module d'importation Splits Data
Dans la feuille Importation
En dessous du module importer résultats
Serait il possible de créer un module "Importer Splits Data" qui permettrait de créer une feuille "nom choisi" "-Splits Data)
Les données seraient récupérées d'un répertoire au choix (comme pour résultats)
Cf fichier de départ joint splits data
Puis copier coller dans la feuille "nom choisi-Splits data"
tous les fichiers récupérés ont un nom qui se termine par "Splits Data.txt"
exemple choisi : Serie1A Splits Data.txt
En fait, ce sont les temps intermédiaires de chaque rameur sur chaque série
mais il peut en avoir 1, 2, 3 , ... (c'est une option) pour chaque rameur
Mais dans le fichier .. splits data txt , les données de chaque rameur commencent ainsi
une virgule puis ligne suivante 2 virgule , puis ligne suivante 2 virgule
Quand il y a qu 1 virgule , c'est que l'on passe au rameur suivant .
Exemple du fichier txt :
Interval,Boat,Time,Meters,Split_Avg_Pace,Split_Stroke_Rate,Split_Heart_Rate
,HOUZE,105.7,500.0,105.7,32,0
,,110.8,1000.0,110.8,27,0
,,106.7,1500.0,106.7,30,0
,HAMADY,104.0,500.0,104.0,34,0
,,106.7,1000.0,106.7,33,0
,,107.4,1500.0,107.4,35,0
je mets le fichier xls (voir la feuille splits data) en pj et 2 fichiers txt pour les exemples
Merci pour votre aide
Ch
- Messages
- 1'794
- Excel
- 2010
- Inscrit
- 25/08/2014
- Emploi
- Consultant VB6 / SQL / VBA / Excel / Access
Bonsoir
CHVALET a écrit :J'ai utilisé ton fichier ces derniers jours , il est excellent
Serait il possible de faire quelques corrections et ajouts ?
Merci pour les compliments
Ci-joint une nouvelle version prenant en compte les résultats.
A tester, comme d'hab !
Bonne soirée
Bouben
Bonjour Bouben
Bonjour Forum
Merci pour cette réponse rapide. C'est excellent !!
1-Cependant J'ai eu un bug car dans mon répertoire il y a des fichiers txt différents
ex
Serie1A Splits Data.txt
Serie1A Stroke Data.tx
Serie2A Splits Data.txt
Serie2A Stroke Data.tx
etc...
Erreur d'execution 9
L'indice n appartient pas à la selection
ligne en surlignage jaune
" moShDest.Cells(miLig, 10) = Split(sLigne, ",")(1) "
par contre si j'isole les fichiers finissant par splits data, ça marche à merveille .
2- Total Time
il est actuellement en seconde,0
Pourrait il etre modifié en mm:ss,0 ?
3- Place-serie
le rang doit se faire uniquement dans la série , c'est à dire le rang avec le même nom de fichier
Actuellement cela correspond à la Place au classement général (super!)
4- Place-général
j'ai ajouté une colonne Place général afin d'y mettre le classement que tu avais fait en Place-Série
5-place Sexe
j'ai ajouté une colonne Place-Sexe
serait il possible d'avoir un rang qui se modifie à chaque fois que l'on ajoute "F" pour fille et "G " ou "M" pour Masculin/garçon dans la colonne sexe ? et donc d''avoir le classsement selon le sexe ?
6-Place-Class
Class correspond à une catégorie au choix que l'on peut créer
ex JF (junior fille), Ent =(Entreprise), LYC =(lycée) et ....
Serait il possible comme pour le sexe qu'un classement se réalise à chaque fois qu'une catégorie apparait dans la case Class ?
Actuellement j'utilise la formule matricielle somme prod sur chaque colonne
par exemple
=SOMMEPROD(($A$2:$A$100000=A2)*($M$2:$M$100000<M2))+1
mais il faut l'inscrire dans chaque case,
une macro est sûrement possible, n est ce pas?
encore merci pour ce fichier qui m'a fait gagner des heures de copier-coller .
En Pj : fichier xls v0.4, avec feuille exemple,+ fichier splits data.txt + stroke.txt
Ch
- Messages
- 1'794
- Excel
- 2010
- Inscrit
- 25/08/2014
- Emploi
- Consultant VB6 / SQL / VBA / Excel / Access
Bonjour,
Ci-joint une nouvelle version à tester.
Reprend les principaux points. Seul le problème de fichier qui fait bugger n'est pas identifié (non reproduit).
Pour info, il y a 2 onglets masqués : "Modele" et "ModeleSplit", servant de base de départ (et les formules matricielles sont laissées en l'état).
Bonne journée
Bouben
- Messages
- 1'794
- Excel
- 2010
- Inscrit
- 25/08/2014
- Emploi
- Consultant VB6 / SQL / VBA / Excel / Access
Re-
Les nouveaux fichiers (à partir de 14 B) comprennent 2 séries de données, ce qui fait planter le traitement.
En PJ, une nouvelle version, qui affiche le fichier en erreur (aucune autre modification).
Question : comment la deuxième série de données doit être traitée (de la même façon ?)
premières lignes (14B split data) :
Interval,Boat,Time,Meters,Split_Avg_Pace,Split_Stroke_Rate,Split_Heart_Rate
,COL MALGRANGE JA CLF2,117.9,500.0,117.9,30,0
,,3.9,1000.0,3.9,29,0
,COL ECRINS EMB CLF1,89.2,500.0,89.2,28,0
Et deuxième partie :
Individual Splits
Boat,Rower,Time,Meters,Split_Avg_Pace,Split_Stroke_Rate,Split_Heart_Rate
COL MALGRANGE JA CLF2,904 AUBERT Noemie,119.0,500.0,119.0,31,0
,,121.3,1000.0,121.3,29,0
A voir, ça va peut-être complexifier le traitement.
En attente d'info ...
Bouben
Salut
merci pour la réponse
1- time split
=(N2+S2+X2)/(3600*24)
parfois il y a plus de 3 time splits
2 "Question : comment la deuxième série de données doit être traitée (de la même façon ?)"
seule les lignes pour "internal" comptent pour cette feuille
les lignes pour indivduel splits pourront certainement etre utilisées pour un 3e module "individual split"
merci encore
Ch
- Messages
- 1'794
- Excel
- 2010
- Inscrit
- 25/08/2014
- Emploi
- Consultant VB6 / SQL / VBA / Excel / Access
Hello,
Point 1 :
Si tu regardes bien, la formule est bien variable selon le nombre de courses (tu confirmes ?)
Nouvelle version : ajout des titres pour les courses 4 à 6
Point 2 : ci-joint une nouvelle version se basant uniquement sur la première partie des fichiers
A tester de nouveau, en attendant la suite
Bouben
Bonjour
Point1 : oups , j'avais raté quelque chose
"Nouvelle version : ajout des titres pour les courses 4 à 6" : ok merci
point2 : ok ça fonctionne nickel.
3- Serait il possible que les temps en sec apparaissent en mm:ss,0 ,
Pour Time-Split Meters et pour Split_Avg_Pace
4-Classements dans feuille Split Data
j'ai fait une erreur de classement (sic) , on ne peut évidemment pas classer des infos qui ne correspondent pas à une course de même distance.
L'insertion d une colonne en N (Meters Rowed) est donc nécessaire
la colonne N se calcule par le max d'un split data (=MAX(P?;U?;Z?;AE?;AJ?;AO?)
Ainsi dans les formules "somme prod" il faut aussi ajouter ce critère (Meters Rowed) pour que le classement soit correct
Si un critère est manquant, serait il possible que la case soit vide au lieu d'un nombre de type 99998 ?
si (estvide (..) ;"" ; sommepro ....
5-Feuille Split Data Indiv
2 txt possibles :
L'un sans la ligne " Individual Splits" donc le boat = rower
L'autre avec individual Splits et danc des équipiers
Cf modele joint dans fichier
6-Module résultats détaillés
A partir des fichiers Results.txt
Construire la feuille "ModeleDetail-Results" grâce aux infos apparaissant après la ligne "Detailed Results"
Cf modele joint dans fichier xls
2 possibilités
* soit il y a un team Name et donc il y aura des equipiers à placer avec leurs infos
et le changement de boat se fait à chaque fois que la "place" est différente de vide
exemple serie15b resultats.txt
Detailed Results
Place Lane Team Name Rower Name Time Distance Avg, Pace ID Class
1 5 COL J.B CARPEAUX CLF1 04:06.0 1000 02:03,0 CLF
847 WIART Juliette 1052 01:56,9 null
847 TAQUET Albertine 964 02:07,5 null
847 HERLEM Sasha 1016 02:01,0 null
847 BERBACHE Tinhinan 968 02:07,0 null
* soit il n'y a pas de team Name dasn le fichier txt et donc il y aura qu'un seul rower par ligne
exemple serie2b results.txt
Detailed Results
Place Lane Rower Name Time Distance Avg. Pace ID Class
1 34 VALLET 07:09.7 2000 1:47.4 SH 60+
1 52 HOMSY 07:20.4 2000 1:50.1 SF 50-59
2 35 DULAUROY 07:18.6 2000 1:49.7 SH 60+
2 49 UZAN 08:10.7 2000 2:02.7 SF 50-59
3 36 GOERENS 07:37.9 2000 1:54.5 SH 60+
ENCORE MERCI POUR TON AIDE
Ch