Notifications
Clear all

Macro com problema

3 Posts
3 Usuários
0 Reactions
604 Visualizações
 iero
(@iero)
Posts: 1
New Member
Topic starter
 

amigos gostaria de resolver um problema pois estou engatinhando em relação a programação de VBA, criei uma macro para mudar a cor da fonte de uma célula em relação ao valor de uma outra.

Sub COR_DE_FONTES_()
If Sheets(1).Cells(7, 5) >= Sheets(1).Cells(6, 5) Then
Sheets(1).Cells(7, 5).Font.ColorIndex = 5
Else
Sheets(1).Cells(7, 5).Font.ColorIndex = 3
End If

Até ai tudo bem mas quando eu deleto ou adiciono uma nova linha a macro simplesmente fica alterada, tem alguma solução para esse problema?

 
Postado : 15/12/2017 6:45 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

iero,

Bom dia!

Seja muito bem vindo ao fórum.

Para aproveitar ao máximo o fórum e sempre manter o mesmo de forma organizada, sugiro ler os tópico da regras abaixo:
viewtopic.php?f=7&t=16757
viewtopic.php?f=7&t=203
viewtopic.php?f=7&t=7903
viewtopic.php?f=7&t=3841
viewtopic.php?f=7&t=12600
viewtopic.php?f=7&t=3371

Solicitamos, por gentileza, manter o fórum de forma organizada. Das próximas vez que postar código VBA aqui no fórum, utilizar a ferramenta CODE que fica localizada logo no início da caixa de mensagens. Poste o código entre as palavras-chave CODE e /CODE.

Quanto a sua dúvida, eu não entendi exatamente qual é o problema ou qual a sua necessidade...

Anexe um arquivo compactado com .ZIP.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 15/12/2017 6:56 am
(@klarc28)
Posts: 971
Prominent Member
 

https://youtu.be/_E2oajqHD5g

Option Explicit
'COMO A VARIÁVEL LINHA
'VALERÁ PARA TODOS OS PROCEDIMENTOS
'VOU COLOCÁ-LA AQUI FORA
Dim LINHA As Long
Sub COLORIR()
    
    'VOU FAZER UMA BUSCA PARA ENCONTRAR A PALAVRA "ENTRADA"
    'AÍ SABEREI EM LINHA ESTÃO OS VALORES
    
    
    
    LINHA = 1
    
    Dim ACHOU As Boolean
    
    ACHOU = False
    
    While ACHOU = False
        
        If ThisWorkbook.Sheets("Planilha1").Range("A" & LINHA).Value = "ENTRADA" Then
            
            ACHOU = True
            
        End If
        
        LINHA = LINHA + 1
        
    Wend
    
    
    
    Dim ENTRADA, SAIDA As Double
    
    SAIDA = ThisWorkbook.Sheets("Planilha1").Range("B" & LINHA)
    ENTRADA = ThisWorkbook.Sheets("Planilha1").Range("A" & LINHA)
    
    If SAIDA > ENTRADA Then
        
        Call Macro1
        
    Else
        
        Call Macro3
        
    End If
    
    
End Sub

Sub Macro1()
    '
    ' Macro1 Macro
    '
    
    '
    'PORQUE ESTOU ME REFERINDO À CÉLULA B7
    'DEPOIS DE EXCLUIR A LINHA,
    'DEVERIA SER A CÉLULA B6
    With Range("B" & LINHA).Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    With Range("B" & LINHA).Font
        .Color = -16776961
        .TintAndShade = 0
    End With
    
End Sub

Sub Macro3()
    '
    ' Macro3 Macro
    '
    
    '
    
    With Range("B" & LINHA).Interior
        .Pattern = xlNone
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    With Range("B" & LINHA).Font
        .ColorIndex = xlAutomatic
        .TintAndShade = 0
    End With
End Sub
 
Postado : 15/12/2017 7:48 am