Notifications
Clear all

código Ordenar Objetos

11 Posts
2 Usuários
0 Reactions
2,622 Visualizações
 guma
(@guma)
Posts: 135
Estimable Member
Topic starter
 

Bom Dia

Qual o Código para Ordenar Objetos ???

Ex: Enviar para traz, trazer para frente, avançar e recuar.

Procurei na internet não achei, tentei gravar uma macro mas não grava! :?

Então o jeito é pedir ajuda aos universitários :D

Att.

 
Postado : 22/05/2013 5:54 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Que tipo de objeto??
Para, via vba, manipular um shape é preciso primeiro seleciona-lo
então seria algo assim:

 
ActiveSheet.Shapes.Range(Array("Curved Up Arrow 1")).Select
    Selection.ShapeRange.ZOrder msoBringToFront                      'Traz para Frente
    ActiveSheet.Shapes.Range(Array("Right Arrow 2")).Select
    Selection.ShapeRange.ZOrder msoSendBackward                   'Recua
    ActiveSheet.Shapes.Range(Array("Seta para a direita 2")).Select
    Selection.ShapeRange.ZOrder msoSendToBack                        'Para Traz
    ActiveSheet.Shapes.Range(Array("Curved Up Arrow 1")).Select
    Selection.ShapeRange.ZOrder msoBringForward                      'Avança

 
Postado : 22/05/2013 6:06 am
 guma
(@guma)
Posts: 135
Estimable Member
Topic starter
 

Reinaldo é uma imagem inserida em um Form.

Então vou colocar o código dentro do form para quando eu clicar na imagem ela vir pra frente.

Obrigado.

 
Postado : 22/05/2013 6:17 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

A imagem esta "carregada" em um controle de imagem? Pode postar um exemplo

 
Postado : 22/05/2013 6:30 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

guma, se a solicitação tiver a ver com a quele exemplo da Variaveis, são controles Image, não pesquizei a respeito desta implementação que quer, msa de uma olhada nas Propriedades do Controle, e acredito que pode utilizar dentre elas, as Propriedades Visible, Top, Left.... Size, ....

Se utilizar Visble=False, assim quando clicar na imagem ela ficara oculta e a que estiver eme abaixo aparecerá.

[]s

 
Postado : 22/05/2013 6:42 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Segue um modelo simples de reordenação das imagens num form.
Não é possível fazer por camadas, só "trazer para frente" (que é o 0) ou "enviar para traz" (que é o 1)

    Me.Image1.ZOrder 0

ou

    Me.Image1.ZOrder 1
 
Postado : 22/05/2013 6:50 am
 guma
(@guma)
Posts: 135
Estimable Member
Topic starter
 

Sim está num controle.

Não vou postar um exemplo pois o arquivo é um pouco Grande
Modifiquei o primeiro código da seguinte maneira e deu certo.

Private Sub Image3_Click()
Image3.ZOrder msoBringToFront
End Sub 

Obrigado

 
Postado : 22/05/2013 7:22 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bacana que deu certo... só uma coisinha... poxa... Credite a pessoa correta pela solução... né?
Nada contra o Reinaldo, claro, mas o código dele não faz o que vc precisa e não funciona em formulário.

Eu mandei exatamente o mesmo código que vc postou como sua solução, mandei exemplo, .... bom, vc q sabe...

F.F.

 
Postado : 22/05/2013 7:42 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Só para constar msoBringToFront e msoSendToBack tambem funcionam em formulario, seu retorno é exatamente o que o Fernando propoz (0 e 1)
Já msoBringForward e msoSendBackward não funcionam em formulario pois seu retorno (2 e 3) não são valores reconhecidos

 
Postado : 22/05/2013 8:03 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Reinaldo,
o que eu quis dizer é que o código que você propôs, apesar de também utilizar o ZOrder, é específico para planilha e Shapes em planilhas que dependeriam de seleção.
No momento que você propôs esta solução, ainda não havia mais detalhes. Portanto, é uma solução bacana, mas que não atende a solicitação.

O que me deixou chateado (com o guma, não contigo) é que, e você deve concordar comigo, não é a solução para o problema dele, e o crédito foi para a solução errada.

Mas ... segue o jogo.

Abração.

 
Postado : 22/05/2013 8:26 am
 guma
(@guma)
Posts: 135
Estimable Member
Topic starter
 

Fernando

Eu já estava escrevendo a minha resposta após adaptar a solução do Reinaldo quando foram inseridas as demais, por isso aceitei a resposta dele.
Mas é uma boa questão já tive este problema outras vezes até tentei marcar mais de uma resposta mas não consegui. quando tenho mais de uma solução para o meu problema postada por Usuários diferentes que que eu faço??? :oops:

Eu agradeço todos pela ajuda, como estou estudando VBA toda contribuição é bem vinda, mas só posso aceitar uma resposta. :?

E ai ??? :?:

Obrigado a todos pela ajuda e desculpe qualquer coisa.

Att.

 
Postado : 22/05/2013 9:00 am