Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro de copie d\'un fichier txt sur excel

chef_1

XLDnaute Nouveau
Macro de copie d'un fichier txt sur excel

Bonjour à tous!

Je cherche à programmer une petite macro qui me permettrais de copier des données extraites d'un fichier texte provenant d'une d'une base de données dans une feulle excel. La taille des fichier texte étant varirable.A noter que chaque données dans ce fichier texte est délimité par un ';'.
Voilà ce que donne la macro que j'ai faite:
Malheureusement, elle plante, et là, je sèche... Help me please!!!

Sub CommandButton1_Click()

Dim nomchemin As String
Dim nomfichier As String
nomfichier = fichier.Value

Workbooks.OpenText Filename:=nomfichier, Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 5), Array(2, 1), _
Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), Array(9, 1), _
Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1), Array(15, 1), Array( _
16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array(20, 1), Array(21, 1), Array(22, 1), _
Array(23, 1), Array(24, 1), Array(25, 1), Array(26, 1), Array(27, 1), Array(28, 1), Array( _
29, 1), Array(30, 1), Array(31, 1), Array(32, 1), Array(33, 1), Array(34, 1), Array(35, 1), _
Array(36, 1), Array(37, 1), Array(38, 1), Array(39, 1), Array(40, 1), Array(41, 1), Array( _
42, 1), Array(43, 1), Array(44, 1), Array(45, 1), Array(46, 1), Array(47, 1), Array(48, 1), _
Array(49, 1), Array(50, 1), Array(51, 1), Array(52, 1), Array(53, 1), Array(54, 1), Array( _
55, 1), Array(56, 1), Array(57, 1)), TrailingMinusNumbers:=True

Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows('destination.xls').Activate
Sheets('Feuil1').Select
Range('A1').Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Sheets('Feuil2').Select
End Sub




Message édité par: chef_1, à: 09/09/2005 15:34

Message édité par: chef_1, à: 09/09/2005 15:36

Message édité par: chef_1, à: 09/09/2005 15:39
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:Macro de copie d'un fichier txt sur excel

Bonjour Chef ! , le Forum

Moi je passerais plutôt par un Statement Open qui t'enverrait directement les données dans la Feuille Excel Voulue(ici 'TXT_Collecting')



Bon Aprèm
[ol]@+Thierry[/ol]

Message édité par: _Thierry, à: 09/09/2005 16:27
 

chef_1

XLDnaute Nouveau
Re:Macro de copie d'un fichier txt sur excel

Super merci!
Ta solution est vraiment plus modelable !
Par contre, comment prendre en compte les retour chariot ?
Car la fonction recopie sur une seul ligne...
Plus généralement, comment choisir les lignes/colonnes ou seront copiées les données?

Merci encore !
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:Macro de copie d'un fichier txt sur excel

Bonjour Chef, le Forum

Je ne comprends pas clairement :
'Car la fonction recopie sur une seul ligne...'

En fait pou ta compréhension, si tu utilises cet algo, voici son fonctionnement :

Il va incrémenter par boucles ces Variables.
i = Variable Représentant la Ligne
ii = Variable Représentant la Colonne
iii = Variable Représenant le Numéro du Champs du TXT

Il va tourner sur deux Boucles :
1) Do While Not EOF(1) (tant qu'il y a des lignes dans el TXT (End Of File) (Donc, sous entendu, le Retour Charriot)
2) For ii = 1 To UBound(Container) + 1 (Tant qu'il y a des champs dans la Ligne du TXT (Record Splitté sur Char(59) =';')

Voilà c'esr simple. Une petite mofification serait de passer 'iii' en Integer plutôt que Byte (Voir même en Long si nécessaire, avec à ce moment là 'i' aussi)

Bonne journée et Week End
[ol]@+Thierry[/ol]

PS Sinon il faudrait peut-être voir un exemplaire du TXT car ce serait un problème de sa structure.
 

chef_1

XLDnaute Nouveau
Re:Macro de copie d'un fichier txt sur excel

Nickel ! Merci beaucoup pour l'explication !
Effectivement, le format du fichier n'etait pas bon. J'ai pu faire les modifications en conséquence...


Message édité par: chef_1, à: 13/09/2005 11:04
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…