Sélection de fichiers

mfaure Messages postés 48 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 22 septembre 2011 - 11 mai 2006 à 14:49
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 - 12 mai 2006 à 17:25
Bonjour à tous

voilà, je cherche a créer une macro sous catia (aucune connaissance catia n'est exigée pour ma question) qui a le role suivant :

-un bouton de type "parcourir", qui permet de sélectionner des fichiers
-recopier le nom des fichiers ainsi sélectionnés dans une listbox
-un bouton exécuter qui va effectuer une action sur chacun des fichiers sélectionnés

ce que je ne sais pas faire (pour l'instant, je compte sur vous), c'est créer le bouton "parcourir", et récupérer les données qui sont dans la listbox. pour tout le reste c'est, à priori, bon.

merci à tous !

Max

4 réponses

ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
11 mai 2006 à 18:18
Alors déjà, pense à toujours préciser, lorsque tu postes sur le forum, le language que tu utilises (VBA, VB6, VB.Net, ...). Perso, je fais que du VB6 et je subodore qu'en .Net la procédure doit être un tantinet différente...

Ce qu'il faut c'est intégrer à ton application (et donc à ton projet puis à ta fenêtre) un "contrôle ActiveX" nommé "Microsoft Common Dialog Control 6.0 (SP3)". C'est à dire, un composant externe mais livré avec le VB6.
Pour se faire, il faut aller dans le menu "rojet" puis "Composant
s sélectionnés" ne le soit pas (cochée!). Ensuite, coche la case du fameux contrôle (Ms Common Dialog) et valide. Tu verras, dans ta barre d'outil une nouvelle icône apparaître : c'est le contrôle que tu viens d'intégrer ("lier" serait plus exacte!!!) à ton projet.
Ce contrôle a la particularité d'être invisible à l'exécution. Tu peux donc le placer où bon te semble sur ta fanêtre.

Ensuite, pour le code, je te laisse regarder l'aide du VB (la MSDN) car ses propriétés sont nombreuses. La plus importante est ".Flag" qui permet de paramétrer bon nombre de choses (d'où l'importance d'avoir l'aide sous les yeux pour le faire). En revanche, tu devras sans doute cumuler les argument dans le flag (avec "or" me semble-t-il de mémoire).

Ce contrôle sert tant à afficher les boîtes de dialogues "Ouvrir" que "Enregistrer", "Imprimer", "Police" ou encore "Couleur", te dire comme il est très utile !!!

Alors, dans le code, une fois que tu as implémenté les propriétés qui concernent ta fenêtre (parce qu'il y en as qui seront, forcément, inutiles!), il te suffira de lancer la méthode ".ShowOpen" (ou ".ShowColor", ...).

Après quoi l'utilisateur choisira ses fichiers. Après, le boulot est un peu plus compliqué car il te faudra extraire d'une propriété (me souvient plus du nom, regarde dans l'aide), chaque fichier sélèctionné. Autrement dit, découper une string selon les espaces qui séparent les noms des fichiers. Pour ça tu peux t'aider des fonctions VB de traitement de String (chaine de texte) du style "<gras>InStr(...)
", "Mid(str, deb, lng)", "Len(str)" et éventuellement "Replace(...)". Bref, il te faut l'aide du VB.

Bon, je pense que tu dois aussi pouvoir faire la même chose mais en utilisant des API Windows ce qui, entre nous, outre le fait que c'est plutôt hot à réaliser, serait comme réinventer la roue!

Sinon, l'autre solution consisterait à dessiner sur une autre feuille (que tu afficherais au besoin...) le contrôle "FileListBox", tout simplement ! Mais qui dit FileListBox dit aussi DirListBox et DriveListBox. Pas bien difficile à mettre en place mais pour l'utilisateur, c'est moins cool !
Mais dans ce cas, pense à bien ouvrir la feuille en "modal"...

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
11 mai 2006 à 18:21
Salut
Je vais te donner les mots clés, à toi de chercher :
- Appeler la fenêtre de sélection de fichier = Composant CommonDialog, méthode .ShowOpen
ir l'aide + multiples sources
- Récupération de la liste des fichiers dans la variable monCommonDialog.FileName
Dans le cas de sélection multiple de fichiers, cette donnée à le format suivant :
NomDuRépertoire <Tab> NomFichier1 <Tab> NomFichier2 <Tab> NomFichier_n
- Ajouter des données dans une ListBox : AddItem
- Action sur fichier : Sur l'évènement ListBox_DblClick --> Action (?)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
0
mfaure Messages postés 48 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 22 septembre 2011
12 mai 2006 à 08:45
salut scsami

je viens de regarder un peu ce que tu me disais, et je suis confronté à pleins de problèmes... le 1er, c'est que j'ai juste une éditeur visualbasic, fourni avec catia (du même type que celui d'excel). je n'ai donc pas la case projet, etc.... cependant, en faisant CTRL+T, j'ouvre une fenêtre "components" qui correspond à celle que tu m'indiquais. Par contre, je n'ai pas "MS Common dialog". La seule chose qui y ressemble plus ou moins, c'est "microsoft windows common controls 6.0 (SP4)" et "microsoft windows common controls-2 6.0 (SP4)". Quand je coche l'une, l'autre ou ces deux cases, la petite icone n'apparait pas. Cependant, lorsque je vais dans "outils"->"controles additionels" et que je coche "activex plugin object", cette icone apparait (ça ressemble à une petite prise). Mais lorsque j'essaie de la mettre sur le formulaire, j'ai le message d'erreur suivant qui apparait : "unexpected call to method or property access"

en bref, je suis toujours au point mort...

pour jack : merci beaucoup tes infos me mettent sur la voie mais ne pourront me servir que lorsque je pourrais intégrer un controle activeX....

allez je cherche encore, et merci beaucoup pour votre aide.

Max
0
ScSami Messages postés 1488 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 3 décembre 2007 24
12 mai 2006 à 17:25
Arf, je n'ai aucune explication à te donner n'ayant pas Catia !!! Je ne vois pas pourquoi il te fait ça... si ce n'est, éventuellement, une question d'autorisation. Ceci dit, c'est bien ce(s) contrôle dont je parlais.

Si Jack à une explication... elle serait sans doute la bienvenue

Enjoy

<hr size="2" width="100%">
( Si une réponse vous convient, cliquez sur le bouton "Réponse acceptée". )
0
Rejoignez-nous