Buscar las celdas que tengan un mismo valor

Tengo que buscar y copiar las celdas de la columna A (A1:A500) que tengan el mismo valor (por ejemplo 1) en la correspondiente celda de la columna B.

El número del celdas a copiar puede variar de 10 a 60.

1 Respuesta

Respuesta
1

Esta es la solución: posiciónate en el primer valor de esa columna A y ejecuta esta macro:

Sub repes()
Do While ActiveCell.Value <> ""
If Application.WorksheetFunction.CountIf(Columns(1), ActiveCell) > 1 Then
ActiveCell.Offset(0, 1).Value = ActiveCell.value
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub

recuerda finalizar y puntuar

No me funciona, quizás porque no me haya explicado bien. Pongamos un ejemplo: en la B3, B6 y B7 tengo 1 en cada celda, deseo que me copie la celda A3, A6 y A7.

Gracias

Perfecto, pero el resultado deseo me lo copie en otra celda (por ejemplo en la C1). El rango de las columnas A y B es: A1:A500.y B1:B500, en cambio se prevé que sólo haya 60 posibles datos 1 a copiar en las celdas C1:C60.

Gracias

Entonces ahora posiciónate en el primer valor de la columna B y ejecuta esta macro:

Sub repes()
Do While ActiveCell.Value <> ""
If ActiveCell.Value = 1 Then
activecell.Value = ActiveCell.Offset(0, -1).value
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub

Entonces ahora posiciónate en el primer valor de la columna B y ejecuta esta macro:

Sub repes()
fila = 1
Do While ActiveCell.Value <> ""
If ActiveCell.Value = 1 Then
Cells(fila, 3).Value = ActiveCell.Offset(0, -1).Value
fila = fila + 1
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub

Funciona, pero no se requiere que deba situarse en la misma celda, de la columna B de la que se quiere copia la celda de la columna A, sino que busque en todo el rango y copie todas las celdas A que cumplan la condición de que las celdas correspondientes en B tenga 1. Disculpa si me explico un rato mal. Gracias de nuevo

Pues entonces usa esta macro y listo:

Y repito: posiciónate en el primer valor de la columna B y ejecuta esta macro:

Sub repes()
fila = 1
Do While ActiveCell.Value <> ""
If ActiveCell.Value = 1 Then
Cells(fila, 3).Value = ActiveCell.Offset(0, -1).Value
fila = fila + 1
End If
ActiveCell.Offset(1, 0).Select
Loop
range("c1").select
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas