Sub Bouton3_QuandClic()
Dim i As Long, j As Integer, decal As Integer, valeur As Double, ligne(1 To 6), neg As Boolean
For i = 4 To Range("A65536").End(xlUp).Row ' Je commence à la ligne 4 jusqu'à la dernier ligne
[COLOR="red"] For j = 1 To 6
If Cells(i, j + 1) <> 0 Then Exit Sub
Next
If j < 7 Then[/COLOR]
Open ThisWorkbook.Path & "\" & Range("A" & i) & ".lin" For Output As #1 ' Ouverture du fichier en ecriture
Print #1, Range("tete") ' J'ecris l'entete dans le fichier
Print #1, Chr(13) ' j'ecris une ligne vierge
decal = 0 ' Decalage pour la position de la valeur, mettre les 0.0 (6 valeur, 2 groupes de 3
For j = 1 To 6 ' Il y a 6 valeurs, 3 KK et KM
decal = decal + 1 ' Incrementation du decalage
If Cells(i, j + 1) = 0 Then ' Si la valeur = 0
ligne(j) = "" ' remise à zero de la ligne
Else
If j > 3 Then ligne(j) = "K M " Else ligne(j) = "K K " ' Entete de la ligne en fonction de la valeur
valeur = Cells(i, j + 1) ' recuperation de la valeur de la cellule
If valeur < 0 Then neg = True Else neg = False ' Mise en place de neg = true si valeur negative
valeur = Abs(valeur) * 100 ' Prendre la valeur absolu et * 100 pour enlever la virgule
ligne(j) = ligne(j) & Left("0.0 0.0 0.0 ", (decal - 1) * 4) ' mise en place des 0.0
If neg Then ligne(j) = ligne(j) & "-" ' ajout du signe si valeur negative
' Ajout des Zeros derieres pour avoir un valeur sur 10 chiffres
ligne(j) = ligne(j) & Left(CStr(valeur) & "00000000000", 10)
' Mise en place de l'Exposant E- (12 - le nombre de caracteres dans valeur)
ligne(j) = ligne(j) & "E-" & CStr(12 - Len(CStr(valeur))) & " "
' Ajour des series de Zero
ligne(j) = ligne(j) & Left("0.0 0.0 0.0 ", (3 - decal) * 4)
' Mise en^place des valeurs nules
ligne(j) = ligne(j) & "0000000000+E0 0000000000+E0 0000000000+E0"
If j = 3 Then decal = 0 ' Reinitialisation du decalage pour 2eme serie
End If
Next j ' Traitement de la valeur suivante
For j = 1 To 6: Print #1, ligne(j): Next j ' Mise en place dans le fichier des lignes Construites
Print #1, Range("pied") ' Ecriture du pied de page
Close #1 ' Fermeture du fichier
' MsgBox "Fichier : " & ThisWorkbook.Path & "\" & Range("A" & i) & ".lin" & vbCrLf & vbCrLf & _
Range("tete") & vbCrLf & vbCrLf & ligne(1) & vbCrLf & ligne(2) & vbCrLf & ligne(3) & _
vbCrLf & ligne(4) & vbCrLf & ligne(5) & vbCrLf & ligne(6) & vbCrLf & Range("pied")
[COLOR="Red"]End If[/COLOR]
Next i ' Ligne de la base suivante
End Sub