Formulier Visual basic en andere excel bestanden

Status
Niet open voor verdere reacties.

timmethy

Gebruiker
Lid geworden
8 apr 2009
Berichten
54
Beste gebruikers van visual basic excel,

Ik heb een formulier gemaakt met visual basic.

Probleem: Als ik een bestand (excel) open via windows verkenner dan blijft mijn formulier de bovenliggende hand hebben. Het is op dit moment niet mogelijk om via alt tab naar het andere excel document te gaan. Elke keer als ik dat probeer verschijnt het formulier weer boven op.

Het is wel mogelijk om via start > programma's > excel en dan vervolgens binnen de nieuwe excel " openen " te selecteren en dan het desbetreffende bestand te selecteren.
Dan si het wel mogelijk om te switchen tussen de 2 schermen.

Hoe los ik het op dat mijn visual basic formulier niet altijd zichtbaar is en dat ook de andere excelbestanden naar voren kunnen komen en dat ik niet elke keer een nieuwe applicatie hiervoor hoef te openen.

mvg,

Tim
 
Wat gebeurt er in het formulier, en wat wil je bereiken met het formulier?
 
Beste wigi,


Excel bestand:
Opbouw:
Data wordt weggeschreven vanuit het formulier naar blad 1 van excel

Het probleem is dat het formulier niet naar de achtergrond gaat als ik een excel bestand opstart vanuit windows verkenner.

normaal als je 2 excel bestanden opent, dan zie je het 2de excel bestand op je scherm en het eerste bestand zal daarachter staan.

Bij het formulier is het anders, namelijk als ik een excel bestand open gaat dat bestand automatisch naar achteren en blijft het formulier op de voorgrond.

Hopelijk heeft dit mijn probleem iets verduidelijkt

groeten,

Tim
 
Begin bij het begin en bestudeer eerst eens een boek of website over het gebruik van userforms.
 
timmethy,

Wat dacht je hier van?
Op het Internet gevonden.

Onderstaande code zorgt er voor dat er een maximaliseer en een
minimaliseer-knop in het formulier worden gegenereerd. Het spreekt
dan ook voor zich dat deze code gelijk in het formulier kan worden
geplaatst. Mocht je deze in een Module willen plaatsen vergeet dan
niet deze “Public” te declareren.

Code:
Option ExplicitPrivate Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As LongPrivate Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _
    ByVal hWnd As Long, _
    ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib "user32" Alias SetWindowLongA" ( _
    ByVal hWnd As Long, _
    ByVal nIndex As Long, _
    ByVal dwNewLong As Long) As LongPrivate 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 = &H10000Private Sub UserForm_Activate()
    Dim lFormHwnd As Long, lStijl As Long

    lFormHwnd = FindWindow("ThunderDFrame", "UserForm1")
    ' ThunderDFrame is de Class naam voor ExcelUserForm    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
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan