Fichier TXT en VBA

Signaler
Messages postés
6
Date d'inscription
samedi 29 septembre 2007
Statut
Membre
Dernière intervention
28 novembre 2008
-
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
-
Bonjour , à tous

Je me permets de vous solliciter pour le problème suivants :

J'extrais de lotus notes les emails envoyés , ensuite je copie le corps du message dans un fichier TXT , or je n'arrive pas à chaque enregistrement de créer  un nouveau fichier avec un nom différent ( ex :1.TXT, 2.TXT..........) de plus je souhaite ajouter un lien hypertexte enregistrer dans une cellule excel relié au fichier TXT.

J'espère que vous pourriez me diriger ou bien dans le plus grand des hassards me trouver la solution. 

Merci à tous ceux qui peuvent me répondre, pour cela je me permets de vous joindre le code.

CORDIALEMENT

( je travaille donc avec vba sur excel)

Sub FICHIERTXT()
Dim iFile As Integer
iFile = FreeFile


Open "K:\CRC\Mails pommards\Mails entrant\.txt" For Append As iFile


Print #iFile, doc.GetFirstItem("Body").Text


Close #iFile




End Sub

12 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Salut,
pour tes questions FUTURE pense à utiliser la section dédiée au VBA

Sub FICHIERTXT()
'En la déclarant Static tu ne perds pas la valeur
'en sortant de la procédure
Static NumFile As Integer
Dim iFile As Integer
iFile = FreeFile
   'Incremente
   NumFile = NumFile + 1
   Open "K:\CRC\Mails pommards\Mails entrant\" & CStr(NumFile) & ".txt" For Append As iFile
   Print #iFile, doc.GetFirstItem("Body").Text
   Close #iFile

End Sub , ----
[../code.aspx?ID=41455 By Renfield]

@+: Ju£i€n
Pensez: Réponse acceptée
Messages postés
6
Date d'inscription
samedi 29 septembre 2007
Statut
Membre
Dernière intervention
28 novembre 2008

Merci beaucoup pour votre réactivité, et je ne manquerai pas de faire attention ou je dépose mon message ,

encore mille fois merci
Messages postés
6
Date d'inscription
samedi 29 septembre 2007
Statut
Membre
Dernière intervention
28 novembre 2008

Je suis encore dans une impase le code fonctionne , mais lorsque je quitte le programme  il va chercher le fichier txt n°1 au lieu de vérifier le dernier txt enrgistré
 
Si vous pouviez m'aider cela sera un réel bonheur

Sub FICHIERTXT()
'En la déclarant Static tu ne perds pas la valeur
'en sortant de la procédure
Static NumFile As Integer
Dim iFile As Integer
iFile = FreeFile
    'Incremente
   NumFile = NumFile + 1
   Open "K:\CRC\Mails pommards\Mails entrant" & CStr(NumFile) & ".txt" For Append As iFile
   Print #iFile, doc.GetFirstItem("Body").Text
   Close #iFile

End Sub
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Bonjour KWIATKOWSKI & Co



Un réel bonheur ? -> ... waow, comme tu y vas !



le programme va chercher le fichier txt n°1 au lieu de vérifier le dernier txt enregistré -> on m'a dit depuis ma plus tendre enfance que c'était au programmeur de dire au programme ce qu'il doit faire. On m'aurait donc menti !? 

En tout cas, pour charger le numéro du dernier fichier enregistré dans la variable numFile :

1 - ajoute la fonction suivante à ton module :



function dernierFichier() as Integer
    dim n as Integer
    n = 1
    Do While dir("


K:\CRC\Mails pommards\Mails entrant\




"
& trim(str(n)) & ".txt") <> ""
          n = n + 1
    Loop
    dernierFichier = n - 1 ' numéro du dernier fichier enregistré
End Sub


2 - Après l'instruction  Dim iFile as Integer ajoute une nouvelle instruction numFile = dernierFichier() 
dans le sub FICHIERTXT.


Cordialement
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
function dernierFichier() as Integer
...
End Sub


La Honte !!!!!!!!!!!!


il faut évidemment lire End Sub


dsl
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
J'ai une nouvelle fois été trop vite :
il faut lire End Function
Messages postés
6
Date d'inscription
samedi 29 septembre 2007
Statut
Membre
Dernière intervention
28 novembre 2008

Bonjour Orohena,


Merci pour tous et vous avez raison pour le programmateur , excelente journée à vous

J'essais de suite 


 
Messages postés
6
Date d'inscription
samedi 29 septembre 2007
Statut
Membre
Dernière intervention
28 novembre 2008

Je suis bloqué avec au niveau de "trim(str("

Do While dir("K:\CRC\Mails pommards\Mails entrant\" & trim(str(n)) & ".txt") <> ""
          n = n + 1

Donc , j'ai remplacé "STR" par "CStr" mais le message d'erreur et objet  bibliothèque introuvable

Désolé de vous solliciter mais un grand merci à vous
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Salut,
Trim est inutile ici puisqu'aucun espace ne sera la.
Si cela bloque toujours essaies Strings.Cstr(n), sinon simplement
\" & n & ".txt" (VBA convertira seul

 
-on préférera VbNullstring à ""

@+: Ju£i€n
Pensez: Réponse acceptée
Messages postés
6
Date d'inscription
samedi 29 septembre 2007
Statut
Membre
Dernière intervention
28 novembre 2008

Cela ne fonctionne toujours pas  même avec Strings.Cstr(n) ou " & n & ".txt" , il faut que je me remue les meninges mais merci à tous ceux qui ont participer .
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Re,
Est tu sur que l'erreur est sur cette ligne?

@+: Ju£i€n
Pensez: Réponse acceptée
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Bonjour,

Regarde ce que fait ceci (par exemple) :

Private Sub Command1_Click()
 Static ficanc As String
 ficanc = ""
 Dim monrep As String, monfic As String, filtre As String
 monrep = "d:" '<<<< ici, ton répertoire, suivi de \
 filtre = "*.txt"
 monfic = Dir(monrep & filtre, vbNormal Or vbHidden)
 Do While monfic <> ""
   If IsNumeric(Left(monfic, InStr(monfic, ".") - 1)) And monfic > ficanc Then ficanc = monfic
   monfic = Dir
 Loop
 If ficanc = "" Then
   MsgBox "pas un seul"
 Else
   MsgBox ficanc
 End If
End Sub