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

Assuntos que não estiverem relacionados as categorias acima. Se não souber em qual categoria sua mensagem se encaixa, envie aqui.
  • Avatar do usuário
  • Avatar do usuário
#64210
Estou a fazer uma base de dados para filmes e séries. Gostaria de saber se é possível clicar num filme ou série, essa linha ficar colorida e fazer aparecer a imagem correspondente numa imagem (controlo activeX) ou noutra forma.
A imagem tem que corresponder à localização (pasta no pc) e titulo (nome da imagem) com os dados da tabela.

Envio em anexo do ficheiro para perceberem melhor.
Você não está autorizado a ver ou baixar esse anexo.
Editado pela última vez por RicardoGuerra em 03 Mai 2021 às 17:35, em um total de 1 vez.
#64217
boa noite, segue em anexo a planilha com umas macros novas mostrando como pode ser feito o esquema de seleção de linha
basicamente vc guarda numa variavel global a ultima linha e com isso vc pode limpar ela depois de limpar a nova linha.

dsa imagens, lembro que ajudei alguém a fazer algo parecido aqui no forum, vou tentar achar o link e te passo

Código: Selecionar todos
Public ultLinha As Integer


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Rows.Count = 1 And Target.Column <= 7 And Target.Row >= 4 Then
    limparlinha (ultLinha)
    pintarlinha (Target.Row)
    ultLinha = Target.Row
End If

End Sub


Private Sub pintarlinha(ByVal linha As Integer)


   With Range("A" & linha & ":G" & linha).Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    
    
End Sub

Private Sub limparlinha(ByVal linha As Integer)
If linha = 0 Then
    Exit Sub
End If

    With Range("A" & linha & ":G" & linha).Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    
End Sub
Você não está autorizado a ver ou baixar esse anexo.
RicardoGuerra agradeceu por isso
#64227
oi, bom dia ! que bom que deu certo.

realmente fiz uma formatação com o gravar macro sem me preocupar muito com esses detalhes, acredito que seja questão de vc gravar uma macro com a formatação que vc gostaria e substituir no meu código.

encontrei o link,
viewtopic.php?f=12&t=14978
aqui mostra como carregar um arquivo num "shape", espero que ajude.

att

Curso de Excel Grátis
RicardoGuerra agradeceu por isso
#64251
Obrigado @CursoDeExcelGratis .
Gravei um macro com as formatações que queria mas ao clicar nas linhas são adicionados os limites de linha e coluna. E não sei porquê mas os primeiros cliques não aparecem os limites.
Este é o código atual, se por acaso conseguir dizer o que está mal assim eu mudo, senão vai ficar mesmo assim...
--------------------------------------------------------------------------------------------------------------------------------------------------------
Public ultLinha As Integer


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Rows.Count = 1 And Target.Column <= 7 And Target.Row >= 4 Then
limparlinha (ultLinha)
pintarlinha (Target.Row)
ultLinha = Target.Row
End If

End Sub


Private Sub pintarlinha(ByVal linha As Integer)


With Range("A" & linha & ":G" & linha).Interior
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
.Pattern = xlPatternLinearGradient
.Gradient.Degree = 0
.Gradient.ColorStops.Clear
End With
With Range("A" & linha & ":G" & linha).Interior.Gradient.ColorStops.Add(0)
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
With Range("A" & linha & ":G" & linha).Interior.Gradient.ColorStops.Add(0.5)
.Color = 5296274
.TintAndShade = 0
End With
With Range("A" & linha & ":G" & linha).Interior.Gradient.ColorStops.Add(1)
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With


End Sub

Private Sub limparlinha(ByVal linha As Integer)
If linha = 0 Then
Exit Sub
End If

With Range("A" & linha & ":G" & linha).Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With

End Sub
-------------------------------------------------------------------------------------------------------------------------------------------------------------
Em relação ao link, já vi mas não é bem isso que gostaria de fazer. Eu tenho um diretório no pc com duas pastas (TREKSTOR e My Book) e dentro delas tenho as imagens das series cada uma com o nome igual ao titulo na coluna A. Gostaria de escrever um código que ao clicar numa linha, fosse achar a imagem certa e colocá-la na shape.
exemplo:

Peaky Blinders | TREKSTOR
Silicon Valley | My Book

Clico na linha "Peaky Blinders" e vai buscar a imagem "Peaky Blinders.jpg" na pasta "C:\Series\TREKSTOR\"
Clico na linha "Silicon Valley" e vai buscar a imagem "Silicon Valley.jpg" na pasta "C:\Series\My Book\"
Mas isto automaticamente sem aparecer janela para ir buscar a imagem.
Se calhar não é possível, eu não encontrei nenhuma maneira para o fazer!

De qualquer maneia, mais uma vez obrigado @CursoDeExcelGratis já me ajudou muito.
#64252
opa, da pra fazer sim, eu inclui a função mostrarimagem


Private Sub MostrarImagemSerie()

'pega a imagem
Call CarregarImagem("ImagemSerie", "C:\Series\" & Cells(ActiveCell.Row, 3) & "\" & nomeImagem(ActiveCell.Row))


End Sub

Private Function nomeImagem(ByVal linha As Integer)

Dim strImagem As String

strImagem = Cells(linha, 1)
'tirar ( e colocar .jpg
If InStr(1, strImagem, "(") > 0 Then
strImagem = Left(strImagem, InStr(1, strImagem, "("))
End If

nomeImagem = Trim(strImagem) & ".jpg"

End Function

essa função carregar imagem é a que estava naquele post que eu falei antes viewtopic.php?f=12&t=14978, ele carrega uma imagem num shape dado o nome do shape e o caminho da imagem

eu mudei um pouquinho para ele se certificar que a imagem existe e não da erro.

eu inclui um shape chamado ImagemSerie so pra vc testar

agora sobre a formatação das bordas, chuta que é macumba ! rs
Você não está autorizado a ver ou baixar esse anexo.
RicardoGuerra agradeceu por isso
#64274
oi @RicardoGuerra , essa foi a imagem que usei no meu teste.
Mas não vamos desistir não, pelo que entendi esta dando um erro no caminho, pode ser o nome da foto ou o caminho inteiro que eu posso ter errado, vou alterar a planilha para mostrar o camminho e vc me dizer se esta certo ou não.

se puder, me encaminha também a mensagem de erro que da por favor.
#64297
no lugar do
Código: Selecionar todos
if  dir(caminhofoto) = "c:\users ... 
experimenta colocar
Código: Selecionar todos
if dir(caminhofoto) = "" then
o codigo acima verifica se a foto não existe
RicardoGuerra agradeceu por isso
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