Form naar achtergrond

Status
Niet open voor verdere reacties.

asmeets

Gebruiker
Lid geworden
9 feb 2007
Berichten
47
Hallo allemaal,

Vanuit een excel macro met bijbehorend form open ik een opgeslagen excel workbook. het vervelende is dat het form op de voorgrond zichtbaar blijft, terwijl ik het geopende workbook wil zien. Spelen met showmodal werkt niet.

Weet iemand hoe ik dit probleem kan omzeilen?

bvd,

Ad
 
asmeets,

Vanuit een excel macro met bijbehorend form open ik een opgeslagen excel workbook. het vervelende is dat het form op de voorgrond zichtbaar blijft, terwijl ik het geopende workbook wil zien. Spelen met showmodal werkt niet.

Op de oude site van Radjesh Klauke stond de code om de 2 ontbrekende knoppen Maximaliseren en Verkleinen te maken.
Op z'n nieuwe site staat dit niet en ik weet ook niet of dit er nog op komt.

Misschien dat iemand deze code voor je heeft.
 
Een knop op het formulier met de code:

Me.Hide

en een knop op het workbook met de code:

Formuliernaam.Show

of bedoel je wat anders

Charles
 
asmeets,

Ik heb contact gezocht met Radjesh Klauke en deze heeft mij net de code toegezonden.
Plaats onderstaande code in de UserForm:

Code:
Option Explicit 

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _ 
ByVal lpClassName As String, _ 
ByVal lpWindowName As String) As Long 

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _ 
ByVal hWnd As Long, _ 
ByVal nIndex As Long) As Long 

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _ 
ByVal hWnd As Long, _ 
ByVal nIndex As Long, _ 
ByVal dwNewLong As Long) As Long 

Private Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long 

Private Const GWL_STYLE As Long = (-16) 
Private Const WS_SYSMENU As Long = &H80000 
Private Const WS_MINIMIZEBOX As Long = &H20000 
Private Const WS_MAXIMIZEBOX As Long = &H10000 

Private Sub UserForm_Activate() 
    Dim lFormHwnd As Long, lStijl As Long 
    lFormHwnd = FindWindow("ThunderDFrame", "UserForm1")   'ThunderDFrame is de Class naam voor   Excel UserForm 
    lStijl = GetWindowLong(lFormHwnd, GWL_STYLE) 
    lStijl = lStijl Or WS_SYSMENU 'SystemMenu 
    lStijl = lStijl Or WS_MINIMIZEBOX 'met MinimizeBox 
    lStijl = lStijl Or WS_MAXIMIZEBOX 'en MaximizeBox 
    Call SetWindowLong(lFormHwnd, GWL_STYLE, (lStijl)) 
    Call DrawMenuBar(lFormHwnd) 
End Sub

Ik hoop dat je er wat aan hebt.
 
Dank, maar dit is niet wat ik zoek

Bedankt allemaal voor de geboden hulp.

Het is echter niet wat ik zoek. Ik zal proberen het duidelijker te maken.

Ik heb een macro gemaakt die een eindgebruiker in excel kan opstarten. Een van de mogelijkheden is een rapport te maken. Dit rapport is een excel workbook gevuld met data waar ene grafiek o.i.d. van wordt gemaakt. Na het maken wordt de naam van het rapport toegevoegd aan een listbox. Middels een select in de listbox en het selecteren van de open button wordt de geselecteerde workbook geopend. Nu staat het form over de geopende workbook en kan ik de grafiek niet helemaal zien. Het is uiteraard mogelijk het form middels bijvoorbeeld hide.me te verbergen. Als de workbook gesloten wordt moet het form weer naar voren komen zodat verder gegaan kan worden met de macro.

Ik hoop dat het nu wat duidelijker is. Als dit niet gewoon is op te lossen probeer ik het met de minimize optie van Hoornvan.

Ad
 
Laatst bewerkt:
Alle codes komen terug, maar dit zal voortaan in mijn blog te vinden zijn. De link naar de blog is onderin mijn www-pagina te vinden. Ik zal een apart rubriek voor dergelijke vraagstukken met oplossingen plaatsen. Ik moet echter nog een hoop dingen doen, dus het kan nog wel even duren, maar dat gaat wel goed komen.
 
Als de workbook gesloten wordt moet het form weer naar voren komen zodat verder gegaan kan worden met de macro.
:shocked::shocked::shocked:

Dat is onmogelijk. De Form is immers afhankelijk van het werkboek. Misschien in dit geval makkelijker om het project eens te uploaden. (zonder gevoelige info)
 
Thanks a lot

Radjesh,

Bedankt voor je reactie. Ik weet nu in ieder geval dat het niet mogelijk is.
Ik ga op zoek naar een andere oplossing.

Ad
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan