Afficher une feuille

flaash Messages postés 16 Date d'inscription samedi 2 décembre 2000 Statut Membre Dernière intervention 23 février 2008 - 8 févr. 2008 à 13:34
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 9 févr. 2008 à 16:06
En effet, j'ai un petit pb pour afficher une feuille excel au milieu des boites de dialogues...
j'ai essayé worksheets(1).visible = true , bien que ca active la feuille concernée, elle n'est pas affichée au dessus des boites de dialogues de la macro. j'aimerais pouvoir y remédier..

Martial Tchakounté
(+237) 75 75 87 18

6 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
8 févr. 2008 à 22:52
Qu'est-ce que tu entends par "boîte de dialogue" ?
MsgBox ? Userform ? objet Dialogs ?

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
9 févr. 2008 à 00:38
Salut MPi²,

ce que je comprend c'est qu'il voudrait que la feuille excel passe devant les formulaires.
C'est peut etre possible de le faire mais cela me semble compliqué. Ce que je propose c'est d'avoir des Formulaires
configurés avec ShowModal = False et de tous les minimiser avec l'evenement Selection_Change de la feuille
qui doit passer devant.
Maintenant la question est : Comment minimiser les formulaires ?
je vois 2 solutions :
1) les minimisers par les API windows. La il suffit de chercher sur le net.
2) simplement reduire leurs taille Height =0 et Width = 0 et les positonners en bas a droite de la feuille(par exemple).
Apres coup seul les barres de titres restent visible.
Pour cette derniere solution le probleme est de reafficher les fomulaires par un simple clique car cliquer simplement dans la barre de titre d'un des formulaires ne suffit  pas . En effet il  n'existe pas d'evenement dans excel qui detect un clique dans la barre de titre d'un formulaire. Un clique dans le formulaire oui mais pas dans la barre. J'ai regardé d'autre solution comme detecter la perte du focus de la feuille etc, rien ne marche.
Donc pour ce cas encore 2 solutions:
1) les API windows (encore)
2) un bouton(ou autre) dans la feuille que l'on affiche(comprenez rendre visible) si les formulaires on ete minimisés
1 clique et hop tout redevient normale

Si il y a d'autre solution(il en a surement d'autre) elles seront les bienvenue

Vala.

A+
0
flaash Messages postés 16 Date d'inscription samedi 2 décembre 2000 Statut Membre Dernière intervention 23 février 2008
9 févr. 2008 à 13:07
Merci, le vrai, c'est clair que par "boite de dialogue" j'entends userform..  c'est déjà un début de solution, à la quelle je proposerais d'ajouter
-si la feuille qu'on réduit est celle qui est grande, on pourra peut etre garder une petite visible au dessus et déplacable, sur laquelle on mettra le bouton "fermer"..

pour qu'on avance, je vais poser une autre question:
est-ce qu'il ya moyen de transformer ma feuille en un autre type d'objet "compatible" ou "mélangeable" avec les userforms? si oui lequel? merci pour tes recherches une fois de plus big fish

Martial Tchakounté
(+237) 75 75 87 18
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
9 févr. 2008 à 14:21
Une idée comme ça...

Si ta version est Office 2000 ou plus récente, tu peux utiliser ceci pour afficher un UserForm et garder la possibilité d'éditer la feuille (worksheet) tout en laissant le UserForm est affiché.
Sub Afficher()
    UserForm1.Show vbModeless
End Sub

Méthode simple pour réduire/aggrandir un UserForm par double-click (dans la partie grise)
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Static ShowHide As Boolean
   
    ShowHide = Not ShowHide
   
    If ShowHide Then
        Me.Height = 25
        Me.Width = 80
    Else
        Me.Height = 200     'selon les besoins
        Me.Width = 300      'selon les besoins
        'pour centrer en largeur et en hauteur
        Me.Left = (Application.Width / 2) - (Me.Width / 2)
        Me.Top = (Application.Height / 2) - (Me.Height / 2)
    End If
End Sub

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
flaash Messages postés 16 Date d'inscription samedi 2 décembre 2000 Statut Membre Dernière intervention 23 février 2008
9 févr. 2008 à 16:01
on ne se comprends pas, c'est la feuille que je veux afficher, et non le userform; je n'ai pas de soucis non plus quant à modifier la feuille, le userform affiché ou non.
je veux juste qu'on puisse cliquer sur un bouton (pendant l'exécution de la macro) et une feuille de calcul s'affiche.. par exemple pour consulter un journal...
thanks menwhile MPI²

Martial Tchakounté
(+237) 75 75 87 18
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
9 févr. 2008 à 16:06
Tu ne peux pas afficher une feuille au-dessus d'un UserForm. Il te faut minimiser ce UserForm pour afficher une plus grande partie de la feuille ou utiliser Hide pour le cacher. Le problème, à ce moment-là est de le réafficher...

Autre possibilité, tu utilises un contrôle Spreadsheet directement sur le UserForm.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
0
Rejoignez-nous