Os fóruns de discussão são bacanas por gerarem situações das mais diversas, o que por consequência acaba gerando soluções que são de igual teor e variedade.
Mais uma que surgiu da necessidade de um colega, a macro abaixo copia todos os comentários de uma planilha do Excel para uma outra informada:
Sub CopiarComentarios(ByVal PlanilhaOrigem As String, ByVal PlanilhaDestino As String) Dim wsOrigem As Worksheet, wsDestino As Worksheet Dim c As Comment Dim r As Range Set wsOrigem = ThisWorkbook.Worksheets(PlanilhaOrigem) Set wsDestino = ThisWorkbook.Worksheets(PlanilhaDestino) For Each c In wsOrigem.Comments Debug.Print c.Parent.Address Set r = wsDestino.Range(c.Parent.Address) r.AddComment r.Comment.Visible = c.Visible r.Comment.Text Text:=c.Text Next End Sub |
Sem muito segredo, o código percorre a coleção de comentários (Comments) existente na planilha origem informada. Para cada comentário encontrado, é criado um na planilha destino com os mesmos dados e referências de célula.
Para fazer uma chamada a esta macro, segue um exemplo:
Sub Teste() Call CopiarComentarios("Plan1", "Plan2") End Sub |
Que solicita obviamente que os comentários da planilha de nome Plan1 sejam copiados para a planilha de nome Plan2. Para testar, é só copiar o código para um módulo VBA, inserir alguns comentários na Plan1 e executar a macro Teste.
Bom proveito!