EXTRAER DATOS DE UNA SELECCIÓN SEGÚN UN CRITERIO

Hola a todos!.

Hoy voy a escribir un post como respuesta a una consulta que me enviaron hace unos días. Aunque utilizando los diferentes post de esta web se podría confeccionar el código, el lector me comentaba que se veía incapaz de realizar esta tarea, de modo que le comenté que escribiría un post explicando cómo hacer su petición.

La consulta planteada trata sobre la posibilidad de una vez seleccionada un área o rango de celdas, poder extraer esta información según un criterio determinado y pasar dichos datos a una columna determinada. En su ejemplo, me pedía que trabajase con números y un criterio numérico.

Vamos con un ejemplo. Imaginad que tenemos dos columnas con números, y queremos pasar a la tercera columna todos aquellos que sean inferiores a 30:

EXTRAER DATOS DE UNA SELECCION SEGUN UN CRITERIO

Pues bien, para poder realizar esta tarea, nos bastará con pegar este código en un módulo estándar de nuestros editor de VBA:

Sub EXTRAER_DATOS()
'Declaramos variables
Dim celda As Object
Dim j As Long, nCol As Long, n as Long
Dim miCelda As String, matriz As Variant
'Recorremos celdas y seleccionamos dato segun condicion
For Each celda In Selection
If celda < 30 Then miCelda = miCelda & " " & celda
Next celda
'Pasamos los datos a un matriz
matriz = Split(miCelda, " ")
'Contamos elementos
n = UBound(matriz) + 1
'Si no hay datos, mostramos mensajes y salimos del proceso
If n = 0 Then
MsgBox ("NO EXISTEN DATOS SEGÚN LOS CRITERIOS QUE HAS SELECCIONADO")
Exit Sub
End If
'Pasamos los datos a la columna 3
matriz = Split(miCelda, " ")
For j = 0 To UBound(matriz)
ActiveSheet.Cells(j + 1, 3) = matriz(j)
Next j
End Sub

Como podéis ver en el código, simplemente utilizando un loop for-each capturamos los datos seleccionados, luego solo tenemos que indicar aquellos que nos interesan (menor de 30) y pasarlos a un string para finalmente colocarlos en la columna 3.

Este es el resultado:

EXTRAER DATOS DE UNA SELECCION SEGUN UN CRITERIO_1

Y el resultado es el esperado. En la tercera columna tenemos la información que habíamos indicado en la macro.

Y con esto doy la pregunta por contestada : )

Descarga el archivo de ejemplo pulsando en: EXTRAER DATOS DE UNA SELECCIÓN SEGÚN UN CRITERIO

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Anuncios