Macro enregistre sous format texte

Bonjour,

j'ai un problème courant sur une petite macro automatique.

Voici le texte de la macro :

Sheets("TXT A INTEG").Select

Range("A1").Select

Range(Selection, Selection.End(xlDown)).Select

Selection.Copy

Workbooks.Add

ActiveSheet.Paste

Columns("A:A").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Application.CutCopyMode = False

ChDir "C:\"

ActiveWorkbook.SaveAs Filename:="C:\INTEGRATION.txt", FileFormat:= _

xlTextMSDOS, CreateBackup:=False

End Sub

Donc je copie un onglet dans une nouvelle feuille, fais copie valeur et enregistre en format texte MSDOS

Lorsque je le fais manuellement pas de problème le fichier texte convient,

lorsque j'applique la macro, le fichier texte a des guillemet en début et fin de ligne "texte "

le problème est a partir de SaveAs, il me manque une instruction pour éviter qu'il me mette les guillemets

merci de votre aide

Daniel

Bonjour,

Essaie ceci :

Sub test()
Sheets("TXT A INTEG").Copy
With Range(Range("A1"), Selection.End(xlDown))
    .Copy
    .PasteSpecial Paste:=xlPasteValues
End With
ChDir "C:\"
ActiveWorkbook.SaveAs Filename:="C:\INTEGRATION.txt", FileFormat:= _
xlText, CreateBackup:=False
End Sub

si ok, n'oublie pas de cloturer le fil... clique sur le V vert

Amicalement

bon même problème, j'avais déjà enlevé le MSDOS mais il met des guillemets à chaque ligne avec la macro.

Alors que lorsque je crée la macro automatique le fichier est bon

C'est vrai que j'ai compliqué le début de la macro et que tu l'as simplifié.

bon le problème reste entier.

au secours

re,

Essaie de remplacer cette ligne

ActiveWorkbook.SaveAs Filename:="C:\INTEGRATION.txt", FileFormat:= xlText, CreateBackup:=False

par

ActiveWorkbook.SaveAs Filename:="C:\INTEGRATION.txt", FileFormat:= xlTextPrinter, CreateBackup:=False

Sinon faudrait voir le fichier.

Amicalement

Effectivement cela fonctionne pour les guillemets mais il ne prends pas toute la largeur, j'ai plus de 400 caractères sur une seule cellule.

voila les 15 premières lignes du fichier avec la macro

merci

Daniel

100integration.zip (15.32 Ko)

Bon pas de nouvelle à l'horizon

je voudrais bien une solution pour faire une macro qui résoudrait mon problème , j'explique

j'ai des guillemets sur le fichier texte au début et a la fin

Donc je voudrais ouvrir le fichier texte avec la macro puis faire "édition remplacer" les guillemets par rien

et donc comme ca, j'ai ma solution, mais je ne sais pas faire ce programme en macro, si une personne peut m'aider ?

merci

Re,

essaie avec ce code

Sub test()
'Dan
Dim c As Range
With Sheets("INTEGRATION")
For Each c In .UsedRange
    c = Application.WorksheetFunction.Trim(c)
Next
End With
With ActiveWorkbook.Sheets("INTEGRATION")
    .Copy
With Range(Range("A1"), Selection.End(xlDown))
    .Copy
    .PasteSpecial Paste:=xlPasteValues
End With
ChDir "C:\"
    .SaveAs Filename:="C:\INTEGRATION.txt", FileFormat:= _
xlTextPrinter, CreateBackup:=False
End With
End Sub

Si ok, clique sur le V vert pour cloturer le fil

Amicalement

effectivement il n'y a plus des guillemets mais je n'ai plus tous les espaces nécessaires pour une intégration.

j'ai besoin de garder tous les espaces entre les champs jusqu'a la 418 positions de caractères.

je voulais faire édition remplacer sur un fichier texte sans l'ouvrir sur excel, je pense que cela est possible ou une autre solution

j'ai remplacer le FileFormat:= _

xlTextPrinter

par FileFormat:= _

xlTextMSDOS

sinon il arrête les lignes vers 220 caractères

re

effectivement il n'y a plus des guillemets mais je n'ai plus tous les espaces nécessaires pour une intégration

Quelle intégration ?? Dans ta demande tu ne parles que des guillemets...

As-tu essayer le code sur le fichier que tu as joint ici ? le code laisse un espace entre chaque groupe de mots.

Vois le fichier joint avec le résultat donné

A te relire

73integration.txt (0.99 Ko)

oui effectivement je ne parle pas d'espace, mais le fichier excel d'origine à des espaces définis pour une intégration dans un système par exemple du caractère 26 a 36 c'est le numéro de compte comptable.

le fichier excel d origine prends en compte tous les impératifs intégration et les guillemets me décalent tout et n'ont rien a faire la.

de plus un truc étrange c'est que la première ligne après macro n'a pas de guillemet.

Tout ça me dépasse

Bonjour ,

Dans le fichier Excel , serait-il possible d'avoir un séparatif entre chaque donnée, ou avoir une définition des longueur de chacune des données.

Pourrais tu également nous donner un fichier donnant le résultat a obtenir ?

Je pense qu'il faut un scan un peu plus complet de l'onglet pour préparer les données , puis une vraie écriture de données dans un fichier Texte.

Re,

Cela a l'air plus compliqué que précisé dans ta demande.

En gros ce que je t'ai proposé ne sert pas on dirait....

Afin que je comprenne la finalité , pourrais-tu mettre un fichier plus complet avec un résulat de ce que tu voudrais.

A te relire

Bonjour,

Désolé, pb de débutant j'avais pas vu la seconde page

Bon je vais mettre le fichier intégration excel et le fichier texte que je voudrais obtenir.

Je vais me servir du fichier texte dans un système qui intègre suivant les positions dans la ligne, c'est a dire en ligne 2 par exemple la position 389 de la ligne commence la clef de lettrage "L" dans l'exemple.

C'est pour cela que je dois garder tous les espaces vide, jusqu'à la position 419.

L'opération manuel "enregistrer sous format MSDOS texte" me donne le bon résultat, mais la même macro me sort des guillemets.

A vous relire

merci

36integration.txt (11.76 Ko)
24integration.zip (15.33 Ko)

Bonjour,

Le fichier texte sera enregistré sous le même nom que le classeur, sauf bien sur l'extension qui devient .txt et dans le même dossier que le fichier Excel.

Le format semble conforme à l'attente :

173integration.zip (14.76 Ko)

Bonsoir

ca a l'air de fonctionner

je vous dis ça demain au boulot en faisant les essais

Je clôturerai demain après essai

merci

Rechercher des sujets similaires à "macro enregistre format texte"