FORUM Tom's Hardware » Programmation » VB / VBA / VBS » probleme importation fichier .txt sous Excel
 

probleme importation fichier .txt sous Excel

Jeux et consoles : pascal280772 et 89 utilisateurs inconnus
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : probleme importation fichier .txt sous Excel
 
Plus d'informations

Bonjour je réussi a importer en VBA un fichier texte sous Excel mais il ne veux pas que je l'instancie dans une variable

voila mon ocde

Code :
  1. Workbooks.OpenText Filename:="c:\fichier.txt", _
  2.         Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
  3.         xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
  4.         , Comma:=False, Space:=False, Other:=True, OtherChar:="|", FieldInfo _
  5.         :=Array(Array(1, 1), Array(2, 2), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
  6.         Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
  7.         ), Array(14, 1), Array(15, 1), Array(16, 1)), TrailingMinusNumbers:=True



et voila ce que j'aimerais faire


Code :
  1. dim wbfile as workbook
  2. set wbfile =  Workbooks.OpenText Filename:="c:\fichier.txt", _
  3.         Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
  4.         xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
  5.         , Comma:=False, Space:=False, Other:=True, OtherChar:="|", FieldInfo _
  6.         :=Array(Array(1, 1), Array(2, 2), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
  7.         Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
  8.         ), Array(14, 1), Array(15, 1), Array(16, 1)), TrailingMinusNumbers:=True



il me surligne Filename et met en rouge tout le code

Si quelqu'un peut m'expliquer pourquoi merci d'avance


Message édité par darkspoilt le 23-11-2007 à 10:23:43

zeb
Profil : Modérateur libre
Plus d'informations

Parce que tu confonds fonction et procédure.
Une procédure ne renvoie pas de paramètre, une fonction en renvoie obligatoirement.

 

Or le VB est un langage exécrable où les fonctions peuvent fonctionner comme des procédures :

Code :
  1. Workbooks.OpenText Filename:="c:\fichier.txt"
  2. Set wb = Workbooks.OpenText("c:\fichier.txt" )
 

Enjoy !

 
Spoiler :

J'adore ton code. Zéro Select, zéro ActiveTruc, zéro Paste
;)


Message édité par zeb le 23-11-2007 à 11:25:14

---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

Oui mais ma ligne est trop longue avec mes underscore je ne peux pas mettre de parenthèse

Plus d'informations

Dans ce cas tu vires les alias de paramètre et tu gagneras bcp de caractère, suffit de mettre les paramètres dans l'ordre tu n'a plus besoin de les préciser.

En effet le nombre de ligne séparé par un underscore est limité.


---------------
S'il n'y a pas de solution c'est qu'il n'y pas de problème
Plus d'informations

Bah j'en ai besoin c'est pour la création des colonnes lorsque j'importe mon fichier texte

Plus d'informations

Et c'esyt bon c'est régler mais il me surligne OpenText et me met variable ou fonction attendu

zeb
Profil : Modérateur libre
Plus d'informations

Citation :

une fonction en renvoie obligatoirement

qu'il faut mettre dans une variable.

L'exemple est clair. Les deux façons de faire sont bonnes :

Citation :


Code :
  1. Workbooks.OpenText Filename:="c:\fichier.txt"
  2. Set wb = Workbooks.OpenText(Filename:="c:\fichier.txt" )



---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

j'ai tapé kom la ligne deux justmement

zeb
Profil : Modérateur libre
Plus d'informations

Bon, alors zeb va retourner se coucher et il va passer tout le we au lit pour se reposer. Avant, il va juste écrire ceci :

 

L'exemple est clair. Les trois façons de faire sont bonnes :

Citation :


Code :
  1. Workbooks.OpenText Filename:="c:\fichier.txt"
  2. Workbooks.OpenText "c:\fichier.txt"
  3. Set wb = Workbooks.OpenText("c:\fichier.txt" )



Message édité par zeb le 23-11-2007 à 11:25:34

---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations


j'ai tapé ca

Code :
  1. Set wbfile = Workbooks.OpenText(Filename:="c:\fichier.txt", _
  2.         Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
  3.         xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
  4.         , Comma:=False, Space:=False, Other:=True, OtherChar:="|", FieldInfo _
  5.         :=Array(Array(1, 1), Array(2, 2), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
  6.         Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
  7.         ), Array(14, 1), Array(15, 1), Array(16, 1)), TrailingMinusNumbers:=True)



il me dis erreur dans la compilation variable ou fonction attendue

zeb
Profil : Modérateur libre
Plus d'informations

Ben faut taper ça :

Code :
  1. Set wbfile = Workbooks.OpenText("c:\fichier.txt", xlMSDOS, 1, xlDelimited, xlDoubleQuote, _
  2.                                 False, False, False, False, False, True, "|", _
  3.                                 Array(Array(1, 1), Array(2, 2), Array(3, 1), Array(4, 1), _
  4.                                       Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
  5.                                       Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), _
  6.                                       Array(13, 1), Array(14, 1), Array(15, 1), Array(16, 1)), _
  7.                                   True)
 

Mais ça peut suffire. J'ai juste viré les param par défaut :

Code :
  1. Set wbfile = Workbooks.OpenText("c:\fichier.txt", xlMSDOS, , xlDelimited, xlDoubleQuote,,,,,, True, "|", _
  2.                                 Array(Array(1, 1), Array(2, 2), Array(3, 1), Array(4, 1), _
  3.                                       Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1), _
  4.                                       Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), _
  5.                                       Array(13, 1), Array(14, 1), Array(15, 1), Array(16, 1)))


Message édité par zeb le 23-11-2007 à 11:59:47

---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

J'ai toujours l'erruer fonction ou variable attendue avec tes deux méthodes

Plus d'informations

Sinon j'ai cette solution mais c'est pas beau

Code :
  1. Workbooks.OpenText Filename:=NomFichierAlertes, _
  2.         Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
  3.         xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False _
  4.         , Comma:=False, Space:=False, Other:=True, OtherChar:="|", FieldInfo _
  5.         :=Array(Array(1, 1), Array(2, 2), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
  6.         Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
  7.         ), Array(14, 1), Array(15, 1), Array(16, 1)), TrailingMinusNumbers:=True
  8.     Columns("B:B" ).ColumnWidth = 22.29
  9.         Set wbfile = ActiveWorkbook


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » VB / VBA / VBS » probleme importation fichier .txt sous Excel
 

Annonces Google
Publicité