Bonjour
J'ai trouvé un code bien utile sur ce forum (ICI) mais avec une limite par rapport à mon objectif. Je me permet donc de solliciter la communauté.
A partir d'excel, je dois réaliser un export en txt avec chaque valeur à sa place en colonne, sans séparateur, avec des espaces à la place des valeurs vides mais des 0 qui complètent les valeurs de taille inférieure au maximum défini (ex : 01 à la place de 1 si la variable est définie sur 2 caractères). Le code trouvé rempli toutes ces conditions mais juxtapose les valeurs sans tenir compte des variables vides.
Comment procéder pour que l'export laisse des espaces à la place des cellules vides, afin de respecter le colonage souhaité ?
Exemple, à partir de données Excel de ce type :
Résultat souhaité :A B C D 1 22 4 2 1 1 2 1 4
Voici le code que j'ai adapté de celui trouvé plus haut :122 4 2011 2 14
J'utilise Excel 2010, et ce n'est que ma 2e ou 3e tentative de créer une macro VBA, autant dire que je suis plus que débutant !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Sub xlsTOtxt() Dim i As Long FichierCible = Application.GetSaveAsFilename("Test MEN 1", "Fichier texte (*.txt), (*.txt)") If FichierCible = False Then Exit Sub Open FichierCible For Output As #1 If FichierCible <> False Then Sheets("Menage").Select For i = 1 To Range("A:A").End(xlDown).Row Print #1, Space(1 - Len(VBA.Format(Range("A" & i).Value, "0"))) _ & VBA.Format(Range("A" & i).Value, "0") & VBA.Format(Range("B" & i).Value, "000000") & VBA.Format(Range("C" & i).Value, "000") & VBA.Format(Range("D" & i).Value, "000") _ & VBA.Format(Range("E" & i).Value, "000") & VBA.Format(Range("F" & i).Value, "0") & VBA.Format(Range("G" & i).Value, "0") _ & VBA.Format(Range("H" & i).Value, "0") & VBA.Format(Range("I" & i).Value, "0") & VBA.Format(Range("J" & i).Value, "0") _ & VBA.Format(Range("K" & i).Value, "0") & VBA.Format(Range("L" & i).Value, "0") & VBA.Format(Range("M" & i).Value, "0000") _ & VBA.Format(Range("N" & i).Value, "00") & VBA.Format(Range("O" & i).Value, "0") & VBA.Format(Range("P" & i).Value, "0") _ & VBA.Format(Range("Q" & i).Value, "0") & VBA.Format(Range("R" & i).Value, "0") & VBA.Format(Range("S" & i).Value, "0") _ & VBA.Format(Range("T" & i).Value, "0000") & VBA.Format(Range("U" & i).Value, "00") & VBA.Format(Range("V" & i).Value, "0") _ & VBA.Format(Range("W" & i).Value, "0") & VBA.Format(Range("X" & i).Value, "0") & VBA.Format(Range("Y" & i).Value, "0") _ Next i Close #1 MsgBox "Exportation réussie !" End If End Sub
Merci d'avance pour votre aide
Partager