Ir ao conteúdo
  • Cadastre-se

botões de setas direcionais incluindo diagonais em UserForm.


edcronos

Posts recomendados

Boa tarde!!

 

Leia:

http://www.rondebruin.nl/mac/mac022.htm

 

Veja um exemplo 

Option Explicit Private m_clsResizer As CResizerPrivate Sub CommandButton1_Click()    Unload MeEnd Sub Private Sub CommandButton2_Click()     With Me        .Move .Left, .Top, .Width * 1.3, .Height * 1.3    End With    End Sub Private Sub CommandButton3_Click()     With Me        .Move .Left, .Top, .Width / 1.3, .Height / 1.3    End With End Sub Private Sub UserForm_Initialize()     Set m_clsResizer = New CResizer    m_clsResizer.Add Me    End Sub Private Sub UserForm_Terminate()     Set m_clsResizer = Nothing    End Sub        Class CResizer codeOption Explicit Private Const MFrameResizer = "FrameResizeGrab"Private Const MResizer = "ResizeGrab"Private WithEvents m_objResizer As MSForms.FramePrivate m_sngLeftResizePos As SinglePrivate m_sngTopResizePos As SinglePrivate m_blnResizing As SinglePrivate WithEvents m_frmParent As MSForms.UserFormPrivate m_objParent As Object Private Sub Class_Terminate()     m_objParent.Controls.Remove MResizer    End Sub  Private Sub m_frmParent_Layout()        If Not m_blnResizing Then        With m_objResizer            .Top = m_objParent.InsideHeight - .Height            .Left = m_objParent.InsideWidth - .Width        End With    End If End Sub  Private Sub m_objResizer_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)     If Button = 1 Then        m_sngLeftResizePos = X        m_sngTopResizePos = Y        m_blnResizing = True    End If    End SubPrivate Sub m_objResizer_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)     If Button = 1 Then        With m_objResizer            .Move .Left + X - m_sngLeftResizePos, .Top + Y - m_sngTopResizePos            m_objParent.Width = m_objParent.Width + X - m_sngLeftResizePos            m_objParent.Height = m_objParent.Height + Y - m_sngTopResizePos            .Left = m_objParent.InsideWidth - .Width            .Top = m_objParent.InsideHeight - .Height        End With    End If    End SubPrivate Sub m_objResizer_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)    If Button = 1 Then        m_blnResizing = False    End IfEnd Sub Public Function Add(Parent As Object) As MSForms.Frame    Dim labTemp As MSForms.Label        Set m_frmParent = Parent    Set m_objParent = Parent        Set m_objResizer = m_objParent.Controls.Add("Forms.Frame.1", MFrameResizer, True)    Set labTemp = m_objResizer.Add("Forms.label.1", MResizer, True)    With labTemp        With .Font            .Name = "Marlett"            .Charset = 2            .Size = 14            .Bold = True        End With        .BackStyle = fmBackStyleTransparent        .AutoSize = True        .BorderStyle = fmBorderStyleNone        .Caption = "o"        .MousePointer = fmMousePointerSizeNWSE        .ForeColor = RGB(100, 100, 100)        .ZOrder        .Top = 1        .Left = 1        .Enabled = False    End With        With m_objResizer        .MousePointer = fmMousePointerSizeNWSE        .BorderStyle = fmBorderStyleNone        .SpecialEffect = fmSpecialEffectFlat        .ZOrder        .Caption = ""        .Width = labTemp.Width + 1        .Height = labTemp.Height + 1        .Top = m_objParent.InsideHeight - .Height        .Left = m_objParent.InsideWidth - .Width    End WithEnd Function 

Att

Link para o comentário
Compartilhar em outros sites

Desculpe, Ou eu não entendi a solução, ou não me expliquei direito.

 

eu  quero botões normais com figura de Seta para chamar as macros que eu criei, tipo essa figura "a melhor que achei"

Direcional02.png

 

 

Se foi isso que você mandou, desculpe mesmo, meus conhecimentos em vba ainda são muito limitados e eu vou precisar de alguma explicação para aplicar, mas mesmo se não for aceito algo de curso de gratis :P
valeu.

Link para o comentário
Compartilhar em outros sites

@Eduardo.

Experimente:
1. salve a figura que deseja colocar no botão (no seu caso a seta) como arquivo bitmap
2. selecione o Botão no qual deseja colocar a figura
3. clique com o direito sobre ele e escolha Propriedades
4. na propriedade Imagem >> clique no botão com 3 pontinhos no campo à direita da propriedade Picture >> selecione o arquivo antes salvado ... e voilà

Para mais informações clique no campo à direita da propriedade Picture e tecle F1.

Link para o comentário
Compartilhar em outros sites

@

creio que entendi como fazer, falta arrumar umas figuras de setas para aplicar nos botões

mas será que tem como embutir no arquivo ou planilha?

tipo se deixar salvo no pc vai que é apagado,"meus arquivos são ainda mais bagunçados que essa planilha"

ou já é automaticamente incluso no arquivo?

 

 

@

por pura curiosidade e na tentativa de aprender mais, para que serve essa macro que você postou?

Link para o comentário
Compartilhar em outros sites

Boa tarde!!

 

Para redimencionar o formulário (que por padrão não tem essa opção).

 

Att

Hum, legal, estou colocando tudo no userform em multi-pagina,e para não atrapalhar a visualização dos dados, coloquei o menor possível,

vai me ajudar e muito "claro depois de aprender como fazer funcionar"

 

Realmente era pra ser uma função padrão, eu já ia procurar sobre isso, mas  seria redimensionar automaticamente de acordo com a aba aberta.

essa acho que só amplia todo o conjunto.

 

valeu pela dica,

Vou ter que escolher a resposta do osvaldo por que foi a solução da pergunta em questão .

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...