|
Publicité ' | ||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2006 Messages : 16 ![]() |
Tout d'abord un grand bonjour à tous,
je souhaite vous exposer un petit problème, et je pense qu'il doit être possible de le résoudre grâce à VBA sous Word. La version de Word que j'utilise est la 2002. J'ai quelque notions de programmation, j'ai un peu fouillé VBA mais j'avoue ne pas avoir encore bien compris les principes et le fonctionnement en général, vue comment je galère à chaque fois que je m'y frotte, mais je me perfectionne un petit peu chaque jour. Pour me donner un petit coup de pouce, je souhaite faire appel aux bonnes âmes de ce forum pour me donner la bonne direction. Voilà donc mon petit soucis : A partir de word, je dois fréquemment faire des liens hypertexte vers des fichiers. Pour cela, me direz-vous, rien de plus simple : il suffit de cliquer sur l'icône "Insérez un lien hypertexte", de choisir son fichier, de faire "Ok" et tout roule... et bien c'est tout à fait vrai. Mon soucis est que ce répertoire contient un nombre croissant de fichier (aujourd'hui j'en suis à 975) et que la boîte de dialogue met de plus en plus de temps à afficher la liste des fichiers contenus dans ce répertoire, pour qu'ensuite je puisse choisir celui qui m'intéresse. Si je me dis que je peux optimiser cela, c'est parceque je vois à l'utilisation de Word, que d'autres boîtes de dialogue qui affichent elles aussi le contenu d'un répertoire s'affiche beaucoup plus rapidement, voir instantanément. C'est le cas par exemple pour la boîte de dialogue "Enregistrer sous...". Le contenu du même répertoire qui contient les mêmes 975 éléments s'ouvre en un éclair, alors que ce n'est pas du tout le cas dans ma boîte de dialogue "Inserez un lien hypertexte". Donc mon idée serait de pouvoir insérez mon lien hypertexte mais en utilisant la fonction de listage de répertoire d'une boîte de dialogue comme "Enregistrer sous...". Mais voilà, au-delà de l'idée, j'aimerai avoir votre avis si cela vous semble simple, et peut-être voir à m'indiquer une première piste que je pourrais explorer pour concrétiser ce petit projet. Merci en tout cas déjà pour avoir lu mon message et j'espère à très bientôt Emmanuel |
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 364 ![]() |
Salut,
On peut y aller lentement. En VBA, on peut utiliser des boîtes de dialogues de manière assez simple. Essaie ceci Code :
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
||
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2006 Messages : 16 ![]() |
Effectivement, très bien, j'ai bien une boîte de dialogue qui s'ouvre et à partir de laquelle je peux circuler dans l'arborescence...
merci déjà pour ce point. Je vais creuser la fonction utilisée. Ce que je remarque c'est que je n'ai que la liste des répertoire mais aucun fichier ne s'affiche... je creuse mais si info, je suis preneur, bien sur |
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2006 Messages : 16 ![]() |
hahaaa
et bien j'ai remplacé "msoFileDialogFolderPicker" par "msoFileDialogFilePicker", et la du coup, j'ai tout mes fichier. Première chose : la liste s'affiche super rapidement ! ça, c'est génial. Maintenant, j'ai bien compris que je récupérais le nom dans la variable "oDlg" (pourquoi ce nom ? juste par hasard ?) et qu'ensuite on l'affichait dans une fenêtre grâce à "MsgBox oDlg.SelectedItems(1)" Par contre, je ne sais pas à quoi sert "oDlg.Show"... Pour moi, la deuxième étape c'est d'insérer ce nom dans mon document Word puis d'y associer un lien hypertexte qui pointe vers le fichier précédemment sélectionné... une idée sur la fonction à utiliser ? |
|
|
00
|
|
|
#5 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 364 ![]() |
Erreur !
il ne faut pas choisir les fichiers mais le répertoire !! Et on peut faire un traitement sur les fichiers contenu dans le répertoire ET alors on n'est pas obligé de choisir les fichiers un par un
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 364 ![]() |
Pour répondre un peu à ta question .
oDlg représente un Objet FileDialog. En VBA, un objet possède des méthodes et des propriétés. Cet objet qui est une variable avec Dim , je lui attribue une valeur avec Set... Une fois l'objet attribué, on peut utiliser ses méthodes et propriétés. La première méthode que j'utilise est .Show, pour afficher l'objet. Une fois exécuté, l'objet va avoir des propriétés utilisables, l'une d'elles est la propriété .SelectedItems() qui va renvoyer le premier élément de la liste. Comme je n'en ai qu'un, c'est un peu plus facile. Par la suite, on peut travailler de façon automatisée sur le contenu du répertoire, et comme tu as beaucoup de fichiers, c'est plus facile que de faire une sélection manuelle. Si tu nous explique comment tu fais pour choisir tes fichiers, un bonne structure décisionnelle peut le faire pour toi et un simple clic sur un bouton peut tout faire à ta place.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#7 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2006 Messages : 16 ![]() |
Merci pour toutes ces précisions
En fait, mon objectif est bien de ne sélectionner qu'un seul fichier dans le répertoire, et en même temps je voulais supprimer le chemin et l'extension du fichier au niveau du texte du lien hypertexte inséré. Grâce à tous tes conseils, voici le code auquel je suis arrivé : Code :
Si il y a une petite remarque sur mon code, ne pas hésiter... Et encore merci ! |
||
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 364 ![]() |
Si c'est pour un seul fichier, alors c'est plus facile d'utiliser le FilePicker.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : décembre 2006 Messages : 16 ![]() |
Bonjour à tous à nouveau,
utilisant depuis quelques temps maintenant mon petit programme, je souhaiterais perfectionner celui-ci. En effet, lorsque la boîte de dialogue s'ouvre, la liste s'affiche dans l'ordre alphabétique des noms de fichiers, et c'est le début de la liste qui apparaît. Je souhaiterai pour ma part que ce soit la fin de la liste qui s'affiche lors de l'ouverture de la boîte dialogue car en effet, je sélectionne principalement les fichiers les plus récents, dont qui sont à la fin de la liste alphabétique des fichiers. Mais je ne trouve aucune fonction qui à priori permette d'effectuer cette demande. Une petite idée ?
|
|
|
00
|
|
|
#10 | ||
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 364 ![]() |
Salut,
Une petite Code :
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com