Notifications
Clear all

Rotina para trocar imagem

11 Posts
3 Usuários
0 Reactions
4,259 Visualizações
(@m_araujo)
Posts: 159
Estimable Member
Topic starter
 

Pessoal bom dia
poderia me dar uma força nessa rotina
preciso fazer com que ela troque a imagem sem modificar o formato original tipo Altura = 4.31 Cm Lagura = 8.63 cm
segue a rotina

Sub InsertPicture()
Dim Logo As Boolean
'Insere uma figura e a formata.
On Error GoTo errfigura
    Logo = True
    For Each Info In Sheets("Menu").Shapes
        If Info.Name = "Figura" Then
            Logo = False
        End If
    Next Info
    If Logo Then
        Sheets("Menu").Shapes.AddShape(msoShapeRectangle, 307.5, 60.75, 163.5, 132#).Select
        Selection.ShapeRange.Name = "Figura"
        Selection.ShapeRange.Fill.Visible = msoFalse
        Selection.ShapeRange.Fill.Transparency = 0#
        Selection.ShapeRange.Line.Weight = 0.75
        Selection.ShapeRange.Line.DashStyle = msoLineSolid
        Selection.ShapeRange.Line.Style = msoLineSingle
        Selection.ShapeRange.Line.Transparency = 0#
        Selection.ShapeRange.Line.Visible = msoFalse
    End If
    If Application.Dialogs(xlDialogInsertPicture).Show Then
        Selection.Name = "Figura2"
        SelectPicture "Menu"
    Else
       Exit Sub
    End If
    Sheets("Menu").Shapes("figura2").Delete
errfigura:
    Exit Sub
End Sub

Sub SelectPicture(planilha As String)
'Seleciona a figura nova e substitui a figura antiga.
    On Error GoTo errfigura
    Dim sAltura As Single
    Dim sPosicaoLeft As Single
    Dim sLargura As Single
    Dim sPosicaoTop As Single
    Sheets(planilha).Select
    'Passa seus dados altura, lagura e posição para variáveis.
        With ActiveSheet.Shapes("figura")
            sAltura = .Height
            sLargura = .Width
            sPosicaoLeft = .Left
            sPosicaoTop = .Top
            .Delete
        End With
    'Seleciona a figura nova e muda seus padrões.
    If planilha = "Menu" Then
        Sheets("Menu").Shapes("figura2").Copy
    Else
        Sheets("Menu").Shapes("figura").Copy
    End If
    Sheets(planilha).Paste
    With Selection
        .Height = sAltura
        .Width = sLargura
        .Left = sPosicaoLeft
        .Top = sPosicaoTop
        .Name = "Figura"
    End With
errfigura:
If Err.Number = 0 Then
    Exit Sub
Else
    MsgBox "Não foi inserido nenhum logo.", vbInformation, "Nilson"
    Exit Sub
End If
End Sub
Sub Logotipo()
    'Application.ScreenUpdating = False
    'Unprotect_Sheet
    'InsertPicture
    'Application.ScreenUpdating = True
    'Sheets("Menu").Range("A1").Select
End Sub

Obrigado a todos

 
Postado : 29/03/2012 7:36 am
(@m_araujo)
Posts: 159
Estimable Member
Topic starter
 

Alguem..

 
Postado : 29/03/2012 4:51 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Alguem..

Araujo, eu estaria sendo injusto com outros membros do Forum se não colocar esta obs, peço que observe as Regras do forum quanto a dar Ups :
Nossas Regras
viewtopic.php?f=7&t=203

• POSTAGENS
Evite postagens seguidas desnecessárias e não faça "UP" para agilizar as respostas, se dentro de um prazo razoável não houver respostas revise o solicitado.

E sua última msg foi as 29 Mar 2012, 10:36 , acho um espaço de tempo curto para estarmos cobrando por alguma resposta, e é logico, lenbre-se que toda a ajuda é voluntária.

Quanto a sua questão, veja se é isto que quer, pelo que entendi o ajuste é só nesta rotina:

    Sub InsertPicture()
    Dim Logo As Boolean
    'Insere uma figura e a formata.
    On Error GoTo errfigura
        Logo = True
        For Each Info In Sheets("Menu").Shapes
            If Info.Name = "Figura" Then
                Logo = False
            End If
        Next Info
            If Logo Then
                Sheets("Menu").Shapes.AddShape(msoShapeRectangle, 307.5, 60.75, 163.5, 132#).Select
                With Selection.ShapeRange
                .Name = "Figura"
                .Fill.Visible = msoFalse
                .Fill.Transparency = 0#
                .Line.Weight = 0.75
                .Line.DashStyle = msoLineSolid
                .Line.Style = msoLineSingle
                .Line.Transparency = 0#
                .Line.Visible = msoFalse
                .LockAspectRatio = msoFalse
                .Height = 136.5
                .Width = 244.5
                .Rotation = 0#
                End With
            End If
        
            If Application.Dialogs(xlDialogInsertPicture).Show Then
                Selection.Name = "Figura2"
                SelectPicture "Menu"
            Else
               Exit Sub
            End If
        
        Sheets("Menu").Shapes("Figura2").Delete
        Range("A1").Activate
        
errfigura:
        Exit Sub
    End Sub

[]s

 
Postado : 29/03/2012 5:57 pm
(@m_araujo)
Posts: 159
Estimable Member
Topic starter
 

Opa Mauro bom dia tudo bem cara eu falhei tentando upa as mensagens desculpa a todos
obrigado tambem por tentar me ajuda ficou otima a ajuda mais ainda dependendo do tamanho da imagem ela fica maior que a configurada, mais ja resolveu e muito. Obrigado

 
Postado : 03/04/2012 4:53 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Araujo, grato pela compreensão, e espero que não me interprete mau, é mais para mantermos uma ordem no forum.

Quanto a sua questão, se ainda temos ainda esta duvida :
mais ainda dependendo do tamanho da imagem ela fica maior que a configurada, não precisava dar como Resolvido uma vez que entendi que resolveu em parte.

Mas voltando ao assunto, eu não compreendi, logicamente talvez por não ter quais as imagens está trabalhando, pois nos testes que fiz com varias imagens de diversos tamanhos, todas foram inseridas e trocadas mantendo o tamanho que disse acima, "Altura = 4.31 Cm Lagura = 8.63 cm ".

Se quiser continuar nesta questão, envie seu exemplo e algumas das imagens que está utilizando, se forem arquivos gdes que fogem as regras do forum, pode enviar direto ao meu email.

[]s

 
Postado : 03/04/2012 5:57 am
(@arthurdiegoo)
Posts: 99
Estimable Member
 

m_araujo, lembre da questão das ribbons também.

No quesito imagem, o padrão de formato é o PNG, que preserva os dados base da imagem, se você estiver usando imagens .jpg ou .gif, tem chance do tamanho indexado no arquivo ser maior, e simplesmente suprimir o comando do excel.

Antes de tentar o que o amigo mauro disse, use um programa ( photoshop ou ms paint ) e converta suas imagens para extensão .png e tente novamente...

Dê o retorno =D

 
Postado : 03/04/2012 6:44 am
(@m_araujo)
Posts: 159
Estimable Member
Topic starter
 

Opa Moçada bom então,
ficou legal o Mauro fico muito bom mais não sei onde foi o que deu problema
eu tentei de todas as formas e ele desconfigura o tamanho original tentei de todas as formas mais nao achei o erro
fiz como o Arthur mandou
convert em PNG e nao adiantou arthur, mais e o seguinte ele nao muda muito nao, almenta pouco no tamanho
vou anexa o arquivo ai para uma possivel ajuda.
Obrigado a todos

At.

 
Postado : 05/04/2012 4:46 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Araujo, com esta rotina inserimos um Shape novo e definimos uma imagem para o mesmo, é esta a intenção ? Ou quer trocar a imagem do Logo Sollut ?

Testei a rotina e de fato dependendo da imagem para o novo Shape ela não obedece o tamanho, quando adaptei a rotina usei o excel 2003 e funcionou corretamente, seriao caso de mais alguns testes com a v 2007, ainda não fiz o teste que o Arthur citou, com imagem PNG, mas gostaria de saber primeiro se quer trocar a imagem do logo.

[]s

 
Postado : 05/04/2012 8:07 am
(@m_araujo)
Posts: 159
Estimable Member
Topic starter
 

Mauro boa tarde
a imagem que quero trocar e somente imagem da fazenda e nao da empresa Sollut
entende??

At.

 
Postado : 05/04/2012 9:08 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Araujo, não consegui associar a rotina oa seu botão, ainda não me acostumei a lidar com Ribbon, como no serviço só temos o excel 2003, ainda não me aprofundei na questão, preciso tirar um tempinho e ler mais a respeito.

Baseado na fonte abaixo montei um exemplo que não será dificil de você adaptar, namesma foi adicionada um controle Image e ao clicarmos abre a caixa perguntando se queremos inserir a imagem, se confirmado, temos a opção de selecionar, e se já tivermos uma imagem tambem temos a opção de remove-la, de uma olhada e qq duvida retorne.

Fonte:
Necessário se cadastrar para ver o postt completo
http://www.thecodecage.com/forumz/micro ... ables.html

[]s

 
Postado : 05/04/2012 11:30 pm
(@m_araujo)
Posts: 159
Estimable Member
Topic starter
 

Boa tarde, Maruo cara ficou uma beleza hem
aff ficou muito bacana muito obrrigado mesmo hem
vlw obrigado T+

 
Postado : 09/04/2012 11:22 am