[VBA] Importer certaines lignes, fichier log

Résolu
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.

2 réponses

  1. 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
    1. 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
    2. 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
    3. #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
    4. Merci beaucoup pour la réponse et le bout de code, je espérait pas tant...
      0
  2. 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