transfert feuille dans document texte

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 !

Philippe63000

XLDnaute Junior
Bonsoir,

Je cherche à copier une feuille excel dans un fichier ASCII.
Le programme ci-dessous convient mais j'ai des problèmes de largeur. La feuille excel contient les mois de l'année écrits en toutes lettres et il faudrait que je les transforme (les raccourcisse). De même j'aimerais que les chiffres qui composent le reste du tableau soient limités à deux chiffres après la virgule.
Mais les instructions :
A = .Cells(i, j).Value
' b = Int(A * 100) / 100
ne sont pas correctes.

Pourriez-vous s'il vous plaît m'aider à résoudre ce problème.

Merci d'avance.


Code:
Sub creer_TXT(plage)
'-------------------------------------------------------------------------------------
chemin="c:\Mes documents\"  
sous_titre ="essai"
Dim Fs As Object, A As Object
Dim i As Long
 
Set Fs = CreateObject("Scripting.FileSystemObject")
Set A = Fs.CreateTextFile(chemin & sous_titre(0) & annee_etudiee & ".txt", True)
With Sheets("Feuil1")
   'For i = 1 To .Cells(.Rows.Count, "A").End(xlUp).Row
   For i = 1 To 35
   For j = 2 To 13
        A.Write (.Cells(i, j).Value) & "   "
      Next j
      A.writeLine  ' on passe à la ligne
   Next i
End With
A.Close
Set A = Nothing
Set Fs = Nothing
 
Re : transfert feuille dans document texte

bonsoir,

Code:
'pour ce qui est numérique
If IsNumeric(.Cells(i, j)) Then
   V$ = Format(.Cells(i, j).Value, "#.##") & " "
Else
   V$ = .Cells(i, j) & " "
End If
'pour les mois en lettres 4caract suffisent
V$ = Left(.Cells(i, j), 4) & " "
 
Dernière édition:
Re : transfert feuille dans document texte

Bonjour,

Merci pour votre réponse qui m'aide bien.
Un petit détail cependant me chiffonne encore. Puis-je améliorer l'alignement des colonnes dands le fichier texte?
Voici ce que j'obtiens


1,44 1,43 1,38 3,67 3,93 1,28 ,43 ,22 ,42 1,58 2,31 3,93
Janv Fevr Mars Avri Mai Juin Juil Août Sept Octo Nove Déce
2,84 ,88 1,39 1,61 5,13 1,27 ,67 ,29 ,39 2,38 1,24 4,06
2,66 1,07 1,97 1,73 4,54 1,18 ,62 ,27 ,21 1,47 1,05 3,93
2,48 1,17 1,88 1,76 3,95 1,01 ,56 ,27 ,17 1,2 1,08 4,69
2,31 1,05 1,78 3,83 3,52 ,93 ,49 ,35 ,17 1,06 1,01 5,52
2,11 1,01 1,72 4,8 3,09 ,86 ,6 ,31 ,17 ,92 ,96 4,79
1,92 ,99 1,68 4,56 2,72 ,83 ,55 ,29 ,17 ,8 ,93 4,12
1,78 1,04 1,66 4,09 2,46 1,3 ,51 ,29 ,16 ,7 1,78 4,05
1,7 1,1 1,63 3,64 2,97 1,01 ,47 ,29 ,15 ,64 1,82 5,48
1,69 1,17 1,6 3,24 3,08 ,89 ,45 ,29 ,15 ,6 1,94 6,13
1,64 1,06 1,52 2,98 3,22 ,81 ,43 ,27 ,15 ,55 2,09 4,99
1,56 1,16 1,44 2,84 8,29 1,6 ,52 ,26 ,15 ,68 2,03 4,12
1,51 1,06 1,36 2,7 14, 2,52 ,51 ,24 ,15 ,7 2,01 3,41
1,46 1,1 1,31 2,56 10,8 2,58 ,5 ,25 ,15 ,74 2,43 2,88
1,41 1,08 1,27 2,42 8,54 2,33 ,47 ,27 ,18 ,93 2,96 2,56
1,36 1,15 1,22 2,29 6,89 2,15 ,47 ,26 ,17 1,66 3,11 2,3
1,32 1,24 1,18 2,29 5,47 1,97 ,5 ,22 ,16 4,17 2,83 2,15
1,27 1,19 1,13 3,1 4,2 1,8 ,47 ,22 ,14 3,09 2,59 2,
1,22 1,35 1,07 6,98 3,56 1,65 ,44 ,21 ,14 2,64 2,36 1,86
1,17 2,47 1, 6,13 3,13 1,49 ,42 ,19 ,13 2,4 2,13 1,75
1,12 2,45 ,93 5,28 2,83 1,34 ,39 ,17 ,28 2,16 2,17 1,63
1,07 2,27 ,96 4,47 2,56 1,23 ,36 ,15 ,42 1,92 2,21 1,54
1,03 2,18 ,95 3,84 2,33 1,13 ,32 ,18 ,37 2,31 2,06 1,84
,98 2,09 ,9 3,31 2,12 1,03 ,29 ,21 ,27 2,19 2,03 1,7
,93 2, ,87 3,82 1,91 ,94 ,28 ,19 ,22 2,1 2,49 1,72
,89 1,9 1,56 3,76 1,77 ,86 ,32 ,17 ,19 2,01 2,95 5,16
,87 1,77 1,26 3,44 1,65 ,85 ,32 ,16 ,19 1,86 3, 10,5
,84 1,63 1,62 3,16 1,54 ,85 ,42 ,13 ,18 1,71 3,9 8,25
,81 1,5 1,61 3,21 1,74 ,77 ,36 ,13 ,2 1,57 4,16 6,33
,83 1,62 6,72 1,38 ,69 ,32 ,13 ,17 1,43 4,18 4,99
1,07 1,53 5,59 1,34 ,68 ,3 ,14 6,88 1,3 4,06 4,07
,96 1,47 1,33 ,29 ,18 1,21 3,5
Merci d'avance.
 
Dernière édition:
Re : transfert feuille dans document texte

re

comme ceci :

Code:
'Janvi  Fevri  Mars   Avril  ...
'01,44  01,43  00,00  00,00  ...

'pour ce qui est numérique
If IsNumeric(.Cells(i, j)) Then
   V$ = Format(.Cells(i, j).Value, "00.00") & "  " '2blancs
Else
   V$ = Left(.Cells(i, j) & Space(7, 7))
End If
'pour les mois
V$ = Left(.Cells(i, j) & Space(5), 5) & "  " '2blancs
 
Dernière édition:
- 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

Discussions similaires

Réponses
4
Affichages
179
Réponses
10
Affichages
282
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
173
Réponses
8
Affichages
471
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
481
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
650
Réponses
3
Affichages
665
Retour