Excel - Completar celdas hasta la última fila

   
Vista:

Completar celdas hasta la última fila

Publicado por CyRuS (33 intervenciones) el 01/12/2008 17:53:26
Tengo 5 columnas. 4 de ellas tienen datos hasta la columna 100 (variable) por ejemplo y otra está vacía (la E). Necesito rellenar esa columna desde E2 hasta E100 con la palabra "casa" por ejemplo. Para lo cual primero probé:

- 1 era idea (reemplazar campo vacío por casa)
Columns("E:E").Select
Selection.Replace What:="", Replacement:="casa", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False

Problema: me detectaba que tenía vacío hasta la fila 65536 (la última de las últimas) en vez de la 100

- 2 idea (contar cuantas filas tiene mi hoja)
Range("A1").Select
numFilas = ActiveSheet.UsedRange.Rows.Count ' me cuenta las filas de la columna A que está llena
UltimaFila = "E" & numFilas
For Each Fila In Range("E2:" & UltimaFila) 'Excepto la primera fila del encabezado
Fila.FormulaR1C1 = "casa"
Next

Problema: me detectaba que tenía vacío hasta la fila 62135 en vez de la 100

- 3 idea (rellenar la columna E utilizando AutoFill)
numFilas = ActiveSheet.UsedRange.Rows.Count 'Me da el nº de filas
UltimaFila = "E" & numFilas
Selection.AutoFill Destination:=Range("E2:" & UltimaFila)

Problema: me da el error 1004. Fallo en el método AutoFill de la clase Range

- 4 idea (ya con ganas de darme por vencido)
Eliminar las filas desde la fila 101 hasta la 65536 y pasar a la primera idea, la de reemplazar el campo "" por "casa". Funciona.

Y yo me pregunto, ¿ por qué me hace esas cosas el Excel? ¿ Cómo puedo solucionar los errores y hacerlo de una manera sencilla?

Muchas gracias,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Completar celdas hasta la última fila

Publicado por Abraham Valencia (2418 intervenciones) el 01/12/2008 23:31:20
Pues, la verdad amigo, el problema no es Excel, es tu planteamiento, y tus intentos de solucion.

Si mal no entendi, algo asi creo te servira:

Sub XXX()
Dim strultimacelda$
Dim rango As Range
strultimacelda$ = Range("E65536").End(xlUp).Address
For Each rango In ActiveSheet.Range("E1:" & strultimacelda$)
If rango = Empty Then
rango = "Casa"
End If
Next rango
End Sub

Abraham
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Completar celdas hasta la última fila

Publicado por CyRuS (33 intervenciones) el 02/12/2008 17:24:28
Gracias Abraham por responder,
Lo que me comentas es perfectamente válido. Muchas gracias.

Esta sentencia que funciona perfectamente lo resume todo.

Range("E2:E" & Cells(Rows.Count, "A").End(xlUp).Row) = "Casa"

Gracias,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar