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

inserer dans un .txt

  • Initiateur de la discussion Initiateur de la discussion pims901
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

pims901

Guest
Bonjour,
mon probleme est le suivant,
j'ai une premiere macro:

Code :

1. Sub save()
2. ' Declaration variables
3. Dim FileName
4. ' Demande fichier de sauvegarde
5. FileName = Application.GetSaveAsFilename(Nom_fichier, "txt Files (*.txt), *.txt" )
6.
7. ' Ouverture fichier
8.
9. Open FileName For Output As #1
10.
11. ' Fermeture fichier
12. 'Close #1
13. End Sub






elle crée une fichier .txt, demande a l'utilisateur le nom quil veut lui donner, puis l'ouvre

maintenant, je souhaite que la macro aille chercher une valeur dans telle feuille telle case, et qu elle me l'insere a une place bien precise dans mon fichier toto.txt ( a la ligne 32 position 17 par exemple...)
comment je fais au plus simple???
 
Re : inserer dans un .txt

Salut,

Quelque chose comme ca:
Code:
Sub TXT()
    Dim Cpt As Byte
    
    Open "c:\fichier.txt" For Output As #1
    
    For Cpt = 1 To 31
        Print #1,
    Next Cpt
    
    Print #1, Spc(16); Feuil1.Range("A1").Value
    Close #1
End Sub
 
Re : inserer dans un .txt

merci pour votre reponse, cela fonctionne, malheuresement cette fonction ecrase toutes les données du fichier.txt (que j'aurai auparavant rempli)... Y a t il un moyen de ne pas supprimer ces données?
 
Re : inserer dans un .txt

voila le bout de code que je mettrai après avoir créer mon fichier.txt

Code:
Open "d:\testsave.txt" For Input As #1
Open FileName For Output As #2
 
While Not EOF(1)
Line Input #1, ligne
Print #2, ligne
Wend

Close #1
Close #2

Il copie le contenue de testsave.txt dans le fichier créé, ce sont des données du type:

Code:
<Parameter Value=""  Description="AGX_Pelec/Value" Unit="W"></Parameter>
<Parameter Value=""  Description="AGX_Pmech/Value" Unit="W"></Parameter>

et je souhaite inserer la valeur de certaine celule entre les deux guillemets ""
 
Re : inserer dans un .txt

Essaie ca:

Code:
Sub TXT()
    Dim Cpt As Byte
    Dim Ligne As String
    
    If Dir("c:\FichierTmp.txt") <> "" Then
        Kill "c:\FichierTmp.txt"
    End If
    
    Open "c:\fichier.txt" For Input As #1
    Open "c:\FichierTmp.txt" For Output As #2
    
    Do While Not EOF(1)
        Cpt = Cpt + 1
        Input #1, Ligne
        
        If Cpt = 32 Then
            Print #2, Mid(Ligne, 1, 18) & Feuil1.Range("A1").Value & Mid(Ligne, 19)
        Else
            Print #2, Ligne
        End If
    Loop
    
    Close #2
    Close #1
    
    Kill "c:\fichier.txt"
    Name "c:\FichierTmp.txt" As "c:\fichier.txt"
End Sub
 
Re : inserer dans un .txt

ca marche deja mieux!
reste quelques problemes.

1. Le fichier.txt doit etre trop grand car il indique un dépassement de capacité pour la variable Cpt (ca marche quand je diminue le nombre de ligne)

2. Il ne copie pas les virgules et saute une ligne a la place

3. Il ne respecte les espaces
 
Re : inserer dans un .txt

Pour le 1 passe la variable Cpt en Integer ou en Long
Pour le 2 je n'ai pas le probleme
Pour le 3 pas de pb nom plus

Joint le fichier txt et le contenu de la cellule a copier si possible.
 
Re : inserer dans un .txt

ok pour le 1. ca marche, pour le 3. je parle enfaite des alinéas, mais ce n'est pas genant..
voila la macro complete :

Code:
Sub Savedata()
    Dim Cpt As Long
    Dim Ligne As String


    If Dir("c:\Fichier.txt") <> "" Then
        Kill "c:\Fichier.txt"
    End If
    Open "c:\testsave.txt" For Input As #1
    Open "c:\fichier.txt" For Output As #2
 
    While Not EOF(1)
    Line Input #1, Ligne
    Print #2, Ligne
    Wend
 

    Close #1
    Close #2
    
   
    
    If Dir("c:\FichierTmp.txt") <> "" Then
        Kill "c:\FichierTmp.txt"
    End If
    
    Open "c:\fichier.txt" For Input As #1
    Open "c:\FichierTmp.txt" For Output As #2
    
    Do While Not EOF(1)
        Cpt = Cpt + 1
        Input #1, Ligne
        
        If Cpt = 3 Then
            Print #2, Mid(Ligne, 1, 18) & Feuil1.Range("C11").Value & Mid(Ligne, 19)
        Else
            Print #2, Ligne
        End If
    Loop
    
    Close #2
    Close #1
    
    Kill "c:\fichier.txt"
    Name "c:\FichierTmp.txt" As "c:\fichier.txt"

    
    
End Sub



et une partie du testsave.txt ou ca pose probleme

Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<Parameters>
	<BenchEnvironment Reference="D:\Program Files\Config\bench.xmod"></BenchEnvironment>
	<CampaignDescription Reference="D:\Program Files\Campaigns\Default\Default.xcamp"></CampaignDescription>
	<TestDescription Reference="D:\ml5 v1.xsimu">
        <Parameter Value="[,;,;]" ID="Structures/BAT/BAT.ocvd/Value" Description="BAT.ocvd/Value"></Parameter>

ici les virgules ne sont pas affichées
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
249
H
Réponses
3
Affichages
1 K
Hotburn
H
F
Réponses
6
Affichages
2 K
F
E
  • Question Question
XL 2013 VB Macro
Réponses
8
Affichages
960
enzo_s
E
F
Réponses
26
Affichages
3 K
S
Réponses
0
Affichages
949
S
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…