Xls-fichier .lin pour données

  • Initiateur de la discussion Initiateur de la discussion gatti
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

gatti

Guest
Bonjour,
j’ai un fichier excel avec plein de données que j’aimerais importer dans un programme professionnel au format lin.

Le fichier xls contient 7 colones
Nom A B C D E F

J’aimerais trouver une macro qui :
1) lise la table et crée pour chaque ligne un fichier (txt ou lin)
2) avoir une possibilité d’ajouter automatiquement des données (constantes)

Je ne sais pas si c’est réalisable…

Pour le point 2 voila un exemple de la structure :

Fichier intitulé : cc1.lin (suivants : cc2.lin, cc3.lin, ...)
L’Nom’

K K X valeurA Y valeurB Z valeurC K 2
K M X valeurD Y valeurE Z valeurF K 2

E

Merci d’avance !
 

Pièces jointes

Re : Xls-fichier .lin pour données

Re bonjour,
Après relecture de mon message initial je me demande si c'est un peu brouillons 😀

Donc de mon coté j'ai regrouper tans que possible les données et au final j'ai :

LES COLONNES :
NOM FICHIER.LIN________A____B____C___D____E____F

la macro devra faire une boucle et créer pour X ligne (660) X fichier .LIN en incluant les colonnes A, B, C, D, E, F l'une sur l'autre et si la colonne est vide ne rien faire.

Ce qui donne pour une ligne avec des valeur pour C, E et F
contenu fichier : NOM_DE_FICHIER.LIN
C
E
F

NB: le fichier est un fichier simple sans format spécial. Il peut donc très bien être fait avec le bloc note!

Voila je remercie d'avance l'âme charitable qui pourra me faire un petit exemple que je puisse me débrouiller seul!
 
Re : Xls-fichier .lin pour données

S'il vous plait?!
Quelqu'un pourrait-il me donner un exemple de "structure" de fichier pour enregistrer une serie de donnée (7 valeurs en ligne) dans un nouvel onglet mais sous forme colonne cette fois?
Un simple exemple avec 2 lignes me suffisent car j'ai fait l'opration manuellement et je n'arrive pas a comprendre a quel stade je dois faire la boucle, quels paramètre je peux changer et surtout que mettre à la place des paramètres.
 
Re : Xls-fichier .lin pour données

Bonjour

Le probleme est que tu es trop vague, personnellement, je n'ai aucune connaissance de ces fichiers, meme si c'est un fichier de type TXT, tu ne precises en aucun cas sa structure

Je te suggere de poster : un exemple de fichier Xls avec ce que tu detiens et un exemple de fichier LIN, que l'on puisse voir sa structure

Les fichiers de preference Zippés ne doivent pas depassser 48,8 Ko Chacun

@ te lire

Edit : Regarde dans sauvegarder sous , Au bas de la fenetre : Type de fichier
tu as plein de types differents en fichier text
 
Dernière édition:
Re : Xls-fichier .lin pour données

Bonjour, voila les fichiers exemples.

Si il faut un complément d'informations faites moi savoir!

Pour le format de fichier LIN il n'existe pas, mais un fichier txt unicode convient et j'utiliserais un programme pour modifier l'extension des 600 fichiers générés (pour simplifier le traitement du volume d'informations on peut limiter le nombre de boucle a une 30aine et je relancerais la macro chaque fois (Dim i=1 to 30 suffisant).

Merci de te pencher sur mon problème.
 

Pièces jointes

Re : Xls-fichier .lin pour données

re:

Ton fichier en retour avec un bouton et une macro

Je fichier généré est pour l'instant afficher en MsgBox pour controle si tout est Ok, reprendre la macro, supprimer la ligne MsgBox et enlever toutes les apostrophes au debut des lignes (Mise en commentaire des lignes generant les fichiers LIN)

Tu as une feuille param avec en B1 la ligne d'entete et en B2 la ligne de Fin

en esperant avoir compris
 

Pièces jointes

Re : Xls-fichier .lin pour données

Excellent à la vitesse ou tu as trouvé... OO

J'ai étoffé l'exemple pour avoir un truc plus précis!
En fait, FX, FY et FZ ont K K comme début de ligne et les MX, MY et MZ un K M.

Ensuite, il faut imaginer que toutes les données doivent êtres prisent en compte.

un exemple sans valeur pour illustrer cela :

TABLEAU XLS avec une ligne : NOMFICHIER FX FY FZ MX MY MZ

-> fichier NOMFICHIER.lin
ENTETEFICHIER
K K FX 0.0 0.0 0000000000E+0 0000000000E+0 0000000000E+0
K K 0.0 FY 0.0 0000000000E+0 0000000000E+0 0000000000E+0
K K 0.0 0.0 FZ 0000000000E+0 0000000000E+0 0000000000E+0
K M MX 0.0 0.0 0000000000E+0 0000000000E+0 0000000000E+0
K M 0.0 MY 0.0 0000000000E+0 0000000000E+0 0000000000E+0
K M 0.0 0.0 MZ 0000000000E+0 0000000000E+0 0000000000E+0
PIEDFICHIER

Si FX devant être égal à 0 -> pas de ligne ou une ligne blanche
Si FY devant être égal à 0 -> pas de ligne ou une ligne blanche
Si FZ devant être égal à 0 -> pas de ligne ou une ligne blanche
Si MX devant être égal à 0 -> pas de ligne ou une ligne blanche
...

Voila encore mille merci tu m'economise des jours de saisies!

PS : je vais tenter de comprendre le programme car ca pourra être utile pour plein de choses!
 

Pièces jointes

Re : Xls-fichier .lin pour données

Arf mince tu as perdu ta pause de midi pour ca...

moi j'ai fais de même, voici mon code (je n'ais pas encore vu le tiens.... masi il sera surement plus epuré!^^)

Sub Bouton3_QuandClic()
Dim i As Long, valeur As Double, ligne1 As String, ligne2 As String, ligne3 As String, ligne4 As String, ligne5 As String, ligne6 As String, ligne7 As String, neg As Boolean
For i = 3 To Range("A65536").End(xlUp).Row
' deselectionner les 3 prochaine ligne si vous ne voulez pas la création des fichiers
Open ThisWorkbook.Path & "\" & Range("A" & i) & ".lin" For Output As #1
Print #1, Range("tete")
Print #1, Chr(13)
valeur = Range("B" & i): If valeur = 0 Then ligne1 = "" Else ligne1 = "K K "
If valeur < 0 Then neg = True Else neg = False
valeur = Abs(valeur) * 100
If neg Then ligne1 = ligne1 & "-"
If valeur = 0 Then ligne1 = "" Else ligne1 = ligne1 & Left(CStr(valeur) & "00000000000", 10) & "E-" & CStr(12 - Len(CStr(valeur)))
If valeur = 0 Then ligne1 = "" Else ligne1 = ligne1 & " 0.0 0.0 0000000000E+0 0000000000E+0 0000000000E+0"
' création fichier
Print #1, ligne1

valeur = Range("C" & i): If valeur = 0 Then ligne2 = "" Else ligne2 = "K K 0.0 "
If valeur < 0 Then neg = True Else neg = False
valeur = Abs(valeur) * 100
If neg Then ligne2 = ligne2 & "-"
If valeur = 0 Then ligne2 = "" Else ligne2 = ligne2 & Left(CStr(valeur) & "00000000000", 10) & "E-" & CStr(12 - Len(CStr(valeur)))
If valeur = 0 Then ligne2 = "" Else ligne2 = ligne2 & " 0.0 0000000000E+0 0000000000E+0 0000000000E+0"
' création fichier
Print #1, ligne2

valeur = Range("D" & i): If valeur = 0 Then ligne3 = "" Else ligne3 = "K K 0.0 0.0 "
If valeur < 0 Then neg = True Else neg = False
valeur = Abs(valeur) * 100
If neg Then ligne3 = ligne3 & "-"
If valeur = 0 Then ligne3 = "" Else ligne3 = ligne3 & Left(CStr(valeur) & "00000000000", 10) & "E-" & CStr(12 - Len(CStr(valeur)))
If valeur = 0 Then ligne3 = "" Else ligne3 = ligne3 & " 0000000000E+0 0000000000E+0 0000000000E+0"
' création fichier
Print #1, ligne3

valeur = Range("E" & i): If valeur = 0 Then ligne4 = "" Else ligne4 = "K M "
If valeur < 0 Then neg = True Else neg = False
valeur = Abs(valeur) * 100
If neg Then ligne4 = ligne4 & "-"
If valeur = 0 Then ligne4 = "" Else ligne4 = ligne4 & Left(CStr(valeur) & "00000000000", 10) & "E-" & CStr(12 - Len(CStr(valeur)))
If valeur = 0 Then ligne4 = "" Else ligne4 = ligne4 & " 0.0 0.0 0000000000E+0 0000000000E+0 0000000000E+0"
' création fichier
Print #1, ligne4

valeur = Range("F" & i): If valeur = 0 Then ligne5 = "" Else ligne5 = "K M 0.0 "
If valeur < 0 Then neg = True Else neg = False
valeur = Abs(valeur) * 100
If neg Then ligne5 = ligne5 & "-"
If valeur = 0 Then ligne5 = "" Else ligne5 = ligne5 & Left(CStr(valeur) & "00000000000", 10) & "E-" & CStr(12 - Len(CStr(valeur)))
If valeur = 0 Then ligne5 = "" Else ligne5 = ligne5 & " 0.0 0000000000E+0 0000000000E+0 0000000000E+0"
' création fichier
Print #1, ligne5

valeur = Range("G" & i): If valeur = 0 Then ligne6 = "" Else ligne6 = "K M 0.0 0.0 "
If valeur < 0 Then neg = True Else neg = False
valeur = Abs(valeur) * 100
If neg Then ligne6 = ligne6 & "-"
If valeur = 0 Then ligne6 = "" Else ligne6 = ligne6 & Left(CStr(valeur) & "00000000000", 10) & "E-" & CStr(12 - Len(CStr(valeur)))
If valeur = 0 Then ligne6 = "" Else ligne6 = ligne6 & " 0000000000E+0 0000000000E+0 0000000000E+0"
' création fichier
Print #1, ligne6

' création fichier
Print #1, Range("pied")
Close #1
MsgBox "Fichier : " & ThisWorkbook.Path & "\" & Range("A" & i) & ".lin" & vbCrLf & vbCrLf & _
Range("tete") & vbCrLf & vbCrLf & ligne1 & vbCrLf & ligne2 & vbCrLf & ligne3 & vbCrLf & ligne4 & vbCrLf & ligne5 & vbCrLf & ligne6 & vbCrLf & Range("pied")
Next i
End Sub

Si tu as des commentaire sur le code hesite pas!^^

Car apparement les possibilités qu'offre le VBA sont infinie donc je vasi voir pour me former un peu sur ca.

En tous cas merci a toi
 
Re : Xls-fichier .lin pour données

re:

Avent de m'inscrire (11/2006), je ne connaissais pas VBA, et pour une de mes plus grandes Hontes, je dedaignais Excel, ce forum m'a permis de mieux connaitre cette application et de l'apprecier à sa juste valeur

je tiens à preciser quand meme que je fais de l'informatique (analyste programmeur) depuis 1978

Cordialement
 
Re : Xls-fichier .lin pour données

J'avoue ne pas tous comprendre à ton code, ce qui ne m'aurais pas gène si il ne me marquait pas un bug...

Je cherche ce soir et je me permettrais de solliciter a nouveau pour une aide demain.

Encore mille merci
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
570
Retour