[VBA] Importer certaines lignes, fichier log

Résolu
Elboubdelapampa Messages postés 171 Date d'inscription   Statut Membre Dernière intervention   -  
Elboubdelapampa Messages postés 171 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai un fichier log possédant un trop grand nombre de ligne pour être importer directement dans Exel. Vu que il n'y a que les lignes commençant par "===>" qui m'intéressent, je me demandais si il n'y a pas une fonction permettant de chercher dans le fichier puis de les importer.
J'ai cherché dans l'aide, dans les forum, mais j'ai rien trouvé pour VBA.
Merci.


A voir également:

2 réponses

Elboubdelapampa Messages postés 171 Date d'inscription   Statut Membre Dernière intervention   7
 
Oui, j'ai appris sur le tas, mais je commence à me débrouiller avec VB 6 sur Excel. Je pensais justement faire ça avec VBA, mais je sais pas vraiment comment commencer...
1
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Il faut lire le fichier et ne récupérer que les lignes commençant par "===>'"

Si c'est la lecture du fichier qui te pose problème, voilà un exemple :

Sub OpenFichier()
Dim fp As Integer     'pointeur vers le fichier
Dim chemin As String    'chemin du fichier et nom du fichier
Dim chaineStr As String      'Variable qui récupère le contenu d'une ligne du fichier pour le traitement

     fp = FreeFile
     chemin = "C:\temp\monfichier.log"

    On Error Resume Next
    Open chemin For Input As #fp
    While Not EOF(fp)
        Line Input #fp, chaineStr
            'code traitant le contenu de chaineStr
    Wend
    
    If Err.Number <> 0 Then
        MsgBox Err.Number & " - " & Err.Description, vbCritical, "Erreur"
        Exit Sub
    End If

End Sub


;o)
0
Elboubdelapampa Messages postés 171 Date d'inscription   Statut Membre Dernière intervention   7
 
Donc si je comprend bien Open chemin For Input As #fp permet d'ouvrir le fichier sans l'importer directement

A quoi correspond #fp?
Dans Line Input je met "===>" à la place de #fp?
Merci pour la réponse, J'avoue que je suis un peu perdu avec l'aide F1 (j'ai excel en allemand...)
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
#fp est ce que l'on appelle un "pointeur". C'est à dire qu'il contient l'adresse mémoire du fichier (pour faire court ^^)

Line Input #fp, chaineStr > récupère une ligne du fichier et la stock dans chaineStr. Il faut ensuite traiter le contenu de chaineStr.

Je te conseille de faire un tour ici https://vb.developpez.com/cours/

Bon courage

;o)
0
Elboubdelapampa Messages postés 171 Date d'inscription   Statut Membre Dernière intervention   7
 
Merci beaucoup pour la réponse et le bout de code, je espérait pas tant...
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Non il n'y a pas de fonction intégrée à Excel pour faire ça.

Il faut que tu fasses une macro en VBA.

As-tu des connaissance en VB ?
0