Macro fácil

Buenas,
Una pregunta fácil pero que me esta volviendo loco.
Tengo una hoja de calculo con unas 20 columnas y unos 100000 registros. El caso es que quiero hacer una macro que me compare, registro por registro dos de los campos que yo quiera y si coinciden, inserte una fila debajo. No consigo saber como meter en una variable el valor de una celda para luego compararla con el valor de otra que habré metido en otra variable.
Espero que mi explicación haya sido lo suficientemente clara
Gracias y saludos

1 Respuesta

Respuesta
1
Seguro que me estás mintiendo, pues es imposible que tengas 100000 registros (una hoja de cálculo apenas si tiene 65536 líneas) ;)
Suponiendo que fuese una exageración, este código compara dos celdas separadas por dos columnas, si son iguales, inserta una linea abajo. La macro se detiene cuando la línea siguiente estuviera vacía:
Sub InsIfIgual()
Do While Not IsEmpty(ActiveCell)
If ActiveCell.Value = ActiveCell.Offset(0, 3) Then
ActiveCell.Offset(1).EntireRow.Insert
ActiveCell.Offset(1).Select
End If
ActiveCell.Offset(1).Select
Loop
End Sub
Como verás el uso de la propiedad Offset "lee" el contenido de otra celda, sin necesidad de moverse de la celda activa. Por tanto, tampoco necesito cargar los valores en variables.
Esto debería resolver tu pregunta. Si así fuera, agradeceré un comentario y que la finalices.
Si no, pregúntame de nuevo.
Un abrazo!
Fernando
*====================================*
(Considera que la valoración que figura predeterminada
es 3/5. Tal vez quieras cambiarla...)
En caso contrario, puedes preguntarme nuevamente
aclarando qué entendí mal o qué faltó.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas