Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

enregistrer le contenu d' une txtbox ou richtxtbox dans un nouveau txt

M

maupiti

Guest
Bonjour et bravo aux brillants créateurs de codes observés sur ce site
avec une motion particulière pour 'le Thierry'

Je cherche à réaliser une petite database sous excel .
Chaque ligne d'enregistrement possède des champs mais aussi un texte.

Les case excel ne permettent pas tellement de mise en page
et sont limitées à 255 caractères.
J'ai donc pensé qu'il serait préférable d'enregistrer le texte de chaque enregistrement dans un fichier txt (portant un nom correspondant à la ligne
de l'enregistrement ou à une référence créée automatiquement).

J'ai trouvé des idées 'open' pour ouvrir et lire des fichiers textes
mais aucun pour en créer (save ou save as).
Et je craind que saveas ne s'adresse au classeur lui même
et non à un 'string ' ou à la valeur d'un texte box.
De plus ce sont des methodes du VB et non du VBA d'Excel qui lui est limité!
La solution serait peut-être de 'piloter' un notepad? ;o)

Merci d'avance pour vos idées.
 
M

michel

Guest
bonsoir Maupiti

ci-joint quelques actions possibles sur les fichiers textes depuis Excel


Sub ExcelVersFichierTexte_V01()
'Ecrire la valeur de la cellule A1 dans une fichier texte
'Si le fichier .Txt n'existe pas , il sera créé automatiquement
'Si le fichier existe les anciennes données seront écrasées
Dim Fichier As String
Fichier = "C:\Documents and Settings\michel\dossier\general\excel\LeFichier.Txt"
Open Fichier For Output As #1
Print #1, Range("A1") 'renvoie la valeur cellule A1 dans le fichier txt
Close
End Sub


Sub ExcelVersFichierTexte_V02()
'Ecrire la valeur de la cellule A1 dans une fichier texte
'Remarques : Les données viennent s'inscrire dans la ligne
'suivante des données existantes
'Si le fichier .Txt n'existe pas , il sera créé automatiquement .
Dim Cible As Integer
Cible = FreeFile
Open "C:\Mes documents\michel excel\essai.txt" For Append As #Cible
Print #Cible, Range("A1") 'renvoie la valeur cellule A1 dans le fichier txt
Close #Cible
End Sub


Sub LireFichierTexteLigneParLigne()
'Lire un fichier Texte : boucler sur toutes les lignes du fichier
'Dans l 'exemple , un message s'affiche si le début de la ligne commence par "XLD"
Dim infosLigne As String
Open "C:\Mes documents\xl\fichierTexte.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, infosLigne
If Left(infosLigne, 3) = "XLD" Then MsgBox infosLigne
Loop
Close #1
End Sub

Sub LectureFichierTexte()
'Afficher un fichier texte dans une msgBox
Dim Valeur As Long
Dim Cible As String
Open "D:\dossier\general\excel\test.txt" For Input As #1
Val = FileLen("D:\dossier\general\excel\test.txt")
Cible = Input(Valeur, 1)
Close 1
MsgBox Cible
End Sub


bonne soirée
MichelXld
 
M

michel

Guest
rebonsoir Maupiti

oouuppssss...une petite erreur dans la derniere macro

Sub LectureFichierTexte()
'Afficher un fichier texte dans une msgBox
Dim Valeur As Long
Dim Cible As String
Open "D:\dossier\general\excel\test.txt" For Input As #1
Valeur = FileLen("D:\dossier\general\excel\test.txt")
Cible = Input(Valeur, 1)
Close 1
MsgBox Cible
End Sub


bonne soiree
MichelXld
 
M

maupiti

Guest
Un grand merci au Lapin blanc pour ces informations
qui vont me servir énormément

Si quelqu'un veut bien m'indiquer comment sauvegarder
aussi en + du texte des informations de type richtexte
avec Gras Sousligné Font couleur...
j'imagine que ce n'est plus un simple Txt qu'il faut utiliser?

J'espère que je n'abuse pas ;o)

Enfin cela s'ajoutera à la base de connaissance
sur laquelle je n'ai pas trouvé mon bonheur )

Encore merci et bravo à Bugbunny
Bye a+
Maupiti
 
@

@+Thierry

Guest
Bonjour Maupiti, Michel

Le Lapin Blanc c'est dans Matrix, sur XLD c'est mon copain le Lapin Bleu qu'il faut suivre...

Par contre si tu avais été précis sur ta demande dès le départ, Michel ne t'aurais pas donné toutes ces possibilité, car en aucun cas tu ne pourras sauvegarder un format quelconque de cette manière.

Non, dans ce cas là, il faut t'y prendre tout à fait autrement, ou bien fabriquer une usine à gaz infernale qui consisterait à stocker des champs de plus dans le fichier texte pour indiquer les boolean pour Bold, Underline, Italic, et un autre champs pour le ColorIndex...

Puis à l'ouverture/lecture du txt, ta macro appliquera la Font Gras/Sousligné/Italic et la couleur pour toute la ligne...

Mais là franchement, je n'ai pas le temps de faire une démo là-dessus car je vois déjà les complications et ne suis même pas certain que ça puisse satisfaire ta demande.

Bonne Journée
@+Thierry
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…