Recherche et extraction de données dans un fichier .o
Bonjour,
Je suis débutant en VBA, et malgré de nombreuses recherches je ne parviens pas à obtenir ce que je veux.
Je souhaite récupérer des valeurs dans plusieurs fichiers .o (je ne connais pas, ca ressemble vachement à un fichier .txt !!) regroupés dans un répertoire.
Ces fichiers peuvent être TRES long (j’en ai vu a 500 000 lignes). Ces fichiers se ressemble tous. Je souhaite récupérer 3 informations par résultats, à mettre dans 3 colonnes d’excel :
- Nom du calcul (c’est moi qui le met)
- Résultat
- Erreur associée
Cependant chaque calcul est réalisé plusieurs fois et l’erreur associée diminue. Celle qui m’intéresse est bien évidemment la dernière. Par exemple, dans un fichier .o on peut lire :
Temperature ideale de cuisson d’un fondant au chocolat
183.78 0.0523
Donc je souhaite que le code cherche la dernière chaine de caractère « Temperature ideale de cuisson d’un fondant au chocolat » et récupère les 2 valeurs. Mais il n’y a pas que les fondants au chocolat qui m’intéresse ! Mais aussi les cookies, les madeleines … et ca dépend de mon appétit, de la saison … C’est pour ca que je préfère remplir moi-même la première colonne. Je voudrais que le code me créer un tableau pour chaque fichier .o exploré, du style se décaler de 5 colonnes (si le reste marche, ca j’arriverai a le faire à la limite ^^).
J’ai vu beaucoup de chose incompréhensible a mon niveau. C’est principalement du copier/coller hein :
Sub testaspi()
Dim Repertoire As FileDialog, monRepertoire As String
Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)
Repertoire.Show
Sheets("recuperation").Select
If Repertoire.SelectedItems.Count > 0 Then
monRepertoire = Repertoire.SelectedItems(1)
' la il me manque un gros morceau
Else
MsgBox "Aucun Répertoire Sélectionné"
End If
MsgBox "Fin !"
End Sub
Sub Gros_morceau()
Dim Fso, SourceFolder, SubFolder, fichier As Object
Dim cherche As Range
Dim tableau
Set Fso = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = Fso.GetFolder(ceRepertoire)
For Each fichier In SourceFolder.Files
If Right(fichier.Name, 4) = ".txt" Then
N = FreeFile
Open fichier For Input As #N
Do While Not EOF(1)
Line Input #N, contenu
tableau = Split(contenu, ";")
' ....
End SubMerci d'avance ;)