Ir ao conteúdo
  • Cadastre-se

Inserir imagem vba


Ir à solução Resolvido por Basole,

Posts recomendados

  • 7 meses depois...
Em 02/03/2015 às 14:00, Basole disse:

Guilherme,  mudei o codigo para o modulo 1  e agora as duas sheets usam o mesmo codigo. 

 

abx.

Report 2015 - ESN.zip

@Basole será que poderia me ajudar?

Esse seu código resolve quase todo o meu problema, só não queria que as imagens ficassem vinculadas ao local de origem, pra poder usar a planilha em qualquer computador.

Li em um tópico que bastaria usar Shape.Addpicture ao invés do Pictures.Insert

Como ficaria essa alteração no código da planilha que você subiu? (muuuito obrigada)

Link para o comentário
Compartilhar em outros sites

  • mês depois...

Bom dia.

Faço muitos relatórios com fotos e cada um deles preciso anexar várias fotos, geralmente acima de 36 fotos.

Estou tentando vários códigos VBA, clicar em um botão, selecionar as fotos que quero anexar no corpo do relatório, e elas serem inseridas em espaços pré definidos com tamanho ajustado. São três fotos, uma ao lado da outra, outras três em baixo e assim por diante, separadas por páginas para poder realizar a impressão e ficar tudo configurado na página. Os códigos que encontrei são todos para formulários etc... Alguém pode me ajudar com esse código?

 

Vi um exemplo parecido com esse em um formulário dos bombeiros, onde clica em um botão, abre opção para selecionar o tipo de arquivo e a quantidade de fotos, selecionava 22 fotos e inseria no documento no local correto cada uma delas.

 

em anexo o campo onde preciso inserir as fotos.

image.png.69d623819e78c47866ab35ee53a2b347.png

MODELO DE RELATÓRIO COM FOTO.xlsx

Link para o comentário
Compartilhar em outros sites

@TiagoJM  As imagens serão inseridas nas células mescladas com o tamanho original.

 

Sub InserirFoto()
    Dim Linha   As Long
    Dim Coluna  As Long
    Dim Imagem  As Variant
    Dim I       As Integer
    
    Imagem = Application.GetOpenFilename("*.jpg,*.jpg", , , , True)
    
    Linha = 125
    Coluna = 3
    
    For I = 1 To UBound(Imagem)
        Cells(Linha, Coluna).Select
        ActiveSheet.Pictures.Insert Imagem(I)
        Coluna = Coluna + 36
        
        If I Mod 3 = 0 Then
            Coluna = 3
            Linha = Linha + 36
        End If
    Next I
End Sub

 

Link para o comentário
Compartilhar em outros sites

@TiagoJM  É possível ajustar o tamanho da imagem. Com 150x120 fica bem próximo do tamanho do quadro.

 

Sub InserirFoto()
    Dim Linha   As Long
    Dim Coluna  As Long
    Dim Imagem  As Variant
    Dim I       As Integer
    Dim P       As Picture
    
    Imagem = Application.GetOpenFilename("*.jpg,*.jpg", , , , True)
    
    Linha = 125
    Coluna = 3
    
    For I = 1 To UBound(Imagem)
        Cells(Linha, Coluna).Select
        Set P = ActiveSheet.Pictures.Insert(Imagem(I))
        P.ShapeRange.LockAspectRatio = False
        P.Width = 150
        P.Height = 120
        Coluna = Coluna + 36
        
        If I Mod 3 = 0 Then
            Coluna = 3
            Linha = Linha + 36
        End If
    Next I
End Sub

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Boa Noite @Midori

 

Gostei deste codigo, mas me tire só uma duvida, teria como alterar essa parte dele...

Citação

P.Width = 150

P.Height = 120

para eu colocar por ex só o valor da altura P.Height = 120 e o outro ajustar proporcional a este valor, tipo:

digamos uma imagem de 600x600, ai na altura eu coloco 150, ai quando puxar a imagem ela diminuir o valor da largura de forma que não deformasse ela.... que ficaria 150x150, ou no caso de uma img de 1360X700 e eu colocasse 280 de altura quando puxar a imagem a largura seria 544...

 

deu pra entender minha duvida? kkkkkkkkkkkkkk

Link para o comentário
Compartilhar em outros sites

  • mês depois...
  • 3 meses depois...

@Obadia Boas, experimente assim:

Sub Carregar_fig()
'Data criação(mm/dd/aaaa): 2/9/2021
'Criado por: InforMira
'Contato: [email protected]

Dim myPicture As Picture
Dim rng As Range

Set rng = Range("B8")

    Set myPicture = Sheets("Ligaçoes").Pictures.Insert("https://foconoenem.com/wp-content/uploads/2019/10/Figuras-de-Linguagens-no-ENEM-saiba-diferenciar.png")

    With myPicture
        .ShapeRange.LockAspectRatio = msoFalse
        .Width = rng.Width
        .Height = rng.Height
        .Top = Rows(rng.Row).Top
        .Left = Columns(rng.Column).Left
    End With

 End Sub

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...