Excel, question VBA

Tout ce qui concerne l'informatique en général : hardware, pilotes, logiciels...
Bien sûr ici on ne parle pas de gravure !

Excel, question VBA

Messagepar Scaramanga » 01 Sep 2006 13:13

Je cherche à faire une petite procédure VBA avec excel :

Connaissant le N° de seamine en cours, je souhaite cherche un fichier excel situé dans un répertoire connu.
Le nom de ce fichier est basé sur une plage de semaine >par exemple : 27_34.xls ; ce fichier concerne les semaie de 27 à 34, 35_42.xls : ce fichier concerne les semaine 35 à 42. ( la periode couverte est toujours de 8 semaines)

Admettons que npous soyons la semaine 37, je devrais trouvé le fichier 35_42.xls, celui qui contient la semaine encours.


Attention : un fichier peut couvrir 2 années > exemple 51_06.xls soit par exemple > semaine 51 de l'année 2006 et semaine 6 de l'année 2007

Merci de votre aide.

P.S. :AU SECOURS ! C'est pour le boulot, faut que ça marche pour lundi.... :lost:
Avatar de l’utilisateur
Scaramanga
Administrateur®
Administrateur®
 
Messages: 14177
Enregistré le: 05 Sep 2002

Messagepar CapJack » 01 Sep 2006 18:15

Lister le contenu d'un répertoire en VBA :

http://www.codyx.org/snippet_lister-tou ... e_198.aspx


Ensuite, en bidouillant le contenu du tableau FoundFiles avec left$, right$ et autre mid$, tu devrais bien y arriver, non ? ;)
[Recompressez vos mp3 avec WinMP3Shrink] - Le port@il de CapJack
"travailler : vi. (latin populaire *trepaliare, torturer, du bas latin trepalium, instrument de torture)"
La preuve que les hommes sont tous égaux ? La bêtise humaine est uniformément répartie à la surface de la Terre...
Avatar de l’utilisateur
CapJack
Charlot promu Pierrot
Inconditionnel
 
Messages: 3877
Enregistré le: 21 Mar 2004

Messagepar Scaramanga » 02 Sep 2006 7:07

Merci CapJack, très intéressant.
BOn, je vais vous dire la vérité :
En fait il s'agit du projet d'un stagiaire de ma boite qui a conçu, tout un système de planning pour gérer une petite équipe, notement les absence RTT... Hors le stagiaire est partit et son projet bug...

J'ai passé une bonne partie de la soirée d'hier avec Gowap, chez qui tout fonctionne....

En débugant le projet nous somme tombé sur une ligne de code source du plantage :
Code: Tout sélectionner
Refresh BackgroundQuery:=False


Ce matin j'ai trouvé ça dans un forum :
http://www.excelforum.com/showthread.ph ... roundQuery
le monsieur du forum a écrit:look at the connectstring of both querytables.
These will look like:
'ODBC;DSN=Excel Files;DBQ=D:\My Documents\5000_1.xls;DefaultDir=D:\My
Documents;DriverId=790;MaxBufferSize=2048;PageTime out=5;
if the DSN "Excel Files" is not available on both machines
you may have a problem.
on windows XP:
via administrative tools\data sources you can add/change
ODBC settings. Usually you'll find the "Excel Files" under User DSN.


J'ai suivi les conseils et je tombe sur ça :

Image

:lost:

A part tenter une réinstall d' Excel , je vois pas trop quoi faire ...
Avatar de l’utilisateur
Scaramanga
Administrateur®
Administrateur®
 
Messages: 14177
Enregistré le: 05 Sep 2002

Messagepar MulX » 02 Sep 2006 11:02

Tu es sous Office XP ? (version 11=Office 2003; Version 12=...)

Si tu suprimme la ligne, qui bug (dans ODBC ), puis tu la retape ?

Sinon j'ai trouver Un fichier excel pour lister les mp3, comme le code est bien commenter ca peut etre t'aider.
http://www.excel-downloads.com/index.ph ... ecatid=213
Avatar de l’utilisateur
MulX
Membre assidu
Membre assidu
 
Messages: 174
Enregistré le: 08 Juin 2005
Localisation: Près de Toulouse

Messagepar CapJack » 02 Sep 2006 15:25

Scaramanga a écrit:A part tenter une réinstall d' Excel , je vois pas trop quoi faire ...

Une réinstallation complète peut-être pas.. as-tu essayé une modification de l'installation d'Office en mode avancé ?
Les pilotes ODBC doivent bien apparaître quelque part au moment de l'installation ?

Enfin, ça dépasse mes compétences. J'ai du mal à comprendre comment, d'une simple recherche de fichier, on tombe sur un problème d'installation de base de donnée. :doh:


Sinon, tu peux peut-être réécrire le projet en Delphi, en utilisant l'automation ? Tu sais :

Code: Tout sélectionner
msExcel := CreateOleObject('Excel.Application');
etc...

La suite ici : http://lfe.developpez.com/PasExcel/

:mrgreen:;)
[Recompressez vos mp3 avec WinMP3Shrink] - Le port@il de CapJack
"travailler : vi. (latin populaire *trepaliare, torturer, du bas latin trepalium, instrument de torture)"
La preuve que les hommes sont tous égaux ? La bêtise humaine est uniformément répartie à la surface de la Terre...
Avatar de l’utilisateur
CapJack
Charlot promu Pierrot
Inconditionnel
 
Messages: 3877
Enregistré le: 21 Mar 2004

Messagepar Scaramanga » 02 Sep 2006 16:47

MulX a écrit:Tu es sous Office XP ? (version 11=Office 2003; Version 12=...)

hummm...Peut être parce que j'ai installé Office 2007 Beta...

MulX a écrit:Si tu suprimme la ligne, qui bug (dans ODBC ), puis tu la retape ?

Kif-kif... :pendu:

Thx pour le fichier , je vais regarder ça de prés. :wink:



CapJack a écrit:Une réinstallation complète peut-être pas.. as-tu essayé une modification de l'installation d'Office en mode avancé ?
Les pilotes ODBC doivent bien apparaître quelque part au moment de l'installation ?

Je test ça tonight.

CapJack a écrit:Enfin, ça dépasse mes compétences. J'ai du mal à comprendre comment, d'une simple recherche de fichier, on tombe sur un problème d'installation de base de donnée.

Je me suis planté sur le source du dysfonctionnement : mon pb ne provient pas de la recherche du fichier, mais du code qui procède à des requêtes dans ce fichier. J'y connais que dalle de chez que dalle en excel, encore moins en VBA...
Avec delphi, mon pb aurait été de faire des requête dans des fichier excel...

Je viens d'essayer sur mon portable (même version 2003 d'excel) > ça plante, mais différemment : debug qur cette ligne :
Code: Tout sélectionner
Range("L12") = Dir & "" & Range("L12") & ".xls"

Il me semble que Gowap m'ait dit que "Dir" était propre à Excel 97...

Il semble que mon pb soit donc lié à ma machine, du moins à la conf d'environnement de gestion des DB. Il me semble que l'instal de Office 2007 bêta n'y soit pas étranger... :roll:

Merci les copains ! :wink:
Avatar de l’utilisateur
Scaramanga
Administrateur®
Administrateur®
 
Messages: 14177
Enregistré le: 05 Sep 2002

Messagepar CapJack » 02 Sep 2006 17:38

Scaramanga a écrit:Avec delphi, mon pb aurait été de faire des requête dans des fichier excel...

Si, comme je le subodore, il s'agit seulement de lire des valeurs dans un tableau, ce n'est pas bien compliqué... et utiliser un serveur de base de données dans ce cas c'est un peu comme utiliser un bazooka contre une mouche. Mais je parle sans savoir.
[Recompressez vos mp3 avec WinMP3Shrink] - Le port@il de CapJack
"travailler : vi. (latin populaire *trepaliare, torturer, du bas latin trepalium, instrument de torture)"
La preuve que les hommes sont tous égaux ? La bêtise humaine est uniformément répartie à la surface de la Terre...
Avatar de l’utilisateur
CapJack
Charlot promu Pierrot
Inconditionnel
 
Messages: 3877
Enregistré le: 21 Mar 2004

Messagepar gowap » 02 Sep 2006 18:21

1) Ce projet VBA fonctionne tres bien (win 98/excel 2000) --> les problemes de scara sont des problemes d'installation, de configuration
2) La fonction NO.SEMAINE necessite la macro complémentaire "utilitaires d'analyse"
3) le projet cherche un autre fichier excel puis fait des requetes dessus (outils/données externes), d'ou le pilote ODBC: excel files
4) je n'ai jamais dit que Dir était propre a excel 97 (ce qui ne serait pas vrai)
Aucune aide par mail ou Message Privé (n'insistez pas)
Prenez connaissance du règlement (à question illégale, sujet verrouillé),
commencez par faire des Recherches et décrivez clairement vos problèmes.

Lisez les articles et tutoriels
Avatar de l’utilisateur
gowap
Administrateur
Administrateur
 
Messages: 16113
Enregistré le: 01 Aoû 2002

Messagepar Scaramanga » 02 Sep 2006 19:41

@CapJack > lavantage d'utiliser excel, c'est que c'est une application ouverte.

Ce projet commence par me rendre chévre .... :tresfache:
Avatar de l’utilisateur
Scaramanga
Administrateur®
Administrateur®
 
Messages: 14177
Enregistré le: 05 Sep 2002

Messagepar gowap » 02 Sep 2006 21:08

Pour la déconne, on sait jamais ca peut servir a quelqu'un un jour :
Avec office 2003, la source de données ODBC pour exploiter des fichiers excel s'appelle "Fichiers Excel" alors que sous excel 97 et 2000, le nom est en anglais : "Excel Files".
Si c'est codé en dur ca va se vautrer si on passe a une autre version.
Aucune aide par mail ou Message Privé (n'insistez pas)
Prenez connaissance du règlement (à question illégale, sujet verrouillé),
commencez par faire des Recherches et décrivez clairement vos problèmes.

Lisez les articles et tutoriels
Avatar de l’utilisateur
gowap
Administrateur
Administrateur
 
Messages: 16113
Enregistré le: 01 Aoû 2002

Messagepar Scaramanga » 03 Sep 2006 7:28

En effet, aprés avoir essayé sur mon portable, pareil : gros plantage ; grâce à l'aide de Gowap ( et oui, encore lui...) : ona trouvé que certaines options n'étaient pas validé > Outils/Macro Complémentaire , il faut au moins sélectionner Utilitaire d'analyse VBA, et oui...
J'ai du désisntaller Excel, puis le réinstaller afin de pourvoir cocher ces @=#§!? d'options...

Image


L'application ne fonctionnait toujours pas, je recevais cette fenêtre pleine de haine :

Image

Comme l'ayant appris précedment , je vais du coté du panneau de conf/ Outils d'administration/Source de Données ODBC :

Image

C'est là qu'un éclair de génie a traverser le cerveau de Gowap > "Dans le code VBA, remplace Excel Files par Fichiers Excel, léve toi et marche"

With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _
"ODBC;DSN=Fichier Excel;DBQ=" & Chemin.Value & ";DefaultDir=" & Dir & ";DriverId=790;MaxBufferSize=2048;PageTimeout=5;")) _


et j'ai marché ! :D


Noté que sur mon PC de bureau , ça ne focntrionne pas : je pense que l'installasion d'Office 2007 Beta y est pour quelque chose.
Avatar de l’utilisateur
Scaramanga
Administrateur®
Administrateur®
 
Messages: 14177
Enregistré le: 05 Sep 2002



  • Publicité

Retourner vers Le coin informatique

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invités

cron