VBA ajouter une ligne a un fichier txt

Signaler
Messages postés
81
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
16 mai 2006
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
hello!! je voudrais rajouter une ligne dans un fichier, voilà ma procédure :




Private Sub Sig01_Change()




Open "C:\Documents and Settings\donnees.txt" For Output As #1


Print #1, "blablabla…", Ligne$; 47


Print #1, "Sig01" & Str(Val(Sig01.Text)), Ligne$; 48


Close #1


End Sub


‘Là c’est bon les deux lignes sont écrites dans le fichier donnees’


blablabla…47


Sig01 20048




puis je complète ma deuxième textbox


Private Sub Sig02_Change()




Open "C:\Documents and Settings\donnees.txt" For Output As #1


Print #1, "Sig02" & Str(Val(Sig02.Text)), Ligne$; 49


Close #1


Et là je ne retrouve mon fichier qu’avec la ligne


Sig02 20049




Comment doit-on faire pour que ça s’ajoute au même fichier, et ainsi avoir les trois lignes à la suite ?

5 réponses

Messages postés
1488
Date d'inscription
mercredi 5 février 2003
Statut
Membre
Dernière intervention
3 décembre 2007
22
Dit Lupus, dit en plus...
"Append" permet de reprendre le fichier à la fin... d'accord. Mais saut-il une ligne automatiquement (puisque la fin de la dernière ligne reste sur cette ligne!) ou alors se place-t-il à la fin de la dernière ligne ?

Enjoy


( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
15
Salut,

Tu remplaces Output par Append dans l'instruction Open.

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
Messages postés
3757
Date d'inscription
mardi 23 septembre 2003
Statut
Modérateur
Dernière intervention
13 mars 2006
15
ScSami, non.
Append de l'instruction Open ajoute simplement ce que tu veux ajouter à ton fichier texte. Tout dépend de comment le dernier enreg se termine.
S'il se termine par un vbcrlf (chr(13) & chr(10) - 0D0A en hexa) le nouvel enreg sera ajouté sur une nouvelle ligne. Sinon, à la suite de la dernière ligne.
Si c'est toi qui a créé le fichier, c'est à toi de gérer ça :
Print #x, ligne --> ajoute automatiquement un vbcrlf (fin d'enreg)
Print #x, ligne ; --> attend une suite donc pas de vbcrlf et c'est à toi de clore par un simple Print #x, pour ajouter un vbcrlf.
Sinon, il te faut tester la fin d'enreg, par exemple :

Function FinFichierOK(fichier As String) As Boolean
Dim s As String
Dim n As Integer


n = FreeFile
Open fichier For Input As #n
s = Input(LOF(n), #n)
Close #n

'là, tu choisis entre mid et right sachant qu'en vb.net, seul le mid est accepté 'If Mid(s, Len(s) - 1, 2) vbCrLf Then FinFichierOK True If Right(s, 2) vbCrLf Then FinFichierOK True


End Function

A utiliser comme suit :

Dim test As Boolean

test = FinFichierOK(TonFichier)

Open TonFichier For Append As #1
If test = False Then Print #1,
'...
Close #1

Bonne prog

------
Dresseur de puces, .... normal pour un loup !?
Messages postés
209
Date d'inscription
jeudi 5 août 2004
Statut
Membre
Dernière intervention
15 juillet 2009

Private Sub Sig01_Change()






Open "C:\Documents and Settings\donnees.txt" For Append As #1


Print #1, "blablabla…", Ligne$; 47



Print #1, "Sig01" & Str(Val(Sig01.Text)), Ligne$; 48



Close #1



End Sub
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
229
Ouais...
Je ne pleurerai pas le jour où l'on interdira d'accès (pour au moins 3 mois) ceux qui ne passent ici que (comme les chiens au pied d'un arbre, les taggeurs en tous genres, les putois un peu partout, etc ...) n'interviennent manifestement ici que pour laisser une trace de leur ô combien "utile" passage !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient