¿Cómo aviso con un cuadro de mensaje en VBA, cuando las filas de Excel cambian a letras diferentes?
Por ejemplo, si tengo AAB en la fila 1 y BBA en la fila 2, necesito un cuadro de aviso después de la fila 1.
Respuesta1
Pruebe esta pequeña macro, está configurada para la columnaC
Sub DataCheck()
Dim MyCol As String, rCheck As Range, r As Range
MyCol = "C"
Set rCheck = Intersect(ActiveSheet.UsedRange, Range(MyCol & ":" & MyCol))
For Each r In rCheck
If r.Row = 1 Then
Else
If r.Text <> r.Offset(-1, 0).Text Then
r.Select
MsgBox "Data changed in row #" & r.Row
End If
End If
Next r
End Sub
Por ejemplo:
EDITAR #1:
Esta versión del código detectará cambios en la columnaCe inserte una fila "espaciadora" entre ellos:
Sub DataCheck2()
Dim MyCol As String, rCheck As Range, r As Range
Dim rInsert As Range
MyCol = "C"
Set rCheck = Intersect(ActiveSheet.UsedRange, Range(MyCol & ":" & MyCol))
Set rInsert = Nothing
For Each r In rCheck
If r.Row = 1 Then
Else
If r.Text <> r.Offset(-1, 0).Text Then
If rInsert Is Nothing Then
Set rInsert = r
Else
Set rInsert = Union(rInsert, r)
End If
End If
End If
Next r
If rInsert Is Nothing Then
Else
rInsert.EntireRow.Insert
End If
End Sub
Antes:
y después: