Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VBA] Exporter Colonne

4 réponses
Avatar
Sam Vimaire
Bonjour.
J'ai besoin d'un coup de paluche, je n'ai pas vraiment d'expérience en
VBA.

Difficulté n°1:
Je souhaite creer une macro me permettant d'exporter le contenu d'une
colonne excel vers un fichier texte.

Difficulté n°2:
Le contenu de la colonne contient du texte au format Unicode


Merci pour tout exemple de code qui me permette de mettre le pied à
l'étrier.

4 réponses

Avatar
JB
Bonjour,

http://boisgontierjacques.free.fr/pages_site/fichierssequentiels.htm#Exporte

JB
http://boisgontierjacques.free.fr



On 21 sep, 11:58, Sam Vimaire wrote:
Bonjour.
J'ai besoin d'un coup de paluche, je n'ai pas vraiment d'expérience en
VBA.

Difficulté n°1:
Je souhaite creer une macro me permettant d'exporter le contenu d'une
colonne excel vers un fichier texte.

Difficulté n°2:
Le contenu de la colonne contient du texte au format Unicode

Merci pour tout exemple de code qui me permette de mettre le pied à
l'étrier.


Avatar
Sam Vimaire
Sam Vimaire a couché sur son écran :
Merci pour le lien
Mon pb etant surtout de connaitre les objets relatifs à excel
...
Je vais chercher..
Avatar
Sam Vimaire
Ok .. Le plus dur est de connaitre la syntaxe

J'ai fait ceci (Ce n'est pas la plus belle façon, mais c'est un coup
d'essai)

------------------------------------------------------------------------
Dim FileName As String
Set fso = CreateObject("Scripting.FileSystemObject")
'Russian
Columns("AF:AF").Select
FileName = ThisWorkbook.Path & "" & "Russian_unicode.lng"
If fso.FileExists(FileName) Then fso.deleteFile (FileName)
Call SaveUnicodeSelection(FileName)


------------------------------------------------------------------------
Private Sub SaveUnicodeSelection(FileName As String)
Selection.Copy

Workbooks.Add

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

Application.CutCopyMode = False

ActiveWorkbook.SaveAs FileName:= _
FileName, FileFormat:=xlUnicodeText, _
Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse

ActiveWorkbook.Close False
End Sub
------------------------------------------------------------------------


Reste à Convertir le fichier unicode en fichier Ascii en ayant au
préalable chargé le bon code de page.
Une idée ?
Avatar
Sam Vimaire
Sam Vimaire avait prétendu :

Difficulté n°2:
Le contenu de la colonne contient du texte au format Unicode
Merci pour tout exemple de code qui me permette de mettre le pied à l'étrier.


Je me réponds :
Les API MultiByteToWideChar et WideCharToMultiByte font le boulot
'-----------------------------------------------------------------------

Private Const CP_UTF8 = 65001
Private Const CP_CYRILLIC = 1251
Private Const CP_WEUROPE = 1250

Private Declare Function MultiByteToWideChar Lib "kernel32" (ByVal
CodePage As Long, ByVal dwFlags As Long, ByVal lpMultiByteStr As Long,
ByVal cchMultiByte As Long, ByVal lpWideCharStr As Long, ByVal
cchWideChar As Long) As Long

Private Declare Function WideCharToMultiByte Lib "kernel32" (ByVal
CodePage As Long, ByVal dwFlags As Long, ByVal lpWideCharStr As Long,
ByVal cchWideChar As Long, ByVal lpMultiByteStr As Long, ByVal
cchMultiByte As Long, ByVal l

'-----------------------------------------------------------------------

Public Function UTF8_Encode(ByVal Text As String, CodePage As Long) As
String

Dim sBuffer As String
Dim lLength As Long

If Text <> "" Then
lLength = WideCharToMultiByte(CodePage, 0, StrPtr(Text), -1, 0, 0, 0,
0)
sBuffer = Space$(lLength)
lLength = WideCharToMultiByte(CodePage, 0, StrPtr(Text), -1,
StrPtr(sBuffer), Len(sBuffer), 0, 0)
sBuffer = StrConv(sBuffer, vbUnicode)
UTF8_Encode = Left$(sBuffer, lLength - 1)
Else
UTF8_Encode = ""
End If

'-----------------------------------------------------------------------

Et je rebondis sur une autre question dans le même thread.
Lorsque je fait fichier, enregistrer sous, format Unicode (.txt)
Le contenu de ma colonne est correctement enregistré. (cas 1)

Lorsque je fais
FileName="Monfichier.txt"
ActiveWorkbook.SaveAs FileName:= _
FileName, FileFormat:=xlUnicodeText, _
Password:="", WriteResPassword:="", _
ReadOnlyRecommended:úlse, CreateBackup:úlse

(cas 2)

Je me retrouve avec des guillemets encadrant certaines chaines de
caractères (celles avec de la ponctuation notamment)
exemple

cas 1:
ViewTitles1=(modifiée, cliquer sur Ecrire !)

cas 2:
"ViewTitles1=(modifiée, cliquer sur Ecrire !)"

Une idée du pourquoi ?