Excel 2010 - Congelar coluna para rolagem horizontal e vertical

3

Estou familiarizado com a funcionalidade básica do painel congelar. Se eu congelar a primeira coluna por Freeze Pane > Freeze First Column , ela funcionará em uma rolagem horizontal, mas não em uma rolagem vertical.

Eu gostaria que a coluna fosse congelada, não importa como eu role. Ou seja, o que está na primeira coluna deve permanecer sempre visível, não importa como eu role o restante da janela. Isso é possível?

Editar

Para ser claro, os Freeze Panes regulares não funcionarão porque não quero que nenhuma linha seja bloqueada. Então, quando eu rolar verticalmente, eu quero que a primeira coluna não role, mas todas as linhas (fora de qualquer célula na primeira coluna) rolem normalmente.

    
por Jeremy Wiggins 19.02.2013 / 23:24

3 respostas

3

Veja o que você pode fazer.

  • Primeiro, desimponha as planilhas em sua pasta de trabalho clicando com o botão esquerdo do mouse no pequeno ícone de janelas interligadas (quadrados) sob o ícone vermelho fechar no canto superior direito da janela do Excel.
  • Crie uma segunda janela para sua pasta de trabalho clicando com o botão direito do mouse na borda superior da sua planilha (acima dos identificadores de linha A, B etc.). -
  • Escolha Visualizar / Organizar Tudo com o botão de opção "Vertical" selecionado e "Janelas da pasta de trabalho ativa" marcadas.
  • Ajuste os limites verticais das duas janelas de modo que a esquerda apenas mostre as colunas "resumo" que você está interessado em ver, e a direita preencha o restante do espaço.
  • Na janela da direita, insira uma nova coluna à direita das colunas que estão sendo exibidas na janela esquerda e, em seguida, role a folha do lado direito para que essa coluna seja a mais à esquerda, exibida na janela da direita. (A nova coluna não ficará visível na janela da esquerda.)
  • Reduza a largura da coluna para criar uma margem estreita e, em seguida, congele-a no lugar (suponho que você também congele a linha superior).

No final, será algo parecido com isto:

Como a rolagem das duas janelas não está sincronizada, você verá os números de resumo que está interessado na janela à esquerda e poderá percorrer o restante da planilha na janela da direita sem problemas.

    
por 20.02.2013 / 05:23
2

Com base na resposta de chuff, eu escrevi a macro a seguir. Ele faz o que chuff descreve - e, além disso, nomeia as duas janelas "Dashboard" e "Data" e oculta todos os elementos (barras de rolagem, guias de planilha, cabeçalho de linha / coluna) do painel.

Para que ele seja executado, faça o seguinte:

  • Copie o código abaixo
  • No Excel, vá para o Editor do Visual Basic ( Alt - F11 )
  • Insira um novo módulo clicando com o botão direito do mouse no projeto na árvore esquerda e selecionando Insert -> Módulo (caso você queira aplicar essa técnica a outro pastas de trabalho também, coloque-as em sua pasta de trabalho de macros pessoal)
  • Cole o código no novo módulo
  • Se desejar, altere o número de colunas ou os títulos das duas janelas alterando as primeiras linhas do código que começam com Const
  • Execute o código - seja clicando no primeiro procedimento e pressionando F5 - ou voltando ao Excel ( Alt - F11 ) e pressionando Alt - F8 . Selecione a macro aqui e clique em Executar . (Observe que você também pode atribuir um atalho a ele nesta caixa de diálogo).

Aqui está a macro:

Sub SplitWindows()
    Const cIntPaneColumns As Integer = 2
    Const cStrPaneName As String = "Dashboard"
    Const cStrMainName As String = "Data"

    Dim i As Integer
    Dim wndMain As Window, wndPane As Window
    Dim dblOldWidth As Double, dblPaneWidth As Double

    Set wndMain = ActiveWindow

    If ThisWorkbook.Windows.Count > 1 Then
        If MsgBox("Multiple windows for current workbook are already displayed. Do you want to close/rearrange them?", vbYesNo) = vbYes Then
            For i = 2 To ThisWorkbook.Windows.Count
                ThisWorkbook.Windows(1).Close
            Next
        Else
            Exit Sub
        End If
    End If

    Set wndMain = ActiveWindow
    wndMain.WindowState = xlNormal
    Set wndPane = wndMain.NewWindow

    ActiveWorkbook.Windows.Arrange ArrangeStyle:=xlVertical

    dblOldWidth = wndPane.Width
    dblPaneWidth = Range("A1").Resize(, cIntPaneColumns).Width

    ConfigureWindow wnd:=wndPane, blnShowElements:=False, _
        strCaption:=cStrPaneName, dblWidth:=dblPaneWidth, _
        dblLeft:=1

    ConfigureWindow wnd:=wndMain, blnShowElements:=True, _
        strCaption:=cStrMainName, _
        dblWidth:=wndMain.Width + (dblOldWidth - dblPaneWidth), _
        dblLeft:=dblPaneWidth

    With wndMain
        .ScrollColumn = cIntPaneColumns + 1
        .Activate
        .ActiveSheet.Range("A1").Offset(, cIntPaneColumns + 1).Select
        If .FreezePanes Then .FreezePanes = False
        .FreezePanes = True
    End With

End Sub

Private Sub ConfigureWindow(wnd As Window, _
    blnShowElements As Boolean, _
    strCaption As String, _
    dblWidth As Double, _
    dblLeft As Double)

    With wnd
        .Width = dblWidth
        .Left = dblLeft
        .DisplayHeadings = blnShowElements
        .DisplayHorizontalScrollBar = blnShowElements
        .DisplayVerticalScrollBar = blnShowElements
        .DisplayWorkbookTabs = blnShowElements
        .Caption = strCaption
    End With
End Sub
    
por 20.02.2013 / 20:33
1

Isso é possível:

Basta selecionar a célula B2 e clicar em Congelar painéis :

Isso manterá tudo à esquerda e no topo da célula visível, ou seja, linha 1 e coluna A !

Se você quer apenas a coluna da esquerda, simplesmente selecione a célula A2 - ou clique em Congelar Primeira Coluna .

    
por 19.02.2013 / 23:27