Maximizar e Minimizar Userform Excel VBA

Поділитися
Вставка
  • Опубліковано 23 гру 2024

КОМЕНТАРІ • 50

  • @mineroaquino9596
    @mineroaquino9596 3 роки тому +1

    Não quero ser reclamão agradeço seus esforços em estar disponibilizando esses macetes parar nós desde já agradeço pelos materiais que tem postado tem ajudado a mim e muitos outros também.

    • @CanalSGP
      @CanalSGP  3 роки тому

      Bom dia, tranquilo.

  • @shiguehashimoto1247
    @shiguehashimoto1247 2 роки тому

    Luan, outra(s) planilha(s) Excel pode(m) ser utilizada(s) enquanto o formulário está minimizado?

    • @CanalSGP
      @CanalSGP  2 роки тому

      Boa noite, se o formulário estiver com vbmodeles depois de .show acredito que possa utilizar outras planilhas.

    • @shiguehashimoto1247
      @shiguehashimoto1247 2 роки тому

      @@CanalSGP coloquei FALSE depois do Show e deu certo. Outra opção é colocar FALSE na propriedade show modal. Muito obrigado pela disposição de sempre.

    • @CanalSGP
      @CanalSGP  2 роки тому

      Que bom que conseguiu.

  • @Souzaths
    @Souzaths 3 роки тому

    Olá, obrigada pelo vídeo!
    Eu uso o Office 365 e quando rodo a macro ele diz que FindWindow não foi declarada. Meu código está identico ao seu. Pode ajudar por favor?

    • @CanalSGP
      @CanalSGP  3 роки тому

      Boa noite, este procedimento funciona apenas para versão de 32 bits. Verifique se a sua versão Excel é de 64 bits, ai não vai funcionar.

    • @Souzaths
      @Souzaths 3 роки тому

      @@CanalSGP funciona colocando o PtrSafe antes do Function. Mas mesmo assim o Vba não está identificando o lpWindowName.

    • @CanalSGP
      @CanalSGP  3 роки тому

      Boa tarde, já tentei adaptar este código para 64 bits, mas sem sucesso por enquanto.

  • @churchun
    @churchun 4 роки тому +2

    Muchas gracias, pero yo quiero que el userform este "activo" (ventana activa) mientras minimizo hoja Excel ¿Qué debo hacer?

    • @CanalSGP
      @CanalSGP  4 роки тому

      Bom dia, obrigado, até o momento não fiz nada assim, não sei se é possível.

    • @churchun
      @churchun 4 роки тому +1

      @@CanalSGP Gracias. Ya pude encontrar solucion.

    • @jhonedisonquinones4589
      @jhonedisonquinones4589 4 роки тому

      @@churchun Holaa, cual es la soluion?

    • @churchun
      @churchun 4 роки тому

      @@jhonedisonquinones4589 busca un codigo para el useform

  • @jamersontenorio9736
    @jamersontenorio9736 7 років тому

    meu Windows e 64 bits posso utilizar ? agradeço pela atenção.

    • @CanalSGP
      @CanalSGP  7 років тому +1

      Estes códigos funcionam somente em computador de 32 bits.

  • @Fernando_MF
    @Fernando_MF 3 роки тому

    Aqui funcionou os Botões de Manimizar e Minimizar mesmo no sistema 64bits Windows 10, porém o Zoom não funcionaou .

    • @CanalSGP
      @CanalSGP  3 роки тому +1

      Bom dia, infelizmente não sei o que pode ser.

  • @tathiannaleite9366
    @tathiannaleite9366 3 роки тому

    Para alguns formulários do meu projeto o código funciona perfeitamente, mas para os meu formulários Login e Menu (que são os principais a terem essa função) não estão aparecendo os botões de minimizar e maximizar, saberia dizer o pq?

    • @tathiannaleite9366
      @tathiannaleite9366 3 роки тому

      Descobri! É pq o formulário estava sem Caption, tem que ter o Caption do Formulário para o código funcionar.

    • @CanalSGP
      @CanalSGP  3 роки тому

      Boa tarde, que bom que descobriu.

  • @feliperez.4509
    @feliperez.4509 5 років тому +1

    Funcionou bem, apenas um imprevisto, ao maximizar o form ele dá o zoom e altera o "tamanho" dos objetos corretamente, aplicando o zoom que eu especifiquei com o seu código:
    If Me.Height < 429 Then
    Me.Zoom = 100
    Else
    Me.Zoom = 135
    End If
    Mas ao minimizar o UserForm de volta para o tamanho original logo em seguida, o zoom da tela cheia ainda fica aplicado, ou seja, os objetos ficam maiores que o form em si, entende? Ficam com as configurações/zoom de tela cheira em um form padrão.
    Diferente do seu, que quando foi maximizado o zoom foi aplicado e logo em seguida quando voltou para o tamanho normal o zoom mudou junto.
    Você já recebeu alguma duvida semelhante a essa Luan? Se tiver uma solução em mente poderia escrever aqui por gentileza?

    • @CanalSGP
      @CanalSGP  5 років тому +1

      Boa tarde, deve ter errado alguma linha de código, segue código utilizado:
      Private Declare PtrSafe Function DrawMenuBar Lib "USER32" (ByVal hwnd As Long) As Long
      Private Declare PtrSafe Function FindWindow Lib "USER32" Alias "FindWindowA" _
      (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
      Private Declare PtrSafe Function GetWindowLong Lib "USER32" Alias "GetWindowLongA" _
      (ByVal hwnd As Long, ByVal nIndex As Long) As Long
      Private Declare PtrSafe Function SetWindowLong Lib "USER32" Alias "SetWindowLongA" _
      (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
      Private Declare PtrSafe Function GetSystemMenu Lib "USER32" _
      (ByVal hwnd As Long, ByVal bRevert As Long) As Long
      Private Declare PtrSafe Function DeleteMenu Lib "USER32" _
      (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlaga 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 Const SC_CLOSE As Long = &HF60
      Private Sub UserForm_Initialize()
      Dim lngFrnMndl As Long, lngStyle As Long
      lngFrnMndl = FindWindow(vbNullString, Me.Caption)
      lngStyle = GetWindowLong(lngFrnMndl, GWL_STYLE)
      lngStyle = lngStyle Or WS_SYSMENU Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX
      SetWindowLong lngFrnMndl, GWL_STYLE, lngStyle
      DrawMenuBar lngFrnMndl
      End Sub
      Private Sub UserForm_Resize()
      'If GetScreenResolution = "800x600" Then
      'Me.Zoom = 100
      'Else
      'Me.Zoom = 190
      'End If
      If Me.Height < 429 Then
      Me.Zoom = 100
      Else
      Me.Zoom = 190
      End If
      End Sub

    • @feliperez.4509
      @feliperez.4509 5 років тому +1

      @@CanalSGP Foi aqui, o problema era o Height eu acho, as medidas do meu código não e Form não estavam condizentes, obrigado pela atenção.

  • @bernardopoubel629
    @bernardopoubel629 7 років тому +1

    Ao minimizar o userform a planilha ainda fica aberta e não minimiza, como posso fazer para que a planilha minimize junto com o userform ?

    • @CanalSGP
      @CanalSGP  7 років тому

      Olá, vou estudar o assunto, se for possível gravo vídeo aula de como minimizar a planilha via códigos.

  • @rogeriomelo3600
    @rogeriomelo3600 2 роки тому

    Boa tarde Professor
    Não sei se concorda, mas seria interesse atualizar esse vídeo

    • @CanalSGP
      @CanalSGP  2 роки тому

      Boa tarde, estamos atualizando um vídeo por semana, mas vai longe para trocar todos os mais antigos.

  • @mineroaquino9596
    @mineroaquino9596 3 роки тому

    Olá então quando consegui fazer rodar os controles da tela maximiza de forma desproporcional não acompanhando o tamanho máximo da tela como acontece na forma normal antes de maximizar? sabe como resolvo esse problema? sei que as vezes quando encontramos algum problema ou falha na aplicação na arquitetura 64bts é difícil ser resolvido mas peço que se possível nos ajude , pois creio que minha dificuldade também é a mesma de muitos

    • @CanalSGP
      @CanalSGP  3 роки тому

      Bom dia, pode tentar o procedimento da vídeo no link a seguir, talvez seja melhor: ua-cam.com/video/gSuItx-WP3k/v-deo.html

  • @danilsonbarros4401
    @danilsonbarros4401 6 років тому +2

    Estou muito interessado em aprender tudo sobre vba excel

  • @brauliocosta7339
    @brauliocosta7339 5 років тому

    Boa tarde amigo, por favor tem como fazer esse procedimento de maximizar e minimizar no sistema de 64 bits? se sim como faço? me ajuda por favor obrigado.

    • @CanalSGP
      @CanalSGP  5 років тому +1

      Boa tarde, é o mesmo código, mas vai precisar acrescentar o comando ptrsafe em todas as function, veja exemplo abaixo:
      Declare PtrSafe Function

    • @elanedosanjosmartins8696
      @elanedosanjosmartins8696 4 роки тому

      @@CanalSGP resolvido... Não acrescentei o A maiúsculo "FindWindowA". Muito bom. Amando VBA. ❤

  • @jb7artezsolucoesinteligent759
    @jb7artezsolucoesinteligent759 6 років тому

    você já teria o código pra 64 bits?
    se tiver gostaria de recebê-lo
    Obrigado!!!

    • @CanalSGP
      @CanalSGP  6 років тому

      Fizemos ajustes nos códigos, favor informar se funcionou no 64 bits.

    • @julianaandrade1264
      @julianaandrade1264 3 роки тому

      @@CanalSGP
      poderia me enviar o cód para funcionar em ambos? pois tenho maquina 32 e 64 que usarão o formulario

    • @CanalSGP
      @CanalSGP  3 роки тому

      Boa tarde, este procedimento funciona apenas em versão de 32. Qual e-mail para envio da planilha.

  • @robsonmendes8841
    @robsonmendes8841 5 років тому

    tenho um vba de cliente e produtos mas nao estou conseguindo fazer de orçamento tem como vc me ajudar

  • @AlessandroSilva-dl3vq
    @AlessandroSilva-dl3vq 8 років тому

    só funciona na sistema de 32 bits vc teria um código para usar nos dois ao mesmo tempo?

    • @CanalSGP
      @CanalSGP  8 років тому

      Estes códigos somente em computador de 32 bits, mas sem o botão maximizar e minimizar tem outro códigos, veja o vídeo anterior: ua-cam.com/video/gSuItx-WP3k/v-deo.html

  • @alx_abreu
    @alx_abreu 6 років тому +1

    Boa tarde, na verdade o comando para fazer essas Declarações rodar em Office 64 Bits é bem fácil, basta acrescentar o argumento "PTRSAFE" antes da palavra Function e após a palavra declare assim sendo "Declare Ptrsafe Function"
    assim funciona em ambas as versões do Office

    • @CanalSGP
      @CanalSGP  6 років тому

      Olá, assim que possível vamos testar.

    • @765Emerson
      @765Emerson 6 років тому +1

      Excelente! Funcionou perfeitamente para 64 bits

  • @lollipopdocesesalgados4609
    @lollipopdocesesalgados4609 7 років тому

    ok.