Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
839 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2032580
applestorm
Posté le 27-10-2010 à 15:41:50  profilanswer
 

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" )

mood
Publicité
Posté le 27-10-2010 à 15:41:50  profilanswer
 

n°2032592
olivthill
Posté le 27-10-2010 à 16:26:21  profilanswer
 

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.

n°2032604
SuppotDeSa​Tante
Aka dje69r
Posté le 27-10-2010 à 17:00:51  profilanswer
 

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 !
n°2032749
applestorm
Posté le 28-10-2010 à 09:44:59  profilanswer
 

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).

n°2032751
SuppotDeSa​Tante
Aka dje69r
Posté le 28-10-2010 à 09:52:30  profilanswer
 

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 !
n°2033869
Xxxaaavvv
Posté le 03-11-2010 à 18:11:16  profilanswer
 

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

n°2033950
SuppotDeSa​Tante
Aka dje69r
Posté le 04-11-2010 à 10:02:53  profilanswer
 

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 !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 

Sujets relatifs
[VBA] Créer une fonction utilisée en tant que formuleProbleme DIV sur IE
Problème POO et execution de fonctionProblème de requête
[VBA]modifier point d'entrée du programme [Resolu]Probleme sur sed
programmation en VBA[VBA] Support d'apprentissage
jQuery : problème .append() et $.each()Probleme avec balise <img/>
Plus de sujets relatifs à : [VBA] Problème lors de l'ouverture des fichiers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR