[VBA] Exporter Colonne

Le
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4743441
Bonjour,

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

JB
http://boisgontierjacques.free.fr



On 21 sep, 11:58, 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.


Sam Vimaire
Le #4743311
Sam Vimaire a couché sur son écran :
Merci pour le lien
Mon pb etant surtout de connaitre les objets relatifs à excel
...
Je vais chercher..
Sam Vimaire
Le #4743221
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 ?
Sam Vimaire
Le #4701021
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 ?

Publicité
Poster une réponse
Anonyme