Retour à la ligne dans macro

rocky123

XLDnaute Nouveau
Bonjour,
A l'aide de la macro ci-dessous je converti mon fichier .xls en .txt, le fichier .xls contient 5 colonnes (N°, Etapes, Macro, Fonction et Causes possibles). Dans Fonction et Causes possibles il y a un retour à la ligne auto, mais dans le fichier .txt le retour à la ligne ne se fait que dans Causes possibles.
Est-ce que quelqu'un pourrait me dire pourquoi le retour à la ligne ne se fait pas pour la colonne Fonction dans le fichier .txt. Je n'ai aucune notion de VisualBasic

Ma macro:

Sub Generation()

Dim Chemin As String
Dim NomFichier As String
Dim Num As String
Dim Etape As String
Dim Macro As String
Dim Fonction As String
Dim CausePossible As String
Dim AlarmeFin As String
Dim cpt As Integer

AlarmeFin = "1599"

Range("a4").Select


NomFichier = "C:\Program Files\Schneider Electric\Vijeo-Designer\Vijeo-Frame\Vijeo-Manager\Alarme_G39.txt"

Open NomFichier For Output As #1

Print #1, "::"

Do
If ActiveCell.Text = "" Then
Selection.Offset(1, 0).Range("a1").Select
GoTo fin
End If

Num = ActiveCell.Text
Selection.Offset(0, 1).Range("a1").Select
Etape = ActiveCell.Text
Selection.Offset(0, 1).Range("a1").Select
Macro = ActiveCell.Text
Selection.Offset(0, 1).Range("a1").Select
Fonction = ActiveCell.Text
Selection.Offset(0, 1).Range("a1").Select
CausePossible = ActiveCell.Text
Selection.Offset(1, -4).Range("a1").Select

Dim i As Integer
Dim j As Integer
Dim lgString As Integer
Dim nbLigne As Integer
Dim lgStringInterne As Integer
Dim posString As Integer
Dim Tableau(50) As String

nbLigne = 0
posString = 1

CausePossible = CausePossible + Chr(10)
lgString = Len(CausePossible)

For i = 1 To lgString
If Mid(CausePossible, i, 1) = Chr(10) Then
lgStringInterne = i - posString
Tableau(nbLigne) = Mid(CausePossible, posString, lgStringInterne)
nbLigne = nbLigne + 1
posString = i + 1
End If
Next

Print #1, "::"
Print #1, "ALARME N° " & Num
Print #1, "--------------"
Print #1, "ETAPE: " & Etape & " - " & Macro
Print #1, "FONCTION: " & Fonction
Print #1, ""
Print #1, "CAUSES POSSIBLES:"

If Tableau(0) <> "" Then
For j = 0 To (nbLigne - 1)
Print #1, "- " + Tableau(j)
Next
End If

fin:
cpt = cpt + 1

Loop Until ActiveCell = AlarmeFin Or cpt > 610

Close #1

Range("a4").Select

End Sub
 

porcinet82

XLDnaute Barbatruc
Re : Retour à la ligne dans macro

Salut,

Pas sur de moi, mais au vue du reste du code, je dirai peut etre quelque chose de ce genre :
Modifie dans la macro le code suivant
CausePossible = CausePossible + Chr(10)
lgString = Len(CausePossible)

par celui ci :
CausePossible = CausePossible + Chr(10)
Fonction = Fonction + Chr(10)
lgString = Len(CausePossible)

Mais a mon avis, c'est trop simple pour que ce soit ca...

@+
 
Dernière édition:

rocky123

XLDnaute Nouveau
Re : Retour à la ligne dans macro

Merci pour vos réponses mais ça ne fonctionne pas, j'ai essayé d'écrire Fonction = Fonction + Chr(10), Fonction = Fonction + Chr$(10) Fonction = Fonction + Chr$(13) et aussi Print #1, "FONCTION: " & Fonction & Chr(10) mais rien n'a faire aucun retour à la ligne.
 

mutzik

XLDnaute Barbatruc
Re : Retour à la ligne dans macro

re,

en relisant ton code, il faut déja sortir tes dim ... de la boucle do loop, ensuite, un fichier joint nous aiderait plus, car il y a vraiment matière à alléger et simplifier ton code
 

mutzik

XLDnaute Barbatruc
Re : Retour à la ligne dans macro

re,
sans ton fichier xls, trop dur, + stp le fichier txt de ce que tu voudrais en sortie (tu peux également mettre ce fichier txt dans une feuille pour que l'on voit à quoi cela doit ressembler)
 

Discussions similaires

Statistiques des forums

Discussions
312 094
Messages
2 085 244
Membres
102 834
dernier inscrit
nadusha