Crie um loop na planilha (que contém dados de países) para identificar as linhas em que a primeira letra do nome do país muda (Ex: A para B). Nesta divisória, acrescente células vazias, preenchendo-as de verde e contornando sua borda de branco. Como demostrado na planilha do exercício.
Exercício Resolvido
Resolvendo o problema
-
Comece declarando as variáveis e encontrando o último dado da planilha. Como será inserida uma linha para cada letra, somamos a variável última linha ao total letras do alfabeto (26).
Dim UltLinhas As Long
Dim i As Integer
UltLinha = Cells(Rows.Count, 1).End(xlUp).Row
UltLinha = UltLinha + 26
-
Crie o loop For Next com uma condicional If para o diferenciar a primeira letra do nome entre as linhas. Depois basta inserir uma linha na divisória e preenche-la da cor desejada.
For i = 18 To UltLinha
If Left(Cells(i, 1), 1) <> Left(Cells(i + 1, 1), 1) Then
Range(Cells(i + 1, 1), Cells(i + 1, 3)).Insert shift:=xlDown
With Range(Cells(i + 1, 1), Cells(i + 1, 3))
.Interior.Color = RGB(140, 198, 63)
.Borders.LineStyle = xlContinuous
.Borders.Color = RGB(255, 255, 255)
.Borders.Weight = xlMedium
End With
i = i + 1
End If
Next i
Código Consolidado
Sub Resolucao()
Dim UltLinhas As Long
Dim i As Integer
UltLinha = Cells(Rows.Count, 1).End(xlUp).Row
UltLinha = UltLinha + 27 'Mais o número de letras do alfabeto
For i = 18 To UltLinha
'Para prevenir que o código execute mais de uma vez
If Cells(i + 1, 2).Interior.Color = RGB(140, 198, 63) Then
Exit Sub
End If
If Left(Cells(i, 1), 1) <> Left(Cells(i + 1, 1), 1) Then
Range(Cells(i + 1, 1), Cells(i + 1, 3)).Insert shift:=xlDown
With Range(Cells(i + 1, 1), Cells(i + 1, 3))
.Interior.Color = RGB(140, 198, 63)
.Borders.LineStyle = xlContinuous
.Borders.Color = RGB(255, 255, 255)
.Borders.Weight = xlMedium
End With
i = i + 1
End If
Next i
End Sub
SuperExcelVBA.com é um site voltado ao aprendizado de VBA. Exemplos e explicações podem ter sido simplificados para maior e mais veloz compreensão. Estamos constantemente nos atualizando e corrigindo erros, porém não existe garantia sobre o conteúdo disponível no site. Todos os direitos reservados.
Excel ® é uma marca registrada da Microsoft Corporation.
© 2024 SuperExcelVBA | SOBRE