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 :
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
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
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 SubBonne 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