Macro para eliminar filas no seleccionada

Buenas tardes a tod@s.
Necesito ayuda de una macro en excel. Os cuento...
Tengo una lista productos en la columna 1. En la columna 2 puedes marcar con POR si quieres ese producto y en la columna 3 está el precio.
Supongamos que marco con POR las filas 1 y 4
Luego quiero imprimir todos los productos (filas con X) seleccionados.
El problema es que en otra hoja voy mirando si hay valor en la casilla donde se marca la X. Si es así, lo escribe añadiendo una descripción, PERO me deja huecos sin escribir en las filas no selección
¿Producto 1 X 15?
¿Producto 2 20?
¿Producto 3 25?
¿Producto 4 X 30?
-----
Después hago esto en cada fila:
si(a1="X";concatenar(a1;"seleccionado al precio de ";c1);"")
¿Producto 1 seleccionado al precio de 10?
¿Producto 4 seleccionado al precio de 30?
-----
El problema es que me deja los huecos de las filas no seleccionadas.
La pregunta es ¿Hay alguna macro que pueda unir sin dejar huecos sólo las filas seleccionadas con X?.
Algo así:
¿Producto 1 seleccionado al precio de 10?
¿Producto 4 seleccionado al precio de 30?
Muchas gracias !
Pues necesito una macro que

1 Respuesta

Respuesta
1
Solo debes filtrar los datos seleccionar las POR y te juntaría todos los datos
Luego das imprimir y ya estaría
Si sabes usar la grabadora de macros solo sigue esos paso y ya esta si no sabes dímelo y te paso el código o bien te explico como
Pues al final he encontrado esto que me ha servido perfecto:
Sub Eliminar_filas_vacias()
Application.ScreenUpdating = False
For i = 1 To 114
'si la celda está vacía...
If B22 = "" Or IsNull(ActiveCell) Then
'nos quedamos con la celda donde estamos
'para volver a ella posteriormente
celda = ActiveCell.Address
'vamos hasta la primera celda a la
'derecha que encontremos, con datos
Selection.End(xlToRight).Select
'si está vacía esa celda
If ActiveCell = "" Or IsNull(ActiveCell) Then
'miramos si a la izquierda hay datos
Selection.End(xlToLeft).Select
'si también está vacía esa celda
If ActiveCell = "" Or IsNull(ActiveCell) Then
'eliminamos la fila
Selection.EntireRow.Delete
'volvemos a la celda donde estábamos
'siempre y cuando no estemos en la fila 1
If ActiveCell.Row <> 1 Then Range(celda).Offset(-1, 0).Select
End If
End If
End If
'pasamos a la siguiente fila
ActiveCell.Offset(1, 0).Select
Next
'mostramos el procedimiento
Application.ScreenUpdating = True
End Sub
Ok pues si ya lo tienes solucionado haz el favor de puntuar y cerrar la pregunta pues yo no puedo cerrarla solo puedo descartarla

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas