Exportation texte sans délimiteur avec alignement à droite pour
Résolu
hiphophi
Messages postés
2
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Mon but est de convertir un fichier excel en txt avec espaces sans séparateur pour faire un import ascii dans un logiciel comptable.
Après plusieurs recherches, j'ai trouvé ce langage qui fonctionne :
Cependant la valeur de la colonne G à l'origine est un chiffre et avec cette exportation
j'obtiens une série de chiffre collés vers la gauche sans décimales :
60012
40013
100025
alors qu' il faudrait :
600.12
400.13
1000.25
J'ai trouvé le langage VBA qui fonctionne pour cela :
Mais cela fonctionne que pour la seule colonne de chiffres, je n'arrive pas à rajouter des lignes supplémentaires de langage pour exporter les autres colonnes qui ne sont pas des chiffres mais composées d'une série de caractères.
Avez vous une idée ?
Je vous remercie bien par avance pour votre aide.
Mon but est de convertir un fichier excel en txt avec espaces sans séparateur pour faire un import ascii dans un logiciel comptable.
Après plusieurs recherches, j'ai trouvé ce langage qui fonctionne :
Sub xlsTOtxt()
Dim i As Long
FichierCible = Application.GetSaveAsFilename("monfichiertexte", "Fichier texte (*.txt), (*.txt)")
If FichierCible = False Then Exit Sub
Open FichierCible For Output As #1
If FichierCible <> False Then
For i = 1 To Range("A:A").End(xlDown).Row
Print #1, Left(Range("A" & i).Value, 1) & Space(1 - Len(Left(Range("A" & i).Value, 1))) & Left(Range("B" & i).Value, 8) & Space(8 - Len(Left(Range("B" & i).Value, 8))) & Left(Range("C" & i).Value, 2) & Space(2 - Len(Left(Range("C" & i).Value, 2))) & _
Left(Range("D" & i).Value, 9) & Space(9 - Len(Left(Range("D" & i).Value, 9))) & Left(Range("E" & i).Value, 21) & Space(21 - Len(Left(Range("E" & i).Value, 21))) & Left(Range("F" & i).Value, 2) & Space(2 - Len(Left(Range("F" & i).Value, 2))) & _
Left(Range("G" & i).Value, 12) & Space(12 - Len(Left(Range("G" & i).Value, 12))) & Left(Range("H" & i).Value, 52) & Space(52 - Len(Left(Range("H" & i).Value, 52))) & Left(Range("I" & i).Value, 3) & Space(3 - Len(Left(Range("I" & i).Value, 3))) & _
Left(Range("J" & i).Value, 3) & Space(3 - Len(Left(Range("J" & i).Value, 3))) & Left(Range("K" & i).Value, 1) & Space(1 - Len(Left(Range("K" & i).Value, 1))) & Left(Range("L" & i).Value, 11) & Space(11 - Len(Left(Range("L" & i).Value, 11))) & _
Left(Range("M" & i).Value, 23) & Space(23 - Len(Left(Range("M" & i).Value, 23)))
Next i
Close #1
MsgBox "Exportation réussie !"
End If
End Sub
Cependant la valeur de la colonne G à l'origine est un chiffre et avec cette exportation
j'obtiens une série de chiffre collés vers la gauche sans décimales :
60012
40013
100025
alors qu' il faudrait :
600.12
400.13
1000.25
J'ai trouvé le langage VBA qui fonctionne pour cela :
Sub xlsTOtxt()
Dim i As Long
FichierCible = Application.GetSaveAsFilename("monfichiertexte", "Fichier texte (*.txt), (*.txt)")
If FichierCible = False Then Exit Sub
Open FichierCible For Output As #1
If FichierCible <> False Then
For i = 1 To Range("A:A").End(xlDown).Row
Print #1, Space(12 - Len(VBA.Format(Range("G" & i).Value, "0.00"))) & VBA.Format(Range("G" & i).Value, "0.00")
Next i
Close #1
MsgBox "Exportation réussie !"
End If
End Sub
Mais cela fonctionne que pour la seule colonne de chiffres, je n'arrive pas à rajouter des lignes supplémentaires de langage pour exporter les autres colonnes qui ne sont pas des chiffres mais composées d'une série de caractères.
Avez vous une idée ?
Je vous remercie bien par avance pour votre aide.
A voir également:
- Exportation texte sans délimiteur avec alignement à droite pour
- Les textes ne doivent pas être en retrait à droite et à gauche - Guide
- Texte de chanson gratuit pdf - Télécharger - Vie quotidienne
- Transcription audio en texte word gratuit - Guide
- Excel cellule couleur si condition texte - Guide
- Formule excel si contient texte alors texte ✓ - Forum Excel
3 réponses
Bonjour,
Dans la sub xlsTOtxt() remplace tout simplement
Left(Range("G" & i).Value, 12) & Space(12 - Len(Left(Range("G" & i).Value, 12)))
par
Space(12 - Len(VBA.Format(Range("G" & i).Value, "0.00"))) & VBA.Format(Range("G" & i).Value, "0.00")
Dans la sub xlsTOtxt() remplace tout simplement
Left(Range("G" & i).Value, 12) & Space(12 - Len(Left(Range("G" & i).Value, 12)))
par
Space(12 - Len(VBA.Format(Range("G" & i).Value, "0.00"))) & VBA.Format(Range("G" & i).Value, "0.00")
Bonjour
ça fonctionne !
merci lundi je testerai au bureau l'importation dans mon logiciel comptable
Quadratus, je vais gagner beaucoup de temps de saisie ..
bon we
ça fonctionne !
merci lundi je testerai au bureau l'importation dans mon logiciel comptable
Quadratus, je vais gagner beaucoup de temps de saisie ..
bon we