[VBA] Problème lors de l'ouverture des fichiers

Problème lors de l'ouverture des fichiers [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 27-10-2010 à 15:41:50    

Bonjour,
Débutant sous VBA, je suis en train de réaliser un programme afin d'ouvrir un fichier excel, puis de rappatrier les donénes dans un deuxième fichier.
 
Deux problème ont lieu:
-Le premier c'est les nombres qui sont ouvert en format texte. A la limite celui là j'ai trouvé comment remodifier par la suite.
-Le second c'est les dates. Les jours et les mois sont inversés.
 
Chose étrange, c'est que quand j'ouvre moi-même le fichier, il s'ouvre correctement.
Voici l'extrait de mon programme:
 
Workbooks.Open ("T:\SECRE_OCT\TOCATTA\LB111-labresult\Septembre 2010\1.9.2010.Kr85Sol1Min.xls" )

Reply

Marsh Posté le 27-10-2010 à 15:41:50   

Reply

Marsh Posté le 27-10-2010 à 16:26:21    

Excel se base sur les options régionales de ... Windows (et non pas sur des options régionales qui seraient valable seulement pour Excel ou seulement pour un classeur Excel (sauf si ça a changé depuis les vieilles versions d'Excel que j'ai).
 
Donc il y a plusieurs solutions :
 
- Soit changer les options de Windows, afin que le point décimal soit une virgule ou l'inverse, que la date soit dans le bon format.
- Soit changer le fichier en entrée.
- Soit faire le chargement en utilisant un modèle défini dans Excel lors de l'importation, et qui est adapté à ses besoins. C'est un peu caché, et pas très facile d'utilisation, mais si on fait toujours la même importation (toujours exactement les mêmes champs), cela peut valoir le coup d'étudier ça.

Reply

Marsh Posté le 27-10-2010 à 17:00:51    

Normalement ca devrait se resoudre comme ceci :
 
workbooks.open FileName:="T:\SECRE_OCT\TOCATTA\LB111-labresult\Septembre 2010\1.9.2010.Kr85Sol1Min.xls", Local:=True
 
Et enleve moi ces parentheses !! ;)


Message édité par SuppotDeSaTante le 27-10-2010 à 17:01:00

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 28-10-2010 à 09:44:59    

Héhé ça marche! Merci bien dje69r. Merci à olivthil aussi, mais j'ai pas essayé ce que tu m'a dit, ça me semblait plus compliquer, et surtout je serais pas le seul à l'utiliser.
(moi je trouve ça joli avec les parenthèses).

Reply

Marsh Posté le 28-10-2010 à 09:52:30    

Joli peut etre ;)
 
Mais beaucoup moins lisible quand tu auras des centaines (milliers ?) de ligne... Là au moins, tu sais quelle valeur est affectée a quel argument, et ce en 1/2 seconde :jap:
 
De plus, a partir de deux arguments, tu es obligé d'affecter a une variable.
Tu es aussi obligé de définir tous les arguments qui sont entre ceux que tu définis... Ca fait un paquet de virgule pour des arguments non définis
 
Donc ca :
A=workbooks.Open ("T:\SECRE_OCT\TOCATTA\LB111-labresult\Septembre 2010\1.9.2010.Kr85Sol1Min.xls",,,,,,,,,,,,,true)
 
C'est quand meme moins pratique a saisir, et surtout moins lisible a relire en cas de souci ou juste de relecture, que ca :
workbooks.open FileName:="T:\SECRE_OCT\TOCATTA\LB111-labresult\Septembre 2010\1.9.2010.Kr85Sol1Min.xls", Local:=True

Message cité 1 fois
Message édité par SuppotDeSaTante le 28-10-2010 à 09:57:26

---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 03-11-2010 à 18:11:16    

SuppotDeSaTante a écrit :

Joli peut etre ;)
 
Mais beaucoup moins lisible quand tu auras des centaines (milliers ?) de ligne... Là au moins, tu sais quelle valeur est affectée a quel argument, et ce en 1/2 seconde :jap:
 
De plus, a partir de deux arguments, tu es obligé d'affecter a une variable.
Tu es aussi obligé de définir tous les arguments qui sont entre ceux que tu définis... Ca fait un paquet de virgule pour des arguments non définis
 
Donc ca :
A=workbooks.Open ("T:\SECRE_OCT\TOCATTA\LB111-labresult\Septembre 2010\1.9.2010.Kr85Sol1Min.xls",,,,,,,,,,,,,true)
 
C'est quand meme moins pratique a saisir, et surtout moins lisible a relire en cas de souci ou juste de relecture, que ca :
workbooks.open FileName:="T:\SECRE_OCT\TOCATTA\LB111-labresult\Septembre 2010\1.9.2010.Kr85Sol1Min.xls", Local:=True


 
de mémoire, passer les paramètres de manière nommé, est indépendant de l'utilisation des parenthèses.
 
en gros tu peux avoir les deux., l'un ou l'autre ou aucun des deux...
 


Sub test()
Call Application.Workbooks.Open("test.xls", Local:=True)
Application.Workbooks.Open "test.xls", Local:=True
Application.Workbooks.Open Local:=True, Filename:="test.xls"
Call Application.Workbooks.Open(Local:=True, Filename:="test.xls" )
End Sub


 
donc pour te rejoindre : oui c'est plus propre de fonctionner en arguments nommés, mais les parenthèse n'ont rien à voir :o

Reply

Marsh Posté le 04-11-2010 à 10:02:53    

Mouai... utiliser un Call pour un Workbooks.open... Ou affecter a une variable pour ca...
 
Désolé mais l'utilisation des parenthèses en VBA, ca ne sert a rien si ce n'est alourdir.
 
Et je ne parlais pas que du fait de nommer, mais bien aussi du Call et/ou affectation en variable.
 
Si j'ai omis de lui preciser la syntaxe parentheses + arguments nommés, ce n'est pas pour rien ;)
 
Topic clos pour ma part :jap:


---------------
Soyez malin, louez entre voisins !
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed