Sub ExportToTxt()
Dim sheetName As String
‘Enregistrer le nom de la feuille actuelle
startSheetName = ActiveSheet.Name
‘Exemples d’utilisation de la fonction WriteInTxtFile
WriteInTxtFile « Enregistrables », « Registrables », 4
WriteInTxtFile « Actions des séquences », « Actions », 4
WriteInTxtFile « Dialogues réponses », « DialogAnswers », 4
WriteInTxtFile « Localisation », « Localization », 3
‘Afficher de nouveau la feuille active au début de l’action
Sheets(startSheetName).Activate
End Sub
Public Function WriteInTxtFile(sheetName As String, fileName As String, columnCount As Integer)
Dim objStream As Object, i As Integer, s As String
‘Activer la feuille dont on va exporter le contenu
Sheets(sheetName).Activate
‘Création de l’objet qui gère le stream de texte à exporter
Set objStream = CreateObject(« ADODB.Stream »)
‘Initialisation
objStream.Open
‘Redéfinir la position ainsi que l’encodage en UTF-8
objStream.Position = 0
objStream.Charset = « UTF-8 »
‘Démarrer en ligne 2 (la première ligne étant un en-tête dans mon document Excel)
For r = 2 To Range(« A1048576 »).End(xlUp).Row
s = « »
c = 1
‘Construire la ligne sous forme de string
While c <= columnCount
s = s & Cells(r, c)
If Not c = columnCount Then
‘Ajouter le contenu de la cellule au string ainsi que le séparateur de cellule (ici une tabulation)
s = s & vbTab
End If
c = c + 1
Wend
‘S’il n’y a pas que des cellules vides dans la ligne, ajouter cette ligne dans le stream
If Not Len(s) = columnCount – 1 Then
‘Ajouter le carriage return (nouvelle ligne façon Windows)
s = s & vbCr & vbLf
‘Écrire dans le stream
objStream.WriteText s
End If
Next r
‘Enregistrer le fichier texte final à côté du document Excel ouvert
objStream.SaveToFile ActiveWorkbook.Path & « / » & fileName & « .txt », 2
objStream.Close
End Function