[Excel] écrire fichier.txt

Fermé
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 - 12 janv. 2006 à 17:02
 Lupin - 13 janv. 2006 à 23:57
Salut a tous,
J'ai créé un formulaire avec 4 champs obligatoire sur 7. Le script de controle de ces champs fonctionne très bien.
J'ai aussi un résumé qui s'affiche en pop up avant l'envoi définitif.
Jusque là tout est OK.
Le Pb, c'est que je voudrais qu'en validant, ça écrive sur un fichier texte (inscription.txt) situé dans le même répertoire avec les valeurs des champs renseignés séparé par des point virgule (;) par exemple.
Question 1: s'il y a plusieurs validations simultanées, comment ça va se passer pour qu'il y ait plusieurs lignes ?
Question 2: comment faire pour qu'a l'ouverture d'excel il me récupère automatiquement ces enregistrements dans un tableau ?
Si je vous parles d'un txt c'est que je ne peux pas utiliser de base de données et qu'on m'a parlé de cette possibilité de fichier texte en écriture.
Merci infiniment d'avance pour vos lumières !
A voir également:

4 réponses

Bonjour,

Exemple type :
(c'est une façon de faire, mais il y en a d'autres!)

Option Explicit
'

Sub CreerFichierTexte()

    Const ForReading = 1, ForWriting = 2, ForAppending = 8

    Dim NouveauTexte, Valeur As String
    Dim Limite, Boucle, Compteur As Integer
    Dim Client As String
    
    Dim oFS, NouveauFichier As Object
    
    NouveauTexte = ThisWorkbook.Path & "\" & "MonFichier.txt"
    Set oFS = CreateObject("Scripting.FileSystemObject")
    Set NouveauFichier = oFS.CreateTextFile(NouveauTexte, ForWriting)
    
    Limite = Range("A65535").End(xlUp).Row
    Client = ""
    For Boucle = 1 To Limite
        For Compteur = 0 To 2
            Client = Client & ActiveCell.Offset(0, Compteur).Value & ";"
        Next Compteur
        NouveauFichier.WriteLine (Client)
        ActiveCell.Offset(1, 0).Select
        Client = ""
    Next Boucle
    
    NouveauFichier.Close
    
End Sub
'

Sub LectureFichierTexte()

    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    
    Dim oFS As Object
    Dim Boucle As Long
    Dim MonFichier, Texte, Reponse, Msg As String
    Dim CheminFichier As String
    
        
    CheminFichier = ThisWorkbook.Path & "\" & "MonFichier.txt"
    Set oFS = CreateObject("Scripting.FileSystemObject")
    Set MonFichier = oFS.OpenTextFile(CheminFichier, ForReading)
    
    While Not MonFichier.AtEndOfStream
        Texte = MonFichier.ReadLine
        MsgBox Texte
    Wend

    MonFichier.Close
    
End Sub
'




Lupin
1
re:

Pour "la préparation du tableau excel", la je puis te donner
quelque tuyau!

défini chaque ligne étant un enregistrement (un ensemble)
défini chaque colonne étant un champ de l'enregistrement
défini un caractère comme séparateur " ; "

! "caractère de tabulation"
Avec Excel à l'ouverture d'un fichier de type texte, tu pourra
paramètrer le caractère choisi dans la section:

Type de données d'origine
Choici "Délémité"
Page suivante
Section "Séparateurs"
Dans "Autre", il y a une case pour inscrire le caractère

et c'est tout !

Lupin
1
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 520
13 janv. 2006 à 13:21
Salut Lupin et merci pour ta réponse,
Mais je ne comprends rien, vraiment rien. Voici mon script.js:
<!-- Vérification des champs du formulaire
function verif() 
{ 
	var nom = document.formulaire.nom.value;
	if (document.formulaire.nom.value == "")
	{
		alert ('Veuillez entrer votre nom');
		document.formulaire.nom.focus();
		return false;
	}
	if(document.formulaire.prenom.value == "")
	{
		alert ('Veuillez entrer votre prénom');
		document.formulaire.prenom.focus();
		return false;
	}
	if(document.formulaire.matricule.value == "")
	{
		alert ('Veuillez entrer votre matricule');
		document.formulaire.matricule.focus();
		return false;
	}
	if(document.formulaire.telephone.value == "")
	{
		alert ('Veuillez entrer un n° de téléphone');
		document.formulaire.telephone.focus();
		return false;
	}
	if(document.formulaire.telephone.value.length != 6)
	{ 
		alert ('Le n° de téléphone doit comporter 6 chiffres'); 
		document.formulaire.telephone.focus();
		return false; 
	}

	else {return true;}
}
//-->
Il fonctionne très sous 2000 mais pas sous XP (pour la longueur du tél.) mais bon.
Là je suis à la maison et je n'ai pas le formulaire sous la main.
Mon Pb c'est que je veux pas recevoir les données par mail pour faire des copier/coller à la main dans un tableau excel.
Du reste, je ne sais même pas comment je dois préparer mon tableau excel, si je dois mettre les noms des champs etc...
Merci beaucoup en tous cas de m'avoir répondu.
0
re:

j'avais très mal compris ta question, je m'en excuse.

En fait je t'ai fourni un exemple VBA pour créer un fichier
texte à partir d'une feuille Excel.

sous javascript, je ne suis que débutant et ne puis t'aider plus.

désolé !

Lupin
0