Re: Option d'affichage de UserForm |
Titre du sujet : Re: Option d'affichage de UserForm par myDearFriend! le 12/01/2008 23:33:33 Bonsoir PowerPlus, Comme je le précise un peu partout ici, pour pouvoir être joint, un fichier doit faire 80 ko maximum (c'est déjà plus que la plupart des forums !). Ton fichier zippé fait 106 Ko, il est donc normal qu'il soit refusé ici. Pour info, il y a 5 feuilles masquées dans ton classeur : quand je parle d'exemple épuré, je ne parle pas d'éléments masqués mais bien de suppression de tout ce qui n'est pas utile à la compréhension du problème... Si tu l'avais fait, ton fichier zippé ferait environ 52 ko ! Et si tu avais fait l'effort de reconstituer un exemple simple (comme tu l'avais fait avec ton classeur1.xls ici), il pèserait encore moins et moi je perdrais moins de temps à rappeler ça pour la Xième fois... Que ce soit ici ou ailleurs, sauf cas justifié, j'ai pour habitude de ne jamais répondre aux posts dont les fichiers sont joints autrement que par le forum... Comme tu l'héberges depuis ton propre espace Web et que tu ne peux pas tout savoir, on va dire que j'ai fait exception cette fois-ci... mais sache que ça restera une exception... Concernant tes questions cette fois : Citation : PowerPlus a dit : Oui, l'idée est intéressante et peut être mise en oeuvre assez facilement. Pour éviter de mettre le même code sur chaque feuille, tu peux placer le code ci-dessous dans le module de code de l'objet ThisWorkbook :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
... sans oublier de supprimer les procédures Private Sub Worksheet_SelectionChange() correspondante de chaque feuille. Citation : PowerPlus a dit : Oui, tu peux le faire avec un CheckBox (case à cocher) par exemple (je crois que c'est ce que tu as fait d'ailleurs dans ton USF). Il te faut par contre stocker la valeur du CheckBox (True ou False) dans une cellule (cachée) de ton classeur pour pouvoir en mémoriser l'état pour une utilisation ultérieure. C'est très simple, à l'ouverture de ton USF (dans l'évènement Initialize() du module de code du Userform) tu mets quelque chose comme :
CheckBox1.Value = Sheets("Feuil1").Range("A1").value
Private Sub CheckBox1_Click()
Ensuite, dans le Private Sub Workbook_SheetSelectionChange() (voir ci-dessus), tu pourras mettre quelque chose comme :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Pour info, dans ton classeur, le code plante à l'ouverture car la feuille "Code" n'existe pas ou plus (pense à supprimer ou commenter les lignes de code qui ne sont plus requises suite à l'épuration du fichier)... en bref : pense également à tester tes fichiers avant de les poster STP. (oui ,je sais ça fait beaucoup à penser, mais ça ne demande que quelques efforts de logique) Par ailleurs, dernière chose importante : J'ai édité mon post du 03/01/08 à 16h11 dans CE FIL, lis-le (voir Edtion n°2). Je t'avais dit une ânerie là, il faut que tu en prennes connaissance et que tu rectifies ton projet en conséquence (désolé pour cette bourde, je ne suis pas infaillible non plus). Cordialement, |
Forums