Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion sacapatates
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

sacapatates

Guest
Bonjour,

Mon application cache excel au démarrage avec application.visible= false.

J'ai plusieurs userforms avec des zones de saisi et des contrôles qui lance des msgbox quand il y a des erreurs de saisi par exemple.

Mon problème est que quand le msgbox se lance, l'userform se cache.
Et quand je ferme le msgbox, mon userform réapparait, mais je voudrais trouver un moyen pour que le userform reste affiché.

Sachant que je n'ai pas ce problème si je ne cache pas excel.

Merci.
 
Re : PB Msgbox

Salut sacapatates, Jean-Marcel, le Forum,

As tu un
Code:
Me.Hide[COLOR=Green] ' ou UserForm1.Hide[/COLOR]
avant
Code:
MsgBox "......."
et un
Code:
UserForm1.Show
juste après

Si c'est le cas supprimes les et ça devrait aller

Bonne Journée
 
Re : PB Msgbox

@Jean-marcel: non je n ai pas mis de
application.screenupdating=false
Je n ai pas le droit de faire circuler le fichier excel...... même si j épure ....

@dull: non plus ^^

Merci
 
Re : PB Msgbox

J'ai aussi dans mes userform qui permet de réafficher/cacher excel à tout moment

Code:
Dim hwnd As Long
If voirexcel = True Then 'voirexcel est un boolean declaré en global
voirexcel = False
Application.Visible = False
Else
voirexcel = True
Application.Visible = True

hwnd = FindWindow(vbNullString, Me.Caption) 'reduire l'userform pour l avior en bas a gauche
ShowWindow hwnd, 2
End If

J'ai aussi des déclaration en début de chaque userform qui permet de réduire le userform

Code:
Private Declare Function SetWindowLong& Lib "User32" Alias "SetWindowLongA" (ByVal hwnd&, ByVal nIndex&, ByVal dwNewLong&)
Private Declare Function ShowWindow& Lib "User32" (ByVal hwnd&, ByVal nCmdShow&)


Private Declare Function FindWindowA& Lib "User32" _
    (ByVal lpClassName$, ByVal lpWindowName$)
Private Declare Function EnableWindow& Lib "User32" _
    (ByVal hwnd&, ByVal bEnable&)
Private Declare Function GetWindowLongA& Lib "User32" _
    (ByVal hwnd&, ByVal nIndex&)
Private Declare Function SetWindowLongA& Lib "User32" _
    (ByVal hwnd&, ByVal nIndex&, ByVal dwNewLong&)

Private Sub UserForm_Initialize()
    Dim hwnd As Long
    
    hwnd = FindWindowA(vbNullString, Me.Caption)
    SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) Or &H20000
End Sub
 
 
Private Sub UserForm_Activate()
    Dim hwnd As Long
    
    hwnd = FindWindowA("XLMAIN", Application.Caption)
    EnableWindow hwnd, 1
End Sub

Est ce que ca peut etre la cause de mon souci ?

merci
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 Contrôle sur date
Réponses
8
Affichages
419
Réponses
9
Affichages
389
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
523
Réponses
13
Affichages
739
Réponses
4
Affichages
550
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…