Criando um relatório nome com código vba

Se você usar lotes de células nomeadas e faixas em sua pasta de trabalho, você pode se surpreender ao descobrir que o Excel fornece nenhuma maneira para listar os detalhes de cada nome. Informações úteis aparece na caixa de diálogo Nome do Manager, mas não há nenhuma maneira de exibir essas informações de uma maneira que pode ser impresso.

Video: Video Aula 12 - Salvar planilha excel em PDF com VBA

O código VBA oferecido aqui gera um relatório útil que descreve os nomes definidos em qualquer livro.

Exemplo Nome do relatório

Aqui, você vê um exemplo de um relatório de Nome.

Video: EXCEL- GERANDO RELATÓRIO EM PDF ATRAVÉS DE VBA

O relatório, que é criado em uma nova planilha, inclui as seguintes informações para cada nome:

Video: Curso Excel VBA - C. de Estoque - Relatório Automático - Aula 27.2

Nome: O nome.

  • Refere-se a: A definição para o nome. Normalmente, esta vai ser uma célula ou gama, mas um nome também pode definir fórmula.

  • células: O número de células contidas no intervalo nomeado. Para fórmulas nomeados, este campo exibe # N / A.



  • Escopo: O escopo do nome - ou livro, ou o nome da planilha específica em que o nome é válido.

  • Escondido: Verdadeiro se o nome está escondido. nomes ocultos são criados por alguns add-ins (como Solver), e não aparecem na caixa de diálogo Nome do Manager.

  • Erro: True se o nome contém uma referência errada.

  • Ligação: Um link que, quando clicado, ativa o intervalo nomeado. Somente nomes que se referem a células ou intervalos de incluir um link.

  • Comente: O comentário para o nome, se houver.

  • O código VBA

    Para usar esse código, pressione Alt + F11 para ativar o Editor do Visual Basic. Em seguida, escolha Inserir → Módulo para inserir um novo módulo VBA. Copie o código e cole-o para o novo módulo.

    Sub GenerateNameReport () `Gera um relatório para todos os nomes no livro` (não inclui nomes de tabela) Dim n Como NameDim Row Como LongDim CellCount Como Sair Variant` se nenhum namesIf ActiveWorkbook.Names.Count = 0 ThenMsgBox “O livro activo tem sem nomes definidos.”Exit SubEnd Se `Sair se pasta de trabalho é protectedIf ActiveWorkbook.ProtectStructure ThenMsgBox‘a nova folha não pode ser adicionado porque a pasta de trabalho está protegida.’Exit SubEnd Se` Inserir uma nova folha para a reportActiveWorkbook.Worksheets.AddActiveSheet.Move Depois : = Sheets (ActiveWorkbook.Sheets.Count) ActiveWindow.DisplayGridlines = False` Adicionar primeira linha de titleRange ( ‘A1: H1’) MergeWith Range ( ‘A1’) Valor =.. “Nome do relatório para:“ & ActiveWorkbook.Name.Font.Size = 14.Font.Bold = True.HorizontalAlignment = xlCenterEnd Com ‘Adicionar segunda linha de titleRange (‘A2: H2’) MergeWith Range (‘A2’) Value =“Gerado “.. & Now.HorizontalAlignment = xlCenterEnd Com` Adicionar o headersRange ( ‘A4: H4’) = Array ( ‘Nome’, ‘RefersTo’, ‘células’, _ ‘Scope’, ‘Hidden’, ‘Erro’, ‘Link’, “ comentário”)` loop através da Error Resume namesRow = 4On NextFor Cada n Em ActiveWorkbook.NamesRow = Row + 1`Column a: nameif n.Name Like‘* *’ThenCells (Row, 1) = Split (n.Name, ) (1) `Remover nameElseCells folha (linha, 1) = n.NameEnd If`Column B: RefersToCells (Row, 2) = “” “`” & n.RefersTo`Column C: Número de cellsCellCount = CVErr (xlErrNA) `valor de retorno para formulaCellCount = n.RefersToRange.CountLargeCells (linha, 3) = CellCount chamados` Coluna D: ScopeIf n.Name Like “! * *” ThenCells ( Row, 4) = Split (n.Name, “!”) (0) `nameCells folha extrato (Row, 4) = Replace (Cells (Row, 4) “`”, ““) `remover apostrophesElseCells (Row, 4) = “Pasta de trabalho” End If`Column E: statusCells oculto (Row, 5) = Não n.Visible`Column F: Erroroneous nameCells (Row, 6) = n.RefersTo Like “* [#] REF *!”` coluna G: Não HyperlinkIf Application.IsNA (células (linha, 3)) ThenActiveSheet.Hyperlinks.Add _Anchor: = células (linha, 7), _Address: = ““, _SubAddress: = n.Name, _TextToDisplay: = n.NameEnd If`Column H: CommentCells (Row, 8) = n.CommentNext n `Convertê-lo para um tableActiveSheet.ListObjects.Add _SourceType: = xlSrcRange, fonte_:. = Intervalo ( ‘A4’) CurrentRegion` Ajuste as widthsColumns coluna ( “a : H”) EntireColumn.AutoFitEnd Sub.

    Gerando um relatório

    execute o GenerateNameReport procedimento, e o relatório é gerado em uma nova planilha na pasta de trabalho ativa. O código não tem que estar no livro que contém os nomes para o relatório.

    Se você encontrar este código útil, você pode querer armazená-lo em sua pasta de trabalho macro pessoal, ou criar um add-in.


    Publicações relacionadas