Añadir una cosa a este código VBA

Hola.

Elsa Matilde me creó este código, que funciona de perlas, para contar repeticiones. Sin embargo me gustaría saber si podría implementarse alguna orden para que fuera borrando las celdas que va leyendo al hacer el recuento. De tal manera que al final de su ejecución, el rango A1:N40 quedara vacío y solo se mostraran los resultados.

Gracias de antemano.

Sub ContarRepeticiones()
'x Elsamatilde
'cuenta las repeticiones de valores en rango A1:N40 - AJUSTAR REF
'la tabla resultado la coloca en col S:R - limpio de valores anteriores AJUSTAR REF
Application.ScreenUpdating = False
Range("S:R") = ""
Range("A1").Select
filx = 1 'fila en col S
'recorre las 40 filas 'AJUSTAR CANT
For i = 1 To 40
'recorre las 14 col
For j = 1 To 14 'AJUSTAR CANT
Cells(i, j).Select
'solo cuento si no está vacía
If ActiveCell <> "" Then
'si es el 1er valor no lo busco, lo copio directamente
If filx = 1 Then
Cells(filx, 19) = ActiveCell.Value
Cells(filx, 20) = 1
filx = filx + 1
Else
'busco el nbre en col S
Set busco = Range("S:S").Find(ActiveCell, LookIn:=xlValues, lookat:=xlWhole)
'si el nbre ya esta incremento el contador

If Not busco Is Nothing Then
busco.Offset(0, 1) = busco.Offset(0, 1) + 1
'sino agrego registro
Else
Cells(filx, 19) = ActiveCell.Value
Cells(filx, 20) = 1
filx = filx + 1
End If
End If
End If
Next j
Next i
MsgBox "Fin del proceso."
End Sub

1 respuesta

Respuesta
1

Si necesitas que el rango A1:N40 quede vacío de datos (para un nuevo ingreso x ej), coloca esta instrucción antes del MsgBox:

Range("A1:N40")=""

' aquí sigue el Msgbox

'aquí sigue el End Sub

PD) Más ejemplos de cómo seleccionar y limpiar rangos en la sección Macros de mi sitio

Comentame si esto es lo buscado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas