Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Conversion en format .prn

495 views
Skip to first unread message

Nass

unread,
Jun 21, 2004, 9:21:05 AM6/21/04
to
Bonjour à tous,

J'ai un petit problème lors de la conversion d'un fichier
excel en format texte (séparateur espace); Ce format est
un format prn dispo lors de l'enregistrement d'un fichier
sous excel. Bien que je retrouve un fichier longueur fixe
lorsque j'ouvre le fichier avec extension prn sous
wordpad, les données qui se trouve sur une même ligne sous
excel se retrouve à la ligne à partir du caractères 226.
Cela est très embêtant car je doit transérer ce fichier
sous AS400 et le paramétrage est stricte !
Qq pourrait me dire pourquoi les données se trouvant sur
une meme ligne sous excel, se retrouve à la ligne à partir
du caractère 226 ?
Sinon y aurat-il un autre moyen de convertir un fichier
excel en longueur fixe avec les champs numériques cadrés à
droite (sans séparateur) et les champs alpha cadrés à
gauche.

D'avance merci

Nasser

patrice

unread,
Jun 21, 2004, 11:13:35 AM6/21/04
to
Salut,

ça ne serait pas seulement un problème avec Wordpad ?
essaye de contrôler ton fichier evec EDIT (en commande DOS)


>-----Message d'origine-----

>.
>

Papy Bernard

unread,
Jun 21, 2004, 11:58:57 AM6/21/04
to
Slt,
De "Nass"

;==========
Bonjour à tous,

D'avance merci
;===========

1/ Et si tu changes la taille de la police Courrier -of course- (<8),
est-ce que tu as toujours un retour chariot au 226ème caractère ? WordPad
importe un fichier et l'adapte à son format d'affichage par défaut (taille
de police en particulier) ce qui ne change rien à ton fichier
2/ Je fais l'hypothèse que ton transfert sur AS400 doit être fait au
format ASCII (et non ANSI) et vraisemblablement dans un format *séquentiel*
(largeur fixe des champs, pour atterrir dans une table) et non *délimité*
par un quelconque séparateur. En l'occurrence le séparateur(espace) est
fallacieux.

--
A+
Papy Bernard (RTCien malgré lui)

anon...@discussions.microsoft.com

unread,
Jun 21, 2004, 5:48:59 PM6/21/04
to
Bonsoir,

Merci pour vos réponses mais je ne pense pas que cela est
du à un formatage de wordpad car lorsque je transfère le
fichier sur AS400 il me donne le double de ligne qu'à
l'origine.
J'ai reformater la police et tjs pareil.
Oui le format de fichier doit être en loingueur fixe sans
séparateur(,; ou autres)

Je ne sais pas comment faire

Papy Bernard

unread,
Jun 21, 2004, 6:04:44 PM6/21/04
to
Slt,
D'<anon...@discussions.microsoft.com>
;===============
Bonsoir,

;===========

1/ Le formatage, via la taille des polices n'est qu'une question d'affichage
et non une question de longueur 'acceptable' de la chaîne de caractères dans
la table de l'AS400.
2/ Se renseigner auprès de l'administrateur de l'AS400 -et de l'application-
pour savoir ce qui est possible, voire impératif. Structure de la table de
données (séquentielle).

anon...@discussions.microsoft.com

unread,
Jun 23, 2004, 5:57:07 AM6/23/04
to
J'ai trouvé la solution : Il faut ajouter ce code pour
avoir tout sur une même ligne car le format prn est limité
à 240 caractères (ce qui explique qu'au delà, il y a un
retour à la ligne).
Merci à ce qui m'ont apporté leur aide

Ci joint le code.

Code VBA. Avant de lancer la macro, sélectionnez les
cellules que vous souhaitez exporter dans le fichier texte.

###########################################################
##############
' Code Visual Basic anglais

'Nom de la macro
Sub ExporteDansPRN()
'Déclaration des variables utilisées dans cette procédure
Dim nmFichier As String
Dim nmFichierSauvé As String
Dim txtCellule As String
Dim iLigne As Integer
Dim iColonne As Integer
Dim idFichier As Integer
Dim largCellule As Integer
Dim nbLignes As Integer
Dim nbColonnes As Integer

'Récupère le nom du classeur actif et change l'extension
en PRN
nmFichier = UCase(Application.Substitute
(ActiveWorkbook.Name, ".XLS", _
"")) & ".PRN"

'Affiche la boîte de dialogue "Enregistrer sous" avec PRN
par défaut
nmFichierSauvé = Application.GetSaveAsFilename(nmFichier, _
"Texte (séparateur: espace) (*.prn), *.prn", , _
"Export de fichiers texte")

'Regarde si Annuler a été choisi
If nmFichierSauvé = False Then Exit Sub

'Récupère le premier n° de fichier libre
idFichier = FreeFile()

'Ouvre le fichier sélectionné en Sortie
Open nmFichierSauvé For Output As #idFichier

'Stocke le nombre total de lignes et de colonnes dans des
variables
nbLignes = Selection.Rows.Count
nbColonnes = Selection.Columns.Count

'Parcourt chaque cellule de gauche à droite, puis de haut
en bas
For iLigne = 1 To nbLignes
For iColonne = 1 To nbColonnes
With Selection.Cells(iLigne, iColonne)

'Stocke la largeur de colonne de la cellule courante
largCellule = Application.Round(.ColumnWidth, 0)

'Stocke le contenu de la cellule
txtCellule = .Text

'Complète ou tronque le contenu de la cellule d'après la
largeur
'de colonne
If Len(txtCellule) < largCellule Then
Select Case .HorizontalAlignment
Case xlGeneral, xlFill 'Standard, Recopié
If Application.IsNumber(.Value) Then
txtCellule = String(largCellule - Len(txtCellule), " ") _
& txtCellule
Else
txtCellule = txtCellule & _
String(largCellule - Len(txtCellule), " ")
End If
Case xlLeft, xlJustify 'Gauche, Justifié
txtCellule = txtCellule & _
String(largCellule - Len(txtCellule), " ")
'Centré, Centré sur plusieurs colonnes
Case xlCenter, xlCenterAcrossSelection
txtCellule = String((CInt(largCellule - Len(txtCellule)) _
/ 2 + 0.1), " ") & txtCellule _
& String((largCellule - Len(txtCellule)) \ 2, " ")
Case xlRight 'Droite
txtCellule = String(largCellule - Len(txtCellule), " ") &_
txtCellule
End Select
Else
txtCellule = Left(txtCellule, largCellule)
End If

End With

'Ecrit le contenu dans le fichier
Print #idFichier, txtCellule;


'Boucle sur la prochaine colonne
Next iColonne

'Ajoute un Retour Chariot à la fin de chaque ligne
If iLigne <> nbLignes Then Print #idFichier, ""

'Boucle sur la prochaine ligne
Next iLigne

'Ferme le fichier .PRN
Close #idFichier

End Sub
###########################################################
##############

0 new messages