Importation données d'un fichier .txt

Bonjour à tous,

Je me permets de venir vers vous car je bloque sur un problème.

Je m'explique :

  • J'ai un fichier .txt qui correspond à l'extraction d'un événement Outlook (Cf. 2 exemples en PJ)
  • Je souhaiterais pouvoir importer certaines données de ce fichier .txt dans mon onglet "Client", comme le nom, prénom, adresse mail, téléphone.

J'avais réussi à faire une importation de données d'un fichier spécialement créer pour l'occasion, lorsque la séparation entre "nom :", "prénom :", "adresse e-mail :", "Numéro de téléphone:" et la valeur cherchée étaient une tabulation.

Or lorsque j'enregistre un événement Outlook en fichier .txt, il y a deux mises en formes différentes et la séparation se fait avec des espaces :

Spoiler

Objet: TEST

Début: ven. 14/02/2020 08:30

Fin: ven. 14/02/2020 09:00

Périodicité: (néant)

Organisateur: Morgan2835

Appel réservé le 14/02/20 11 :26

Prénom :Nagrom

Nom :Dupont

Adresse e-mail :nagrom.dupont@gmail.com

Numéro de téléphone:+33601020304

Spoiler

Objet: TEST

Début: ven. 14/02/2020 08:30

Fin: ven. 14/02/2020 09:00

Périodicité: (néant)

Organisateur: Morgan2835

Appel réservé le 14/02/20 11 :26

Prénom :Techoc

Nom :Durand

Adresse e-mail :techoc.durand@gmail.com Numéro de téléphone:+33605060708

J'ai essayé de forcer la mise en forme pour que l’événement utilise des tabulations pour séparer les informations, sans réussite...

Savez-vous s'il existe une solution en VBA ?

J'espère avoir été assez clair et compréhensible, je reste à votre disposition s'il manque la moindre information pouvant aider à la compréhension.

Merci par avance,

Morgan2835

8test-nagrom-dupont.txt (274.00 Octets)
7test-techoc-durand.txt (273.00 Octets)

Bonsoir Morgan2835

Je suis sur ton problème,,, bien avancée, mais question importante:

Tes 2 fichiers sont différents en ce qui concerne l'emplacement du téléphone , même ligne que le mail ou ligne suivante

Faut-il considérer les 2 cas comme possible ou un seul est bon , si oui lequel ??

Merci

A +

Bonsoir

Finalement j'ai tenu compte des 2 possibilités

Vois cette macro très inspirée du site ExcelMalin modifiée pour toi

Sub LireFichierTexteParLigne()

Application.ScreenUpdating = False
On Error GoTo CodeErreur

Dim IndexFichier As Integer
Dim MonFichier As String
Dim ContenuLigne As String

MonFichier = "C:\Users\carro\OneDrive\Bureau\TEST Techoc Durand.txt" '<-- mettre ici le nom du fichier à lire
IndexFichier = FreeFile()
Open MonFichier For Input As #IndexFichier 'ouverture

While Not EOF(IndexFichier) '
    Line Input #IndexFichier, ContenuLigne

    If Left(ContenuLigne, 6) = "Prénom" Then
        Pos2Pts = InStr(1, ContenuLigne, ":")
        MonPre = Right(ContenuLigne, Len(ContenuLigne) - Pos2Pts)
    End If
    If Left(ContenuLigne, 3) = "Nom" Then
        Pos2Pts = InStr(1, ContenuLigne, ":")
        MonNom = Right(ContenuLigne, Len(ContenuLigne) - Pos2Pts)
    End If
    If Left(ContenuLigne, 14) = "Adresse e-mail" Then
        PosTel = InStr(1, ContenuLigne, "Numéro")
        If PosTel > 0 Then
            Pos2Pts = InStr(1, ContenuLigne, ":")
            LgMail = PosTel - Pos2Pts - 2
            MonMail = Mid(ContenuLigne, Pos2Pts + 1, LgMail)
            Pos2Pts = InStr(PosTel, ContenuLigne, ":")
            MonTel = Right(ContenuLigne, Len(ContenuLigne) - Pos2Pts)
        Else
            Pos2Pts = InStr(1, ContenuLigne, ":")
            MonMail = Right(ContenuLigne, Len(ContenuLigne) - Pos2Pts)
        End If
   End If
   If Left(ContenuLigne, 19) = "Numéro de téléphone" Then
        Pos2Pts = InStr(1, ContenuLigne, ":")
        MonTel = Right(ContenuLigne, Len(ContenuLigne) - Pos2Pts)
   End If
Wend
MsgBox "Nom: " & MonNom & Chr(13) & " Prénom : " & MonPre & Chr(13) _
& " Mail : " & MonMail & Chr(13) & " Tel : " & MonTel
Close #IndexFichier ' ferme le fichier
Application.ScreenUpdating = True
Exit Sub

CodeErreur:
MsgBox "Une erreur s'est produite..."
Application.ScreenUpdating = True
End Sub

Bonne soirée à tous

Bonsoir Morgan2835

Je suis sur ton problème,,, bien avancée, mais question importante:

Tes 2 fichiers sont différents en ce qui concerne l'emplacement du téléphone , même ligne que le mail ou ligne suivante

Faut-il considérer les 2 cas comme possible ou un seul est bon , si oui lequel ??

Merci

A +

Bonsoir Patty,

Je te remercie de prendre le temps de m'aider sur ce sujet. Les deux fichiers .txt joints présentent les deux seuls mise en forme que j'ai pu trouver dans une description d’événement de mon calendrier. Donc malheureusement les deux cas doivent être envisagé...

Je regarde ton travail demain et je l'adapte à mon fichier.

Merci encore & Bonne soirée

Morgan2835

Rechercher des sujets similaires à "importation donnees fichier txt"