none
Comentar célula RRS feed

  • Pergunta

  • Boa tarde!!

    Gostaria de adicionar um comentário a um conjunto de células. Eu já fiz o código que deve ser feito, porém é necessário uma condição para que isto ocorra. Primeiro o código, que eu já fiz.

    Sub AddComentario()
    Dim txt As String   
    txt = Sheets("plan1").Range("B10").Value
    
    'só avança caso haja conteudo para o comentário
    If Len(txt) = 0 Then Exit Sub
    
    
    With Sheets("plan2").Range("E66")
    
    On Error Resume Next
    'eliminar comentário caso exista
    .Comment.DELETE
    'Adicionar novo
    .AddComment
    'Estado do comentário
    .Comment.Visible = False
    'Inserir texto
    .Comment.Text Text:=txt
    End With
    End Sub

    No caso acima estou fazendo só para a célula E66 da plan2!!! Mas na verdade preciso fazer isto desde a célula E66 até a a célula AB120 OU SEJA, Sheets("plan2").Range("E66:AB120").

    E o comentário ( que esta na célula B10 da plan1), só deve ser inserido nesse Range, caso o valor de cada célula deste Range seja 1.

    Por exemplo.... Se neste Range E66:AB120, as céulas E80:AB90 tiverem valor 1 e as demais 0, somente as células E80:AB90, devem receber o comentário.

    Estava pensando em fazer com if comparando se é 1 escreve, mas daria muito trabalho... Deve ter um modo mais fácil, que eu não sei fazer. Me ajudem! Agradeço desde já!! Abraço!!

    terça-feira, 11 de fevereiro de 2014 18:51

Todas as Respostas

  • Sub fAddComment()
      Dim rng As Excel.Range
      
      For Each rng In ThisWorkbook.Worksheets("Plan1").Range("E66:AB120").Cells
        If rng.Value = 1 Then
          rng.Comment.Delete
          rng.AddComment "Valor igual a 1!"
        End If
      Next rng
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    terça-feira, 11 de fevereiro de 2014 20:56
    Moderador
  • Sub fAddComment()
      Dim rng As Excel.Range
      Dim txt As String
     
      
      
      For Each rng In ThisWorkbook.Worksheets("plan1").Range("E5:DF5").Cells
        If rng.Value = 1 Then
        Select Case ActiveSheet.Range("B10").Value
          Case 1: txt = "a"
          Case 2: txt = "b"
          Case 3: txt = "c"
          Case 4: txt = "d"
        End Select
          
          rng.AddComment (txt)
        End If
      Next rng
    End Sub
    Tentei fazer isso para inserir no comentario a,b,c ou d dependendo do valor de B10, mas não funcionou.. alguma ajuda Felipe? Obrigado!
    terça-feira, 11 de fevereiro de 2014 22:13
  • Deu certo Felipe!!! Preciso alterar mais algumas coisas aqui para ver se fica do jeito que eu preciso! Mas por enquanto está correndo bem!! Obrigado pela ajuda!! Só uma coisa queria aumentar o tamanho da tela do comentário. Usei o botão que grava macro e aumentei manualmente para ver como era.. apareceu este código mas não funcionou. Alguma sugestão?

    Range("V5").Select
        Range("V5").Comment.Text Text:="c"
        Selection.ShapeRange.ScaleWidth 1.88, msoFalse, msoScaleFromTopLeft
        Selection.ShapeRange.ScaleHeight 0.5, msoFalse, msoScaleFromTopLeft
        Selection.ShapeRange.ScaleHeight 1.82, msoFalse, msoScaleFromBottomRight
        Selection.ShapeRange.Flip msoFlipVertical
        Range("V6").Select

    Claro que só vale para a celula V5, mas nem ela aumentou de tamanho..


    • Editado Mmbr terça-feira, 11 de fevereiro de 2014 23:12 erro digitção
    terça-feira, 11 de fevereiro de 2014 23:10