Autres formatage excel en txt

LapinoCompâny

XLDnaute Nouveau
s'il vous plait je voudrais une macro qui me permette en 1
- de pouvoir donner une taille maximale à chaque céllule de mon classeur.
si dans le code vba j'entre peut être 10 comme taille maximale pour la première céllule et que l'utilisateur lors de sa saisis dans le fichier excel entre une information de 8 caractères alors il sera compléter de deux espaces pour atteindre 10 caractères.
si l'utilisateur entre plutot une information > 10 caractères alors l'information se vera diminué des derniers caractères dépassant le dixième jusqu'a atteindre 10 caractères net.
- après ce traitement le fichier excel en question doit être enregistré dans un fichier txt

le fichier "exportation produit" est le fichier excel que je veux traiter.
le fichier "exportation" est celui qui doit prendre les informations du premier après traitement expliqué ci haut
je ne suis qu'apprentis en vba sa ne fais pas encore une semaine et je travaille vba dans excel, aidez moi pour cette macro svp et merci d'avance
 

Pièces jointes

  • exportation produit.xlsx
    11.1 KB · Affichages: 8
  • exportation.txt
    12 bytes · Affichages: 8

job75

XLDnaute Barbatruc
Bonjour LapinoCompâny,

Dans votre fichier source il y a des dates, c'est leur format Date qui détermine le nombre de caractères affichés.

De toute façon on voit que vous êtes débutant car il est très rare que l'on ait à faire ce genre d'opération.

A+
 

LapinoCompâny

XLDnaute Nouveau
Bonjour LapinoCompâny,

Dans votre fichier source il y a des dates, c'est leur format Date qui détermine le nombre de caractères affichés.

De toute façon on voit que vous êtes débutant car il est très rare que l'on ait à faire ce genre d'opération.

A+
effectivement job75 je suis encore dans les préliminaires de la chose svp si vous m'avez compris apporter moi une solution car sa fais un long moment que je tourne en rond
 

Dranreb

XLDnaute Barbatruc
Bonjour
Rappel: dans une autre discussion où vous parliez de champs de longueurs fixe, vous aviez joint un exemple de fichier texte (mais aucun classeur pour y mettre et tester de macro).
Or l'examen de ce fichier montaient qu'il étaient de longueur variable mais séparés par des caractères de contrôles de tabulation, laissant douter qu'un fichier à champs de longueur fixe conviendrait.
Vous n'avez toujours pas répondu à cette discussion. Mais votre ton laisse à penser qu'on ne va pas tarder à vous ajouter dans nos listes d'ignorés. :mad:
 

LapinoCompâny

XLDnaute Nouveau
Bonjour
Rappel: dans une autre discussion où vous parliez de champs de longueurs fixe, vous aviez joint un exemple de fichier texte (mais aucun classeur pour y mettre et tester de macro).
Or l'examen de ce fichier montaient qu'il étaient de longueur variable mais séparés par des caractères de contrôles de tabulation, laissant douter qu'un fichier à champs de longueur fixe conviendrait.
Vous n'avez toujours pas répondu à cette discussion. Mais votre ton laisse à penser qu'on ne va pas tarder à vous ajouter dans nos listes d'ignorés. :mad:
svp veillez m'excuser jaurais du enlever la discussion précédente car j'avais mal formuler ce que je voulais c'est effectivement la solution à cette discution si que je veux
 

Dranreb

XLDnaute Barbatruc
Le modèle de fichier texte à produire est vide dans votre premier poste. On ne peut donc pas vérifier si c'est bien un fichier à longueurs de champs fixe qu'il vous faut ou un fichier à champs de longueurs variables séparés par des caractères de tabulation.
Cette procédure produirait un ficher texte à champs fixes de 10 coctets de long :
VB:
Sub ChampsFixes()
   Dim TDon(), L As Long, C As Long, Z As String * 10, Rec As String * 60
   TDon = Feuil1.[A2:F2].Resize(Feuil1.[A1000000].End(xlUp).Row - 1).Value
   Open ThisWorkbook.Path & "Exportation.txt" For Output Access Write As #1
   For L = 1 To UBound(TDon, 1)
      For C = 1 To UBound(TDon, 2)
         LSet Z = TDon(L, C)
         Mid$(Rec, 10 * (C - 1) + 1, 10) = Z
         Next C
      Print #1, Rec: Next L
   Close #1
   End Sub
 

job75

XLDnaute Barbatruc
Bonjour LapinoCompâny, Bernard,
bjr monsieur je le veux juste pour convertir mes fichiers excel sans casse têe
Avec le fichier joint et ces macros vous devriez comprendre j'espère que la "largeur fixe" est parfaitement inutile :
VB:
Sub Creer_Fichier_Texte()
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'si le fichier est déjà créé
On Error Resume Next 'si le fichier texte est ouvert
ActiveSheet.Copy
Columns("B:C").NumberFormat = "dd/mm/yyyy"
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\Fichier Texte.txt", xlText
ActiveWorkbook.Close False
End Sub

Sub Ouvrir_Fichier_Texte()
Application.DisplayAlerts = False 'si le fichier est déjà ouvert
Workbooks.OpenText ThisWorkbook.Path & "\Fichier Texte.txt", Local:=True
Columns.AutoFit 'ajustement largeurs
End Sub
A+
 

Pièces jointes

  • exportation produit(1).xlsm
    26.1 KB · Affichages: 1

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16