Página 1 de 1

MACRO PARA ATRIBUIR UM X SE A CELULA ESTIVER FORMATADA

Enviado: 26 Nov 2019 às 12:01
por Angra
Boa tarde
Como fazer uma macro, que identifique celulas formatadas dentro de um intervalo especificado e atribua um 'x' em outra celula correspondente :D :D

MACRO PARA ATRIBUIR UM X SE A CELULA ESTIVER FORMATADA

Enviado: 26 Nov 2019 às 17:17
por WillianVictor
@Angra,
Qual o tipo de formatação?

Você poderia incluir um loop For entre cada coluna (para percorre-las) que você quer reconhecer as formatações e aplicar os valores "X" respectivamente com a sua necessidade.

Por exemplo, teste de Font.Color = 255, ou seja, cor da fonte igual à vermelho:
Código: Selecionar todos
    If Cells(1, 1).Font.Color = 255 Then
        Cells(1, 1) = "x"
    End If
Loop Foor para percorrer valores da coluna:
Código: Selecionar todos
Dim ucol As Integer

ucol = Cells(Rows.Count, 1).End(xlUp).Row
' 1 é o número da coluna, especifique de acordo, exemplo, coluna E é a número 5.

For c = 1 to ucol
' 1, neste caso, é o número do qual inicia-se os dados.
' ... insira o código com validação
Next
Somente uma ideia! :mrgreen:

Qualquer coisa, avisaê.
Abs.

Re: MACRO PARA ATRIBUIR UM X SE A CELULA ESTIVER FORMATADA

Enviado: 26 Nov 2019 às 18:42
por Angra
:D :D ''No exemplo apresentado, temos o intervalo AN5:AO50 e AR5:AS50, que tem celulas sem valor nominal mas no futuro estarao formatadas. A funçao da macro eh mapear essas celulas formatadas e atribuir um ''x'' na celula correspondente, no intervalo E5:F50 e CA5:CB50, respectivavente.''

Como dito acima as celulas nao tem valor especifico(Font.Color) entao a formataçao eh soh na
celula(preenchimento)

'' ... insira o código com validação''
Nao tenho nenhum codigo para inserir. Por isso estou pedindo ajuda :D :D

Re: MACRO PARA ATRIBUIR UM X SE A CELULA ESTIVER FORMATADA

Enviado: 26 Nov 2019 às 20:23
por osvaldomp
Código: Selecionar todos
Sub InsereX()
 Dim c As Range
  Range("E5:E50,F29:F50,CA29:CA50,CB5:CB50").Value = ""
  For Each c In Range("AN5:AN50,AO29:AO50,AR29:AR50,AS5:AS50")
   If c.Interior.ColorIndex = 48 Then
    c.Offset(, 35 * IIf(c.Column < 44, -1, 1)).Value = "x"
   End If
  Next c
End Sub

Re: MACRO PARA ATRIBUIR UM X SE A CELULA ESTIVER FORMATADA

Enviado: 27 Nov 2019 às 11:34
por Angra
WillianVictor, grato pela contribuiçao mas a macro do osvaldomp, ficou very good. :D :D