Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
Avatar do usuário
Por crcjcruz
Posts Avatar
#28296
Bom dia a todos.
Tenho uma planilha bem simples para pesquisa se salas comerciais, dentro dessa planilha tenho quatro imagens e gostaria de quando clicar em uma dessas quatro imagem ela me apresenta em tamanho maior, ou seja ela se amplia, e ao clicar novamente ela retorna ao seu tamanho normal. Alguém pode me ajudar ?
Segue anexo exemplo.
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por alexandrevba
Avatar
#28299
Bom dia!!

Eu não baixei seu modelo.

===================[Opção 1]=========================
Código: Selecionar todos
Option Explicit

'Autor: Domenic Domenic (MrExcel MVP)
'Fonte: https://www.mrexcel.com/forum/excel-questions/611678-macro-zoom-picture.html

Private Sub Picture_Click()

    Static Dict As Dictionary
    Static MyPics() As Variant
    Static Cnt As Long
    Static c As Long
    
    Dim SHP As Shape
    
    Cnt = Cnt + 1
    
    If Cnt = 1 Then
        Set Dict = CreateObject("Scripting.Dictionary")
    End If
    
    Set SHP = Me.Shapes(Application.Caller)
    
    If Not Dict.Exists(SHP.Name) Then
        c = c + 1
        Dict.Add SHP.Name, c
        ReDim Preserve MyPics(1 To 2, 1 To c)
        MyPics(1, c) = SHP.Name
        MyPics(2, c) = True
    End If
    
    If MyPics(2, Dict.Item(SHP.Name)) = True Then
        MyPics(2, Dict.Item(SHP.Name)) = False
        SHP.ScaleHeight 1.5, msoTrue 'aumentar a altura para 50%
        SHP.ScaleWidth 1.5, msoTrue 'aumentar a largura para 50%
    Else
       MyPics(2, Dict.Item(SHP.Name)) = True
        SHP.ScaleHeight 1, msoTrue 'escala para altura original
        SHP.ScaleWidth 1, msoTrue 'escala para largura original
    End If

End Sub
Código: Selecionar todos
Sub AssignMacro()
'Click com o direito do mouse e seleciona a opção Atribuir Macro
    Dim SHP As Shape
    For Each SHP In Plan1.Shapes 'Altere o nome da guia caso necessário
        If SHP.Type = 13 Then 'imagem
            SHP.OnAction = "Plan1.Picture_Click"
        End If
    Next SHP
End Sub
Código: Selecionar todos
Sub ResetToOriginalSize()
'Coloque esse código dentro de um Módulo comum
    Dim SHP As Shape
    For Each SHP In Plan1.Shapes
        If SHP.Type = 13 Then 'imagem
            SHP.ScaleHeight 1, msoTrue 'scale to original height
            SHP.ScaleWidth 1, msoTrue 'scale to original width
        End If
    Next SHP
End Sub
Código: Selecionar todos
Private Sub Workbook_Open()
'Coloque esse código dentro do módulo de EstaPasta_de_trabalho
    Call ResetToOriginalSize
End Sub
===================[Opção 2]=========================
Veja:
https://answers.microsoft.com/en-us/off ... 018acf6810
https://www.extendoffice.com/documents/ ... image.html

Att
Avatar do usuário
Por crcjcruz
Posts Avatar
#28326
alexandrevba, bom dia.
Primeiramente obrigado pelo seu retorno, mas infelizmente não sou tão bom em VBA, mas tentei colocar o seus códigos, mas não funcionou, acho que estou fazendo alguma coisa errada, tentei gravar na macro mas me dá bastante erros.
Avatar do usuário
Por crcjcruz
Posts Avatar
#28328
babdallas, bom dia.
Obrigado pelo seu retorno. Baixei seu exemplo, mas não funcionou, acho que está faltando algo, por favor pode verificar e me retornar
Por babdallas
#28329
Desculpe, anexei o arquivo errado. Veja se funciona agora.
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por crcjcruz
Posts Avatar
#28336
babdallas, bom dia.
Ok funcionou direitinho, como vi eu tenho que fazer imagem por imagem, como vou ter várias imagem tem como fazer um código para todas, desculpe estar tomando seu tempo, mas se for possível seria melhor, mas se não for tudo bem, fico com essa mesmo.
Por babdallas
#28338
Simplifiquei o que está ao alcance do meu conhecimento. Mas tem que atribuir a macro em cada imagem.
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por crcjcruz
Posts Avatar
#28341
OK funcionou corretamente, muito obrigado pela sua ajuda, valeu mesmo. Não sou bom em VBA, mas se precisar de algo estou a disposição.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord