Convertion de données sous Excel en VB

Vcode Messages postés 5 Date d'inscription lundi 21 février 2005 Statut Membre Dernière intervention 26 août 2005 - 25 août 2005 à 16:20
cs_etniqs Messages postés 201 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 10 mai 2016 - 12 déc. 2009 à 12:55
Bonjours,

Je cherche à convertir des données sous excel en VB mais apparement le code que j'utilise n'est pas bon.

Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 5), Array(6, 1), Array(10, 1), Array(12, 1), Array(13, 1), _
Array(14, 1), Array(15, 1), Array(21, 1), Array(27, 1), Array(33, 1))

Ce code est tiré d'une macro VBA faite sous Excel.

Si quelqu'un peut m'aider

9 réponses

aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
25 août 2005 à 16:42
salut

que veux-tu faire

qu'est ce que tu as comme erreur ?
0
Vcode Messages postés 5 Date d'inscription lundi 21 février 2005 Statut Membre Dernière intervention 26 août 2005
25 août 2005 à 17:15
Le but ultime est de copier le contenu d'un doc txt et de le coller dans une feuille excel en convertissant les données pour les ranger dans des colonnes différentes.
0
sacha1435 Messages postés 94 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 12 octobre 2005 2
26 août 2005 à 12:56
Bonjour,

Pourquoi tu n'ouvres pas directement ce fichier .txt dans excel ?

Sacha

\!/
00
!
0
Vcode Messages postés 5 Date d'inscription lundi 21 février 2005 Statut Membre Dernière intervention 26 août 2005
26 août 2005 à 13:35
Si je fais cela, le format de mes données n'est pas correct.

Il faut que j'ouvre une feuille excel et que je paramètre en format teste ma colonne avant.

Tout cela fonctionne, mais en ouvrant mon fichier texte avec word, celui-ci me convertit les données. donc le résultat est faussé.

Voici un bout de mon code

If Elémentfichier.Name = StrLot2 Then
'ouverture du fichier texte et lecture des données
'Set Fichier1 = file.OpenTextFile(StrLot3, ForReading)
'Fichier1.Item.OpenAsTextStream ForReading
'Fichier1.

Set wrd = New Word.Application
'wrd.ShowMe
'wrd.Visible = True
wrd.Documents.Open (StrLot3,,,,,,,,,)
wrd.Selection.WholeStory
wrd.Selection.Copy


Set xls = Workbooks.Add
xls.Worksheets(1).Columns("A:A").Select
Selection.NumberFormat = "@"
xls.Worksheets(1).Range("A1").Select
ActiveSheet.Paste

Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(6, 1), Array(10, 1), Array(12, 1), Array(13, 1), _
Array(14, 1), Array(15, 1), Array(21, 1), Array(27, 1), Array(33, 1))
'xls.Worksheets(1).Range("A1").Select
'Selection.NumberFormat = "yy/mm/dd"

'Set Entete = Workbooks.Open(Config.ConfigMod)
' Entete.Worksheets(1).Rows("1").Select
'Selection.Copy

' xls.Worksheets(1).Rows("1:1").Select
'Selection.Insert shift:=xlDown
' xls.Worksheets(1).Rows("1:1").Select
' ActiveSheet.Paste

xls.SaveAs Config.ConfigStrE & StrNlot & ".xls"

wrd.Documents.Close
wrd.Quit
xls.Close
' Entete.Close
Set xls = Nothing
'Set Entete = Nothing
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sacha1435 Messages postés 94 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 12 octobre 2005 2
26 août 2005 à 13:52
Salut,

une piste peut-être,

Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
FieldInfo:=Array(Array(0, 1), Array(6, 1), Array(10, 1), Array(12, 1), Array(13, 1), _
Array(14, 1), Array(15, 1), Array(21, 1), Array(27, 1), Array(33, 1))
'xls.Worksheets(1).Range("A1").Select

dans "FieldInfo:=Array(Array(0, 1)" le second chiffre fait référence au format

1 format général
2 format texte
4 format date
5 pas importer

si cela peut aider.

\!/
00
!
0
Vcode Messages postés 5 Date d'inscription lundi 21 février 2005 Statut Membre Dernière intervention 26 août 2005
26 août 2005 à 14:07
Désolé cela ne passe pas non plus.

En fait j'ai l'impression que mon pb ce situe au moment où je colle les données dans Excel. Il n'interprète pas les données comme étant du texte simple.

Merci pour ton aide ;>
0
Vcode Messages postés 5 Date d'inscription lundi 21 février 2005 Statut Membre Dernière intervention 26 août 2005
26 août 2005 à 14:30
sais-tu comment ouvrir mon document sous word en le convertissant ?

Dans la propriétée open, on peut lui passer des paramètres, mais je ne sais pas à quoi cela correspond.
0
sacha1435 Messages postés 94 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 12 octobre 2005 2
26 août 2005 à 14:55
Re,

Quand tu utilises la fonction paste avec excel il colle aussi bien la formule,la valeur et le format de cellule,
Pour coller avec des option utilise la méthode PasteSpécial.

dans excel : click droit et pastespécial tu as déja plein d'option de collage regarde celle qui te convient, après enregistre une macro en effectuant la manip souhaitée>lis dans l'éditeur VBA comment récupéré la méthode.
Quand tu utilises la fonction paste avec excel il colle aussi bien la formule,la valeur et le format de cellule,

Pour ce qui est de word j'ai jamais fait de vba avec cet appli donc ...

Sacha
\!/
00
!
0
cs_etniqs Messages postés 201 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 10 mai 2016
12 déc. 2009 à 12:55
à mon avis, tu devrais voir autrement, les array sont pas formater comme les tables dans excel (et vu que je fais l'inverse de excel vers word ou ppt pour le boulot) :
- tu récup l'objet tableau dans word (objet avec colonnes et lignes, mais pas foutu pareillement que dans excel)
- pour chqe colonne : tu gères un tableau ou une collection de données, mais que tu convertis entre temps, avant de remplir ta collection
- après, pour éviter de gèrer les copiés/collés sans gèrer les tailles des tableaux, un double for each elements dans macollection/for each item dans macollection range.offset.value madonnee et range.offset.format monnouveauformat

...

coïto ergo sum
0
Rejoignez-nous