Notifications
Clear all

Preencher a tela toda

4 Posts
2 Usuários
0 Reactions
919 Visualizações
(@rui-maciel)
Posts: 190
Reputable Member
Topic starter
 

Boa noite tenho mais uma para solucionar em parte.
Adaptei um código ao meu trabalho para preencher a tela toda, com o userform1 ao abrir, contudo, não enche na totalidade no lado esquerdo, dá para solucionar?
Voltar ao excel ADM e 1234.
Abr.,
RM

 
Postado : 13/02/2018 6:03 pm
(@klarc28)
Posts: 971
Prominent Member
 

Conheço um código que realmente não fica perfeito no lado esquerdo. Infelizmente, acho que não dá para ajustá-lo:

 Private Sub UserForm_Initialize()
Application.WindowState = xlMaximized
Me.Height = Application.Height
Me.Width = Application.Width
Me.Left = Application.Left
Me.Top = Application.Top
Me.StartUpPosition = 3

End Sub

Eu gosto de fazer assim:

https://www.youtube.com/watch?v=bMC3sMe35Ww&t=342s

 
Postado : 13/02/2018 6:16 pm
(@rui-maciel)
Posts: 190
Reputable Member
Topic starter
 

Consegui ajustar inserindo num modulo o seguinte código, juntamento com o seu código no initialize do userform:

Option Explicit

#If VBA7 Then
    Public Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Public Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
#Else
    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
#End If


Sub AtivarBotoesMinMax(objForm As Object)
    
    Dim hwnd As Long
    
    Const WS_SYSMENU As Long = &H84C80080
    Const WS_MINIMIZEBOX As Long = &H20000
    Const WS_MAXIMIZEBOX As Long = &H10000
    
    hwnd = FindWindow(vbNullString, objForm.Caption)
    SetWindowLong hwnd, -16, WS_SYSMENU Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX
    
End Sub
 
Postado : 13/02/2018 7:08 pm
(@klarc28)
Posts: 971
Prominent Member
 

Cinco dicas que foram muito úteis para mim:

1) Quando não sei fazer algo no VBA, vou ao menu EXIBIÇÃO >> MACROS >> GRAVAR MACRO
Faço o que eu quero aí volto ao menu EXIBIÇÃO >> MACROS >> PARAR GRAVAÇÃO
Aperto Alt + F11 e vejo como a macro fez aqui. Tento entender e tento adaptar.

2) Quando vou criar um código e o resultado não está saindo como o esperado, entro no código e vou apertando F8 para executar passo a passo, aí vou passando o mouse sobre as variáveis para verificar se o valores delas estão corretos, já consertei milhares de códigos dessa forma.

3) Antes de executar o código, vou ao menu Depurar >> Compilar. Isso ajuda corrigir erros mais simples, como o nome de uma variável digitado errado.

4) Declaro todas as variáveis. Isso também evita erros.

5) Sempre uso o Option Explicit lá no início. Ele me obriga a declarar as variáveis.

 
Postado : 14/02/2018 7:12 pm