Notifications
Clear all

colorir linha

5 Posts
2 Usuários
0 Reactions
625 Visualizações
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Tenho o seguinte codigo e como fazer para nao colorir as linhas coluna A ?

Tenho dados nas Colunas B, C, D, E, F, G

A coluna A nao sera colorida

Grato

Dim Linha_Anterior As Range
Dim cor_anterior As Integer
Dim cor_fim As Integer

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    On Error Resume Next

    'Define quantas colunas vão ser selecionadas

    Dim x As Integer
    Dim colunas As Integer
    colunas = 6

    'Teste para saber se a linha selecionada está dentro do limite dos dados que devem ser selecionados
    If ActiveCell.Column > colunas Then

                        For x = 1 To colunas
                                Plan7.Cells(Linha_Anterior.Row, x).Interior.ColorIndex = cor_fim
                        Next x

                 Exit Sub
    Else

        'Captura a cor atual da célula... se a célula selecionada estiver na mesma linha
        'a cor anterior será mantida, pois não queremos mudar a cor que já  existia na célula

            If Linha_Anterior.Row = ActiveCell.Row Then
                cor_anterior = cor_anterior
            Else
                cor_anterior = ActiveCell.Interior.ColorIndex
            End If

        'Altera a cor de fundo da linha selecionada até o limite de colunas
        'determinado pela variável colunas

          For x = 1 To colunas
          Plan7.Cells(ActiveCell.Row, x).Interior.ColorIndex = 26
          Next x

              'Remove a cor de fundo quando a linha perde a seleção
              If Not Linha_Anterior Is Nothing Then

                    'Verifica se a linha atual já estava selecionada
                    'caso seja uma nova linha selecionada retorna a cor anterior

                    If ActiveCell.Row <> Linha_Anterior.Row Then

                        For x = 1 To colunas
                                Plan7.Cells(Linha_Anterior.Row, x).Interior.ColorIndex = cor_fim
                        Next x

                    End If

                End If

                'define as variáveis que serão usadas na próxima seleção
                'como sendo a seleção anterior
                Set Linha_Anterior = ActiveCell
                cor_fim = cor_anterior


    End If


End Sub
 
Postado : 17/08/2016 1:12 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

É só alterar :

For x = 1 To colunas

para For x = 2 To colunas

em todas as instruções.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 17/08/2016 1:28 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

outra duvida

Usando o codigo acima

Tenho outro problema. Este codigo ficara numa planilha de nome Plan 8(Base) , Esta serve como base a todas as planilhas que serao formadas ( copia ), quando e formada, existe um comando na macro para salvar com nome da Loja. Ate ai tudo bem, so que o codigo nao obdece ao nome em si da Palnilha que criou-se, que podera ser Plan14(Loja Pedro), ou Plan19(loja Pedro) e assim vai, e sim a Plan....desta planilha. Como resolver ?

 
Postado : 17/08/2016 2:00 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

desistir, nao farei esse ultimo, grato

 
Postado : 17/08/2016 2:19 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

outra duvida

Usando o codigo acima

Tenho outro problema. Este codigo ficara numa planilha de nome Plan 8(Base) , Esta serve como base a todas as planilhas que serao formadas ( copia ), quando e formada, existe um comando na macro para salvar com nome da Loja. Ate ai tudo bem, so que o codigo nao obdece ao nome em si da Palnilha que criou-se, que podera ser Plan14(Loja Pedro), ou Plan19(loja Pedro) e assim vai, e sim a Plan....desta planilha. Como resolver ?

Não sei se entendi corretamente, mas se quer fazer a cópia da aba que contem a rotina e evitar problema com o nome, é só apagar em todas as instruções a referencia com nome :
Plan7.Cells(Linha_Anterior.Row, x).Interior.ColorIndex = cor_fim

Se quer que a rotina funcione em todas as abas sem precisar copiar para cada uma, é só alterar o Evento de:
Worksheet_SelectionChange, para
Workbook_SheetSelectionChange, neste evento tem de colocar em "EstaPasta_de_trabalho" e apagar os que estão nos eventos das abas.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 17/08/2016 6:49 pm