|
Publicité ' | ||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : avril 2011 Messages : 9 ![]() |
Voilà, je travaille comme secrétaire indépendante pour plusieurs entreprises. Du coup, j'ai pleins de templates.dotm différents pour chaque sociétés.
Par exemple pour l'entreprise 1 : facture.dotm - bulletin de livraison.dotm - rapport d'intervention.dotm - etc... Idem pour les autres entreprises. J'aimerais pour faire un UserForm qui serait composer de plusieurs boutons (facture - bulletin de livraison - rapport d'intervention - etc..) qui me permettrait d'ouvrir directement le template (format document1.docx) demandé pour l'entreprise 1. La même chose pour l'entreprise 2, 3 et 4 J'aimerais pouvoir appeler cet UserForm depuis mon normal.dotm, par un bouton "Menu Entreprise 1", "Menu Entreprise 2", etc.. Voilà voilà, comme vous l'aurais certainement compris, je n'y comprends rien en programmation, j'ai bien essayé de chercher sur le net, mais je n'ai rien trouvé de probant. Donc si quelqu'un à une bonne âme et un petit peu de temps pour m'expliquer comment je peux faire ça, je lui serais très reconnaissante. Merci beaucoup. |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 321 ![]() |
Salut,
Pourquoi utiliser des UserForm différents en fonction de l'entreprise ? On peut faire ce choix dans le UserForm. On peut aussi agencer le ruban pour ne pas devoir utiliser un UserForm. C'est un peu à toi de voir.
__________________
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 |
|
Invité de passage
![]() Inscription : avril 2011 Messages : 9 ![]() |
Merci pour la réponse
Oui, ce serait tout à fait faisable de faire le choix dans la UserForm, notamment pas onglet par exemple, enfin je dis ça, mais comme j'y connais rien Par contre pour l'agencement du ruban, je vois pas trop ce que tu entends par là.. newbie inside Dans le ruban tu mettrais un bouton "Menu entreprise 1" etc.. ? Parce que mettre tous les templates sur le ruban, ce sera pas possible j'ai quand même entre 5 et 10 templates par entreprise... ça risque de faire un très très long ruban Merci |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 321 ![]() |
Salut,
Pour le ruban, on peut faire de cette manière. Pour le UserForm, on pourrait evisager qu'après avoir fait un choix, les modèles présents dans un répertoires soient listés poour pouvoir être cliqués ?
__________________
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
|
|
|
#5 |
|
Invité de passage
![]() Inscription : avril 2011 Messages : 9 ![]() |
Coucou
Pour le ruban, j'aime bien le système bouton "Menu Entreprise 1" Pour le UserForm, oui, c'est tout à fait possible aussi |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 321 ![]() |
Salut,
Je pense que mettre les UserForm est le code dans le normal.dotm n'est pas une bonne idée. Il arrive assez souvent que le Normal soit corrompu et que l'on soit obligé de le supprimer ou de le renommer, dans ce cas, tout serait perdu. Ce que je propose est d'utiliser un autre modèle ou un document. Je pencherais même pour un doucment, certaines informations pourraient être inscrites dans le document pour être utilisées par le code, de cette manière, si les choses changent, une nouvelle entreprise, une qui diparaît, qui change de nom, ... Il ne serait pas utile de toucher au code. Sur la base d'un document, on pourrait utiliser un tableau pour stocker les données et les utiliser pour remplir les listes de choix. Partant sur deux colonnes, une pour le nom de l'entreprise et une seconde pour le répertoire qui contient les modèles de document. Comme ce sera le premier tableau de notre document, dans le code, ce sera ActiveDocument.Tables(1). On appelle un UserForm lors de l'ouverture du document sur base de l'évènement Open. C'est dans cette portion de code que nous allons appeler notre UserForm. Ce UserForm, nous allons l'appeler ufAccueil, et lui donner Accueil comme titre (Catpion), c'est ce qui sera affiché dans la barre de titre du UserForm quand il sera affiché. Ce UserForm contiendra deux zones de liste, l'une avec le nom des entreprises et le chemin des modèles (récupéré du tableau), la seconde liste sera remplie avec les modèles trouvés dans le répertoire après avoir fait un choix dans la première liste. Nous allons ajouter deux zones de liste sur notre UserForm.
__________________
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 |
|
Invité de passage
![]() Inscription : avril 2011 Messages : 9 ![]() |
Coucou,
Oui, ça me semble très très bien. C'est vrai que j'ai déjà eu des soucis avec le normal.dotm et que si je pouvais éviter de tout recommencer à chaque fois ce serait pas une mauvaise chose Très bonne idée de faire une sorte de base de données pour les entreprises et les modèles ![]() Vraiment super, j'ai hâte de m'y mettre, ça devrait vraiment me simplifier la vie tout ça, merci |
|
|
00
|
|
|
#8 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 321 ![]() |
Salut,
T'as pas encore commencé sur base des indications que j'ai données ?
__________________
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 |
|
Invité de passage
![]() Inscription : avril 2011 Messages : 9 ![]() |
Coucou,
Et non j'avais pas commencé, week-end plus chargé que je ne pensais Mais bon là c'est fait.. du moins en partie voici ce que ça donne : ![]() ![]() Par contre j'ai pas compris au niveau du tableau qu'il faut faire. Je dois créer un autre document (word ou exel ?) et faire 2 colonnes et entrer la liste des entreprise dans 1 et le nom des dossiers dans l'autre.. c'est bien ça ? Et ce document que dois l'appeler : ActiveDocument.Tables(1), je dois l'enregistrer à une place bien distincte ou c'est égal ? Navrée.. Merci ps : encore une petite question, le projet, je dois bien l'enregistrer quelque part.. j'enregistre donc le document pour garder les infos ? Il faut l'enregistrer spécialement ou pas ? |
|
|
00
|
|
|
#10 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 321 ![]() |
Salut,
La table doit être dans le document qui va contenir les UserForms, ce document ne servira qu'à appeler les autres templates.
__________________
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
|
|
|
#11 |
|
Invité de passage
![]() Inscription : avril 2011 Messages : 9 ![]() |
Ok, ça donne donc ça :
![]() ![]() PS : j'ai été obligée de sauvegarder le document au format .docm.. sinon il ne gardait pas la macro c'est bon ? |
|
|
00
|
|
|
#12 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 321 ![]() |
Salut,
Pour remplir la table, on va faire autrement que le remplissage manuel. Comme à chaque fois, on va aussi utiliser une petite fonction pour nettoyer le texte des cellules. Si on récupère le texte contenu dans une cellule sans le traiter, il contient deux caractères supplémentaires qui ne nous intéressent pas. Pour l'instant, j'ai le même résultat que toi au niveau du UserForm. À notre UserForm, nous allons ajouter deux zones de textes pour l'édition des entrées de la table, la première zone de texte servira à alimenter l'entreprise et la seconde zone le chemin du répertoire. Pour alimenter le répertoire, nous allons utiliser une méthode de l'objet application qui est le FileDialog Code :
Application.FileDialog(msoFileDialogFilePicker) Pour éviter d'aller dans trop de direction, je vais essayer d'avancer proprement sur mon appli.
__________________
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
|
|
|
#13 | |
|
Invité de passage
![]() Inscription : avril 2011 Messages : 9 ![]() |
Coucou
Alors, j'ai ajouter les deux zones de texte à ma UserForm, une au-dessus de la liste pour les entreprise et l'autre au-dessus de celle pour les modèles. par contre j'ai pas pas compris ça : Citation:
Sinon, pas de soucis, prend ton temps, je ne suis pas pressée, et de toute façon je serais absente pendant le week-end de Pâques (camping avec les enfants). |
|
|
|
00
|
|
|
#14 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 321 ![]() |
Salut,
ce code n'est pas complet, c'est juste un exemple que l'on va utiliser sur l'action d'un bouton.
__________________
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
|
|
|
#15 |
|
Invité de passage
![]() Inscription : avril 2011 Messages : 9 ![]() |
Aïe, bon ben voilà quoi
|
|
|
00
|
|
|
#16 | ||||||||||||||||||||
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 321 ![]() |
Salut,
Je pense avoir fait le tour de la question. Un UserForm avec deux listes de choix, trois zones de texte et cinq boutons. Pour faire un peu plus joli, j'ai ajouté un cadre. La première étape est la récupération des informations dans la table pour alimenter la prmière zone de texte. Comme ces informations seront rechargées plusieurs fois, la récupération se fait via une procédure séparée. Code :
je place généralement cette fonction dans un module que j'appelle Utilitaire. C'est une fonction puisqu'elle renvoie une chaîne. Code :
Code :
Au chargement du UserForm, la zone de liste sera remplie avec le contenu de la table. La procédure de remplissage remplit trois colonnes alors que notre table n'en contient que deux, la colonne supplémentaire va recevoir l'index de la ligne, ce sera plus facile pour faire nos traitements par la suite. L'étape suivante sera le passage des données de la zone de liste vers les zones de texte pour une éventuelle modification. Code :
Lorsque l'on clique sur le bouton édition, on active les zones de textes. Code :
Code :
Lorsque les données ont été modifiées, il faut les écrire dans la table, j'utilise un bouton valider. Code :
La mise à jour de la liste des modèles fait appel à la bibliothèque Microsoft Scripting RunTime. cette bibliothèque permet de travailler avec et sur le système de fichier de Windows. Code :
Code :
Code :
Pour la création du document, c'est Voilà, j'espère ne rien avoir oublié. Je met mon exemple sur le forum.
__________________
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
|
|
|
#17 |
|
Invité de passage
![]() Inscription : avril 2011 Messages : 9 ![]() |
Coucou,
J'espère que tu as passé de bonnes fêtes de Pâques Merci pour tout ce travail Tout me semble très bien, c'est tout à fait dans l'esprit de ce que je pensais. Je teste tout ça.. du moins j'essaie de tester tout ça Donc je vais tester tout ça début de la semaine prochaine Encore merci
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com