none
Mudar cor célula aleatório RRS feed

  • Pergunta

  • Bom Dia Amigos do Fórum

    Gostaria da ajuda de todos em uma macro para mudar a cor de uma sequencia de células aleatoriamente, ou seja, tenho quatro células com valores específicos e gostaria que mudasse de cor acionado por uma macro através de um botão, mudando a cor da célula aleatoriamente de forma automática.

    de já,

    agradeço a todos.

    Mauro

    sexta-feira, 12 de abril de 2013 16:26

Respostas

  • Sub fMain()
        Dim rng As Range
        
        'Mude o intervalo das células em que deseja
        'aplicar o efeito abaixo:
        For Each rng In Range("A1,C3,D4,D5")
            rng.Interior.Color = RGB( _
              WorksheetFunction.RandBetween(0, 255), _
              WorksheetFunction.RandBetween(0, 255), _
              WorksheetFunction.RandBetween(0, 255))
        Next rng
    End Sub


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

    • Marcado como Resposta MauroMeira terça-feira, 16 de abril de 2013 15:02
    • Não Marcado como Resposta MauroMeira terça-feira, 16 de abril de 2013 15:09
    • Marcado como Resposta MauroMeira segunda-feira, 22 de abril de 2013 16:00
    sábado, 13 de abril de 2013 21:15
    Moderador
  • Bom Dia
    Caro Amigo Felipe

    Obrigado pela sua ajuda

    É basicamente isso, na verdade, é possível especificar as quatro cores, tipo
    apenas quatro cores para poder distinguir melhor os resultados.

    Abraço

    Mauro

    • Marcado como Resposta MauroMeira segunda-feira, 22 de abril de 2013 16:00
    terça-feira, 16 de abril de 2013 15:01
  • Sub fMain()
        Dim rng As Range
        Dim col As Collection
        Dim lng As Long
        
        Set col = New Collection
        col.Add RGB(50, 50, 250)
        col.Add RGB(150, 50, 50)
        col.Add RGB(250, 150, 50)
        col.Add RGB(50, 250, 50)
        
        For Each rng In Range("A1,C3,D4,D5")
            lng = WorksheetFunction.RandBetween(1, col.Count)
            rng.Interior.Color = col(lng)
            col.Remove lng
        Next rng
    End Sub


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

    • Marcado como Resposta MauroMeira segunda-feira, 22 de abril de 2013 16:00
    terça-feira, 16 de abril de 2013 23:01
    Moderador
  • Sub fMain()
        Dim rng As Range
        Dim col As Collection
        Dim lng As Long
        
        Set col = New Collection
        col.Add RGB(50, 50, 250)
        col.Add RGB(150, 50, 50)
        col.Add RGB(250, 150, 50)
        col.Add RGB(50, 250, 50)
        
        For Each rng In Range("A1,C3,D4,D5")
            lng = WorksheetFunction.RandBetween(1, col.Count)
            rng.Interior.Color = col(lng)
            col.Remove lng
        Next rng
    End Sub


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

    Bom Dia Caro Amigo Felipe

    Obrigado pela ajuda, é isso mesmo que precisava.

    Abraço

    Mauro

    • Marcado como Resposta MauroMeira segunda-feira, 22 de abril de 2013 16:01
    segunda-feira, 22 de abril de 2013 16:01
  • Pelo que entendi, basta fazer um pequeno complemento ao código:

    Sub fMain()
        Dim rng As Range
        Dim col As Collection
        Dim lng As Long
        
        Set col = New Collection
        col.Add RGB(50, 50, 250) 'Azul
        col.Add RGB(150, 50, 50)
        col.Add RGB(250, 150, 50)
        col.Add RGB(50, 250, 50)
        
        For Each rng In Range("A1,C3,D4,D5")
            lng = WorksheetFunction.RandBetween(1, col.Count)
            rng.Interior.Color = col(lng)
            col.Remove lng
        Next rng
    
        'Parte nova do código
        If Range("A1").Interior.Color = RGB(50, 50, 250) Then
            Range("B1") = "02"
        End If
    End Sub


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

    • Marcado como Resposta MauroMeira sábado, 25 de maio de 2013 02:20
    quarta-feira, 22 de maio de 2013 22:35
    Moderador

Todas as Respostas

  • Sub fMain()
        Dim rng As Range
        
        'Mude o intervalo das células em que deseja
        'aplicar o efeito abaixo:
        For Each rng In Range("A1,C3,D4,D5")
            rng.Interior.Color = RGB( _
              WorksheetFunction.RandBetween(0, 255), _
              WorksheetFunction.RandBetween(0, 255), _
              WorksheetFunction.RandBetween(0, 255))
        Next rng
    End Sub


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

    • Marcado como Resposta MauroMeira terça-feira, 16 de abril de 2013 15:02
    • Não Marcado como Resposta MauroMeira terça-feira, 16 de abril de 2013 15:09
    • Marcado como Resposta MauroMeira segunda-feira, 22 de abril de 2013 16:00
    sábado, 13 de abril de 2013 21:15
    Moderador
  • Bom Dia
    Caro Amigo Felipe

    Obrigado pela sua ajuda

    É basicamente isso, na verdade, é possível especificar as quatro cores, tipo
    apenas quatro cores para poder distinguir melhor os resultados.

    Abraço

    Mauro

    • Marcado como Resposta MauroMeira segunda-feira, 22 de abril de 2013 16:00
    terça-feira, 16 de abril de 2013 15:01
  • Sub fMain()
        Dim rng As Range
        Dim col As Collection
        Dim lng As Long
        
        Set col = New Collection
        col.Add RGB(50, 50, 250)
        col.Add RGB(150, 50, 50)
        col.Add RGB(250, 150, 50)
        col.Add RGB(50, 250, 50)
        
        For Each rng In Range("A1,C3,D4,D5")
            lng = WorksheetFunction.RandBetween(1, col.Count)
            rng.Interior.Color = col(lng)
            col.Remove lng
        Next rng
    End Sub


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

    • Marcado como Resposta MauroMeira segunda-feira, 22 de abril de 2013 16:00
    terça-feira, 16 de abril de 2013 23:01
    Moderador
  • Sub fMain()
        Dim rng As Range
        Dim col As Collection
        Dim lng As Long
        
        Set col = New Collection
        col.Add RGB(50, 50, 250)
        col.Add RGB(150, 50, 50)
        col.Add RGB(250, 150, 50)
        col.Add RGB(50, 250, 50)
        
        For Each rng In Range("A1,C3,D4,D5")
            lng = WorksheetFunction.RandBetween(1, col.Count)
            rng.Interior.Color = col(lng)
            col.Remove lng
        Next rng
    End Sub


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

    Bom Dia Caro Amigo Felipe

    Obrigado pela ajuda, é isso mesmo que precisava.

    Abraço

    Mauro

    • Marcado como Resposta MauroMeira segunda-feira, 22 de abril de 2013 16:01
    segunda-feira, 22 de abril de 2013 16:01
  • Ainda Sobre este tópico, apareceu a necessidade de outra ajuda de todos, desculpe, esta continuação se deu por tentar por várias vezes e não conseguir em busca pelo google, então venho encarecidamente pedir a ajuda de todos mais uma vez. Como podem ver acima um código cedido gentilmente pelo nosso colega Felipe Costa, Obrigado mais uma vez Felipe, ele altera aleatoriamente as cores das células, eu preciso quando uma determinada célula mudar de cor de minha escolha, nesta célula terá o valor "02", então este valor apareça em outra célula.

    Exemplo: célula A1, número na célula "02", aparece a cor azul, então o número "02" vai para célula B1


    Obrigado a todos

    Abraço.

    MauroMeira

    quarta-feira, 22 de maio de 2013 15:05
  • Pelo que entendi, basta fazer um pequeno complemento ao código:

    Sub fMain()
        Dim rng As Range
        Dim col As Collection
        Dim lng As Long
        
        Set col = New Collection
        col.Add RGB(50, 50, 250) 'Azul
        col.Add RGB(150, 50, 50)
        col.Add RGB(250, 150, 50)
        col.Add RGB(50, 250, 50)
        
        For Each rng In Range("A1,C3,D4,D5")
            lng = WorksheetFunction.RandBetween(1, col.Count)
            rng.Interior.Color = col(lng)
            col.Remove lng
        Next rng
    
        'Parte nova do código
        If Range("A1").Interior.Color = RGB(50, 50, 250) Then
            Range("B1") = "02"
        End If
    End Sub


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

    • Marcado como Resposta MauroMeira sábado, 25 de maio de 2013 02:20
    quarta-feira, 22 de maio de 2013 22:35
    Moderador
  • Caro Amigo FELIPE, Obrigado mais uma vez pela sua ajuda

    é isso mesmo, Obrigado

    Abraço

    Mauro

    sábado, 25 de maio de 2013 02:21
  • Olá  Felipe.

    Gostaria de saber se é possível colorir o fundo de algumas celulas especificas.

    Exemplo, tenho um relatório e nele tenho algumas celulas com conteúdo e que devem ser selecionadas, dependendo do caso. A1 conteúdo "Auditoria Interna" B1 conteúdo "Reclamação de Clientes" e assim por diante.

    A ideia é que ao selecionar tal célula ela fique na cor amarela, enquanto que o restante do relatório não sofra esta alteração.

    Encontrei na net vários códigos que pintam os fundos das células, porém fazem isso independentemente de onde é clicado.

    Obrigado,

    quarta-feira, 9 de março de 2016 01:15