UserForm modal pour une instance d'Excel

scan59 Messages postés 4 Date d'inscription jeudi 25 novembre 2010 Statut Membre Dernière intervention 6 janvier 2011 - 4 janv. 2011 à 23:33
scan59 Messages postés 4 Date d'inscription jeudi 25 novembre 2010 Statut Membre Dernière intervention 6 janvier 2011 - 6 janv. 2011 à 22:58
Bonjour à tous,

D'abord, Bonne année :)

Bon je vous explique mon soucis :

J'ai un fichier Excel qui lance un UserForm au démarrage, je souhaite que l'utilisateur n'ai pas accès à la feuille Excel, j'ai donc utilisé :

Sub Workbook_Open()
    Application.Visible = False
    Acceuil.Show
End sub


Mais cela cache complétement Excel, et je souhaiterais que l'utilisateur puisse avoir accés à d'autres fichier en même temps.

J'ai donc essayé :

Application.WindowState = xlMinimized


Mais en jouant avec les fenêtre, je finis par retomber sur mon classeur qui etait minimisé et qui et de nouveau accessible.
En y mettant le modal à true, cela fonctionne, mais plus possible d'accéder aux autres classeurs

Merci d'avance pour votre aide

Simon

2 réponses

bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
5 janv. 2011 à 10:30
Salut,

tu peux soit jouer avec la propriété Visible de l'objet Worksheet soit la propriété IsAddin de l'objet workbook.

Pour la propriété Visible de l'objet Worksheet utilise la valeur XlVeryHidden, qui rend totalement inaccessible les feuilles sur les quelles on l'applique.

Dans les 2 cas, il faudra que les feuille soit visible pour que tu puisses travailler dessus. Ce qui veut dire que
visible devra être à True ou que Isaddin devra être à False avant toute lecture ou ecriture dans une des feuilles de ton fichier.

A+
0
scan59 Messages postés 4 Date d'inscription jeudi 25 novembre 2010 Statut Membre Dernière intervention 6 janvier 2011
6 janv. 2011 à 22:58
Salut Bigfish,

Merci bien pour la réponse, désolé pour la réactivité, j'ai beaucoup de boulot ces temps-ci ...

Pour la propriété visible à xlVeryHidden, j'ai testé mais il y a un plantage, du je pense, au fait que ce soit la seul est unique feuille affichée. j'ai plusieurs feuilles qui ont chacune leur utilité, mais qui sont toutes caché à l'utilisateur (onglet pour pramétrage, travail des données). En gros c'est une "application" pour à partir d'un fichier Excel en entrée, en extraire les données pour les mettre dans un autre fichier Excel (avec un formatage particulier), afin de l'intégrer dans une application.
Donc mon fichier Excel, sert uniquement à afficher un USF, qui permet de selectionner des fichiers, un repertoire de sortie, et ensutie, lancer la transformation.

Tout ca pour dire qu'au final, j'ai caché tous les onglets, sauf un sur lequel il est marqué en rouge police 30 "Veuillez Activer les macros". Et tout se passe ensuite avec le USF.

La deuxième solution (isAddin) est super, exactement ce que je voulais, car c'est pour des assistantes qui utilisent beaucoup Excel, donc je souhaiterais qu'elles puissent continuer à voir les documents sur lesquels elle travaillent.
Seul truc un peu "embêtant", est comme tu expliquais, à chaque Action de lecture ou ecritur. Par contre, je viens de m'apercevoir qu'apparemment, si la fonction qui accède au données (en lecture ou écriture) est écrite dans ThisWorkbook, et non dans le USF, pas besoin de reppasser isAddin à false.

En tout cas, encore merci

Simon
0
Rejoignez-nous