Ir ao conteúdo
  • Cadastre-se

Excel Camera Excel no Visualstudio


Ir à solução Resolvido por RafaVillani,

Posts recomendados

Bom dia!

 

Alguém saberia me dizer como faço para incluir um componente em meu projeto no visual basic que me trouxesse o mesmo resultado da camera no excel?

O picturebox e o imagebox só me trazem imagens estáticas e eu preciso de imagens dinâmicas.

 

Valeu, galera!

Link para o post
Compartilhar em outros sites

Olá,

Obrigado, mas eu quero mesmo é a camera do excel, aquela que me permite focalizar uma range, um grupo de células para eu poder alterar as células originais e isso ser mostrado na imagem vinculada.

Se puder me ajudar eu ficaria muito grato.

Valeu!

Link para o post
Compartilhar em outros sites

Pretendo colocar a imagem vinculada, não foto, numa Taskpane, painel de tarefas do lado da tela, fixo, e do outro lado, com barra de rolagem, os dados que serão mudados linha por linha.

O picturebox não me atende e o image só tem no vba.

 

Link para o post
Compartilhar em outros sites

Você já viu aos painéis de tarefas que vêm com as ultimas edições do office?

Já usou o visual studio para acrescentar um painel personalizado?

Eu já fiz isso com um navegador, bastando inserir no formulário um componente webbrowser igual ao que existe nos controles activex do excel.

Só que o componente mais parecido no visual studio é o picturebox e esse não serve.

Não ia adiantar eu te mandar uma planilha de demonstração.

Seria igual a sua. 

O que eu preciso é colocar a imagem vinculada em um painel de tarefas, não em cima das células da planilha.

x.xlsx

Meu arquivo abriu no seu PC?

Link para o post
Compartilhar em outros sites

@ROSANO100 Posso não ter visto os painéis de tarefas, muito menos ter criado um com o visual studio, porém, entendo um pouquinho de programação, inclusive VB.

 

Sei que não é a solução para seu problema, mas, pode lhe dar uma luz.

 

Fiz no VBA, usando a ferramenta image, ela é atualizada em tempo real, basta você digitar a linha e coluna que deseja alterar e inserir o novo valor.

 

Se não for isso, me desculpe, minha intenção era somente ajudar, e espero que alguém com maior conhecimento lhe auxilie.

Foto_Form_Tempo_Real.rar

Link para o post
Compartilhar em outros sites

Por favor, me desculpe se  eu não soube escolher as palavras e pareci grosseiro.

De maneira nenhuma foi essa a minha intenção.

Toda ajuda é sempre bem vinda e, principalmente, a boa vontade, o compromisso de quem se dispõe a ajudar.

Só disse sobre os painéis porque é exatamente isso que estou precisando.

Seu conhecimento em VBA parece ser o que preciso, pois acho que é no código do componente, e não componente em si, que está a solução.

Poderia me arranjar só com a camera do excel, mas custei tanto a descobrir como colocar o suplemento do painel, não tive muita ajuda na internet, e acho que ficaria tão mais legal usá-lo em vez de só deixar a foto subindo na planilha na medida que eu fosse descendo as linhas, que achei que valeria a pena tentar colocar a imagem dinâmica em um painel do lado.

O arquivo que mandei deu problemas para abrir?

Viu meu painel personalizado?

  

Link para o post
Compartilhar em outros sites

@ROSANO100Tudo bem, sem problemas.

 

Então, não consegui visualizar o painel, primeiro deu erro de localização confiável, contornei o erro adicionando uma localização, depois deu erro no arquivo do visual studio (vsto). 
 

O código que lhe passei não ajudou em nada?

A lógica é de que o componente que está carregando a imagem da câmera seja atualizado a cada modificação na planilha. 
 

Para isso, a cada modificação na planilha é gerada uma nova imagem que é salva no local da sua pasta de trabalho, e carregada no componente.

 

RafaVillani

Link para o post
Compartilhar em outros sites

Cara,

S-E-N-S-A-C-I-O-N-A-L!

 

Era isso mesmo!

Até tirei um print pra te mostrar, e estava estudando seu código pra ver como ele poderia me ajudar.

Mas iria demorar pra eu adaptá-lo.

Com seu código vai ficar bem mais fácil adaptar para minhas imagens e inserir os botões que faltam de impressão, salvamento, etc.

Pode me enviar o código?

Vou ficar a noite toda o estudando.

 

Valeu Demais, Meu Amigo!

 

 

PAINEL DE TAREFAS.png

Seria pedir demais você me ensinar um código que mude de tabela também?

É que meu projeto prevê trazer um determinado grupo de células nomeado, documento, de acordo com o nome do documento que eu puser em outra célula.

Obrigado!

Link para o post
Compartilhar em outros sites

@ROSANO100 Bom dia, então, eu instalei o Visual Studio e estava criando o Task Pane por ele, mas vi que existem muitos sub comandos, sub rotinas e sub propriedades. Então eu pesquisei e vi que é possível fazer através do próprio VBA do excel, mas, para isso, precisamos baixar um componente de ferramentas, bom, vamos lá:

 

1- Baixe e instale a versão Free do A-Tools no seu computador, observe a versão do seu office 32 ou 64 bits, A-Tools Free.

 

2- Obtenha a imagem que você deseja através da câmera do Excel, e a renomeie como "Imagem".

 

3- Abra o editor do VBA, insira um novo userform, e adicione um componente de imagem.

 

4- Na guia de propriedades do userform altere a propriedade ShowModal do userform para False.

 

5- Insira um novo módulo e cole este código:

Sub Carregar_Imagem()

Dim Plan As String
Dim PastaNome As String
Dim oImage As Shape
Dim oSheet As Worksheet
Dim oTemp As ChartObject
Dim oChartArea As Chart

Plan = Plan1.Name
PastaNome = ThisWorkbook.Path & Application.PathSeparator & "imagem.gif"

Set oSheet = Plan1
Set oImage = oSheet.Shapes.Item("Imagem")

oImage.CopyPicture

Set oTemp = oSheet.ChartObjects.Add(100, 100, oImage.Width, oImage.Height)
Set oChartArea = oTemp.Chart
oTemp.Activate
With oChartArea
    .ChartArea.Select
    .Paste
    .Export Filename:=PastaNome, filtername:="GIF"
End With
UserForm1.Image1.Picture = LoadPicture(PastaNome)
oTemp.Delete
End Sub

 

 6- Duplo clique no Userform1, apague as linhas e cole este código:

Public WithEvents TP As BSTaskPane

Private Sub UserForm_Initialize()
Dim TPs As New BSTaskPanes
Set TP = TPs.Add("Task Pane", Me, False, dpRight)
Call Carregar_Imagem
End Sub

 

7- No evento Change da sua planilha onde está a Imagem, cole este código:

Private Sub Worksheet_Change(ByVal Target As Range)
Call Carregar_Imagem
End Sub

No meu modelo os dados e a imagem estão na plan1, altere conforme sua planilha.

 

8- No evento Open da sua pasta de trabalho cole este código:

Private Sub Workbook_Open()
UserForm1.Show
UserForm1.TP.Visible = True
End Sub

 

Sua TaskPane está pronta, espero que lhe atenda.

 

RafaVillani

Link para o post
Compartilhar em outros sites

Muito Obrigado mesmo!

Tambem vou tentar ver o que consigo fazer com o seu codigo, pois o visual studio usa o vba ou algo parecido e talvez de pra aproveitar.

Mais uma vez Obrigado, mas , por favor, continue tentando, nao se esqueca de mim.

 

Link para o post
Compartilhar em outros sites
  • 2 semanas depois...

Olá@ROSANO100, após quebrar a cabeça, testes e mais testes, finalmente consegui um código que lhe atenda. Segue o código, altere conforme sua necessidade.

 

Imports System.Drawing
Imports System.IO
Imports Microsoft.Office.Interop.Excel

Public Class Sheet1


    Public TaskPane As New ActionsPaneControl1


    Private Sub Sheet1_Startup() Handles Me.Startup
        Dim ms As New MemoryStream
        Dim imagem As Image
        Globals.ThisWorkbook.ActionsPane.Controls.Add(TaskPane)
        TaskPane.Show()
        Using str As Stream = File.OpenRead("C:\Users\Gabriel\source\repos\TaskPane\TaskPane\imagem.gif")
            imagem = Image.FromStream(str)
        End Using
        TaskPane.PictureBox1.Image = imagem
    End Sub

    Private Sub Sheet1_Shutdown() Handles Me.Shutdown

    End Sub

    Private Sub Sheet1_Change(Target As Range) Handles Me.Change
        Dim ws As Excel.Worksheet = Globals.ThisWorkbook.Application.Worksheets("Sheet1")
        Dim rng As Excel.Range = ws.Range("A1:E5")
        Dim cht As ChartObject
        Dim ms As New MemoryStream
        Dim imagem As Image

        rng.CopyPicture(Appearance:=XlPictureAppearance.xlScreen, Format:=XlCopyPictureFormat.xlPicture)

        cht = Globals.Sheet1.ChartObjects.add(0, 0, rng.Width, rng.Height)
        With cht
            .Select()
            .Chart.Paste()
            .Chart.Export("C:\Users\Gabriel\source\repos\TaskPane\TaskPane\imagem.gif")
            .Delete()
        End With

        Using str As Stream = File.OpenRead("C:\Users\Gabriel\source\repos\TaskPane\TaskPane\imagem.gif")
            imagem = Image.FromStream(str)
        End Using
        TaskPane.PictureBox1.Image = imagem

    End Sub
End Class

 

Se a resposta foi útil clique em curtir e marque a resposta com solução.

 

RafaVillani

 

 

  • Obrigado 1
Link para o post
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...

Aprenda a ler resistores e capacitores

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!