Uma família de softwares de planilhas da Microsoft com ferramentas para analisar, criar gráficos e comunicar dados.
usa o f4. ele fixa a célula. vlw!
Não há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Gostaria de poder fixar um campo de células para criar vínculo do excel com o powet point.
Assim: quero que o campo L1C1:L15C10 (linha 1 da coluna 1 até a linha 15 da coluna 10) pegue sempre as próximas 15 linhas, independente delas terem sido excluídas, ocultadas ou inseridas....
Acontece que quando crio o vínculo com esse campo na primeira vez fica tudo correto, mas ao longo do tempo que vou mexendo na planilha do excel (ocultando células, inserindo conteúdo, excluindo linhas) a referência se perde e a atualização não pega as próximas 15 linhas.
Como fixar esse número de linhas?
Agradeço a ajuda!!!
Uma família de softwares de planilhas da Microsoft com ferramentas para analisar, criar gráficos e comunicar dados.
Pergunta bloqueada. Essa pergunta foi migrada da Comunidade de Suporte da Microsoft. É possível votar se é útil, mas não é possível adicionar comentários ou respostas ou seguir a pergunta.
usa o f4. ele fixa a célula. vlw!
Comigo funciona normalmente. Como criou o seu vínculo?
Passos que executei:
Selecionei um intervalo no Excel e pressionei Ctrl+C. Num slide do PowerPoint, fui no menu Página Inicial, cliquei no dropdown do botão colar do grupo Área de Transferência, cliquei em Colar Especial, cliquei no botão de opção Colar Vínculo, selecionei Objeto Pasta de Trabalho do Microsoft Excel e cliquei em OK.
Dessa forma, quando faço alterações no intervalo (inclusive apagar ou inserir linhas/colunas), a referência ao intervalo é mantida de forma fixa.
Resolvi adotar outra estratégia.
O código abaixo deve ser colado no PowerPoint. Mude o nome das constantes:
Sub EventoAbrir()
'Mude as constantes abaixo para ajustar ao seu caso
'Excel
Const CsCabeçalho As String = "D3:F3"
Const ClLinhas As Long = 7
Const CsPlanilha As String = "Plan1"
Const CsCaminho As String = "c:\temp\Pasta1.xlsx"
'PowerPoint
Const ClSlide As Long = 2
Const CsngEsquerda As Single = 100
Const CsngTopo As Single = 100
'Const CsngComprimento As Single = 200
'Declaração de variáveis
'Excel
Dim bAberto As Boolean
Dim lRow As Long
Dim lCount As Long
Dim lFirst As Long
Dim rTabela As Object 'Range
Dim wb As Object 'Workbook
Dim appExcel As Object 'Excel.Application
'PowerPoint
Dim sld As Slide
On Error Resume Next
Set appExcel = GetObject(, "Excel.Application")
On Error GoTo 0
If appExcel Is Nothing Then
Set appExcel = CreateObject("Excel.Application")
Else
bAberto = True
End If
'Quando tudo estiver funcionando bem, sugiro trocar True por False
appExcel.Visible = True
appExcel.DisplayAlerts = False
Set wb = appExcel.Workbooks.Open(CsCaminho)
appExcel.DisplayAlerts = True
With wb.Sheets(CsPlanilha)
lFirst = .Range(CsCabeçalho).Row
lRow = lFirst
Do
lRow = lRow + 1
If Not .Rows(lRow).Hidden Then
lCount = lCount + 1
End If
Loop While lCount <= ClLinhas
Set rTabela = .Range(CsCabeçalho).Resize(lRow - lFirst)
rTabela.CopyPicture Appearance:=xlScreen _
, Format:=xlPicture
Set sld = ActivePresentation.Slides(ClSlide)
sld.Shapes.Paste.Select
'ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
ActiveWindow.Selection.ShapeRange.Top = CsngTopo
ActiveWindow.Selection.ShapeRange.Left = CsngEsquerda
'ActiveWindow.Selection.ShapeRange.Width = CsngComprimento
End With
wb.Close True
If Not bAberto Then appExcel.Quit
End Sub
Ao invés de utilizar nomes definidos, estou copiando a tabela como imagem na apresentação. O exemplo acima copia a tabela do intervalo D3:F3 e mais 7 linhas visíveis da planilha Plan1 da pasta de trabalho situada em c:\temp\Pasta1.xlsx no slide 2 da apresentação ativa, sendo que a posição da tabela ficará na posição esquerda 100, e topo 100.
Felipe, tudo bom?
Você tem alguma novidade sobre o código?
Felipe, obrigado pelo apoio!
Fico aguardando seu retorno!