[VBA] Importer certaines lignes, fichier log

Résolu
Elboubdelapampa Messages postés 153 Date d'inscription   Statut Membre Dernière intervention   -  
Elboubdelapampa Messages postés 153 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.

2 réponses

  1. Elboubdelapampa Messages postés 153 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
    1. Polux31 Messages postés 7219 Statut Membre 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
    2. Elboubdelapampa Messages postés 153 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
    3. Polux31 Messages postés 7219 Statut Membre 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
    4. Elboubdelapampa Messages postés 153 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
  2. Polux31 Messages postés 7219 Statut Membre 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