Notifications
Clear all

userform com o mesmo tamanho (largura) de area da planilha

11 Posts
2 Usuários
0 Reactions
1,944 Visualizações
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

ola

Queria fazer um painel de controle para minha planilha

como as Áreas são selecionadas por colunas
queria que a userform acompanhasse a largura delas

tipo o SETOR "A" vai da coluna G até a coluna J
a Userfomr no caso tem que se ajustar nessa area

não sei se tem algum modo de ajustar a userfomr para caber dentro de uma area ajustavel

att.

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 22/07/2014 3:29 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Nãosei se seria isto, mas, no UserForm temos as Propriedades Height e Width que define o Tamanho do Formulário e tambem tem como definir a Posição na Tela em que o Formulário deve ser exibido.

Aqui a Posição dos Ranges:

Sub PosicaoRange()
    
    MsgBox Range("G2").Left 'Distancia de G2 em Relação a Borda
    MsgBox Range("J2").Top 'Distancia de J2 em Relação ao Topo

End Sub

Nesta a Posição onde o Formulário deve se exibido:

Private Sub UserForm_Initialize()
    
    If Not UserForm1 Is Nothing Then
        Me.StartUpPosition = 0
        Me.Move UserForm1.Left + 100, UserForm1.Top + 20
    End If

End Sub

Acredito que juntar as mesmas captando os Valores de distancia entre os Ranges se consiga fazer o que pretende, se entendi corretamente.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/07/2014 4:29 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

ola .
obrigado

eu nem entendi direito o funcionamento e cliquei em resolvido,
vou tentar entender como funciona e aplicar na planilha

isso vai me poupar a pergunta de posicionar numa posição especifica :)

mas eu quero algo que tem a ver com

Me.Width = "largura de (Coluna G até a coluna J)"
para ficar centrada dentro dessa faixa
como eu pego a largura de G até J para a userform ficar do mesmo tamanho?

att

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 22/07/2014 4:46 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

Em se falando de Posição onde o Formulário está
tem como saber o .TopLeftCell de um useform ?

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 22/07/2014 4:58 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

Bem...
sobre o topico


Me.Width = Range("k1").Left - Range("A1").Left

isso resolve a minha pergunta

Mas dependendo da distancia das colunas a Userform não se ajusta corretamente.

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 22/07/2014 5:23 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Eu fiz um teste com a seguinte rotina e de fato não se ajusta exatamente:

Lembrando que a Posição é sempre pela Borda Esquerda da Celula, então em vez de "J" o ideal seria "K"

Private Sub UserForm_Initialize()
    Dim sPosicaoG
    Dim sPosicaoJ
    Dim sLargura 'Width
        
    sPosicaoG = Range("G2").Left 'Distancia de G2 em Relação a Borda
    sPosicaoJ = Range("K2").Left 'Distancia de J2 em Relação ao Topo
    
    sLargura = sPosicaoJ - sPosicaoG
    
    Me.Width = sLargura
    
    If Not UserForm1 Is Nothing Then
        Me.StartUpPosition = 0
        Me.Move UserForm1.Left + sPosicaoG, UserForm1.Top + 120
    End If

End Sub

De uma olhada no link abaixo talvez ajude tambem:
XL VBA How do I prevent a UserForm's .Top and .Left properties being ignored on the first .Show?
http://stackoverflow.com/questions/2193 ... ignored-on

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/07/2014 5:29 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

todas as questões resolvidas

Private Sub UserForm_Click()

   a = Range("k2").Left
   b = Range("d2").Left
   C = UserForm1.Left
        Me.Width = a - b
Me.Move UserForm1.Left + b - C + 20

só falta eu aprender a chamar de uma macro comum..

até e obrigado

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 22/07/2014 5:44 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

não tinha visto a sua ultima postagem.

como a minha macro vai acompanhar a area definida dentro de uma tabela eu posso fazer o ajuste fino de acordo com a posição.

o ajuste vai ser feito em tempo de execução.

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 22/07/2014 5:46 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

ajustei as diferenças
e centralizei com um espaço nas laterais

Private Sub UserForm_Click()

   a = Range("h2").Left
   b = Range("e2").Left
   C = UserForm1.Left
        Me.Width = (a - b) - 4
Me.Move UserForm1.Left + (b - C) + 30

End Sub

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 22/07/2014 5:55 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

falha na logica,

eu tinha testado com a primeira coluna da esquerda sendo a coluna "A"

mas se mover a tela não posiciona corretamente.

O valor de Left do Userform é referente ao canto esquerdo da tela
E o valor de Left da celula é referente a coluna "A"

E agora?

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 22/07/2014 6:20 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

E...
pelo que analisei não vai ter jeito de fazer oq eu quero, o userform é independente do excel

a unica forma é eu usar o excel em tela cheia, e as celulas se mover de acordo com a posição do useform.
"mais uma questão para se resolver" :(

att.

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 22/07/2014 6:33 pm