Foros del Web » Soporte técnico » Ofimática »

Macro o funcion de relleno para celdas vacias

Estas en el tema de Macro o funcion de relleno para celdas vacias en el foro de Ofimática en Foros del Web. trabajo en una hoja de excel necesito lo sig: tengo tres columnas A,B,C con 3000 filas(rows), en la columna A y C los datos estan ...
  #1 (permalink)  
Antiguo 29/11/2006, 08:55
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 17 años, 5 meses
Puntos: 0
Pregunta Macro o funcion de relleno para celdas vacias

trabajo en una hoja de excel necesito lo sig:
tengo tres columnas A,B,C con 3000 filas(rows), en la columna A y C los datos estan competos,pero en la columna B tengo casillas o celdas vacias y tambien datos,quiero que en la casilla o celda vacia me ponga el nombre o dato de arriba.
lo que he hecho es lo siguente:
me pongo en la celda B1 pongo el puntero del mause en la parte inferior derecha y sale una cruz le doy doble click y se rellena llevando una secuencia,pero no lo quiero con secuencia por lo que presiono la tecla CTRL+j y me lo deja como quiero,pero estar haciendo esto hasta llegar a los 3000 registro se me hace repetitivo.
¿hay alguna manera de evitar este trabajo repetitivo por medio de una funcion o macro?
por su atencio gracias
  #2 (permalink)  
Antiguo 29/11/2006, 09:36
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 4 meses
Puntos: 144
Prueba esta macro:
Código:
Sub Poner_dato()
Application.ScreenUpdating = False
'la celda B1 debe contener algún dato o cifra
Range("B1").Activate
For i = 1 To 3000
    If IsEmpty(ActiveCell) Then
       ActiveCell.Value = ActiveCell.Offset(-1, 0)
    End If
    ActiveCell.Offset(1, 0).Select
Next
Application.ScreenUpdating = True
End Sub
Saluten!
  #3 (permalink)  
Antiguo 29/11/2006, 10:09
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 17 años, 5 meses
Puntos: 0
Cita:
Iniciado por 3pies Ver Mensaje
Prueba esta macro:
Código:
Sub Poner_dato()
Application.ScreenUpdating = False
'la celda B1 debe contener algún dato o cifra
Range("B1").Activate
For i = 1 To 3000
    If IsEmpty(ActiveCell) Then
       ActiveCell.Value = ActiveCell.Offset(-1, 0)
    End If
    ActiveCell.Offset(1, 0).Select
Next
Application.ScreenUpdating = True
End Sub
Saluten!
gracia la verdad si me sirvio esta macro y me minimizo mi trabajo,el problema es que a veces son 3000 registro otras veces son 1000 ¿como le hago para que me busque el ultimo registro y lo rellene hasta donde es.
supongamos que en la columna "A" y la columna "C" tienen ahora 1023 registos y en la columna B el ultimo registro llega hasta 900 y deseo rellenar exactamente hasta los 1023
de ante mano muchas gracias por tu tiempo.
  #4 (permalink)  
Antiguo 30/11/2006, 10:17
Avatar de Crashman  
Fecha de Ingreso: junio-2004
Mensajes: 335
Antigüedad: 19 años, 10 meses
Puntos: 0
Prueba esto
Código:
Sub Poner_dato()
Application.ScreenUpdating = False
'la celda B1 debe contener algún dato o cifra
Range("B1").Activate
'que no pare hasta que la celda A y C este vacia, puedes cambiar el 'condicional por or si quieres que busque solo una columna vacia ya sea a o c
do Until activecell.offset(0,1).value = "" and  activecell.offset(-1,0).value = ""
    If IsEmpty(ActiveCell) Then
       ActiveCell.Value = ActiveCell.Offset(-1, 0)
    End If
     
    ActiveCell.Offset(1, 0).Select
loop
Application.ScreenUpdating = True
End Sub
__________________
En la politica el unico ministerio que sale bien ante el pueblo es la iglesia, promete vida despues de la muerte y nadie a regresado a reclamar...
  #5 (permalink)  
Antiguo 01/12/2006, 08:14
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 17 años, 5 meses
Puntos: 0
Crashman agradesco el tiempo que te haz permitido en ver mi problema y con eso me veo satisfecho.
Lo que pasa que al ejecutar esta macro me sale lo siguente:
"se ha producido el error "1004" en tiempo de ejecucion
Error definido porla aplicacion o el objeto"
pongo depurar y me sale sombreado en amarillo esto:
Do Until ActiveCell.Offset(0, 1).Value = "" And ActiveCell.Offset(-1, 0).Value = ""
utilizo el xp poe si en algo te ayuda
nuevamente de agradesco tu atencion.
y posiblemente este cometiendo un error y no lo visualizo .
  #6 (permalink)  
Antiguo 01/12/2006, 14:10
Avatar de Crashman  
Fecha de Ingreso: junio-2004
Mensajes: 335
Antigüedad: 19 años, 10 meses
Puntos: 0
Tienes toda la razon lo que sucede es que el valor entre parentesis es asi:
el primero es para filas y el segundo para columnas entonces yo le habia puesto que buscara la columna y una fila y esta mal la instruccion es asi:
Código:
do Until activecell.offset(0,1).value = "" and  activecell.offset(0,-1).value = ""
__________________
En la politica el unico ministerio que sale bien ante el pueblo es la iglesia, promete vida despues de la muerte y nadie a regresado a reclamar...
  #7 (permalink)  
Antiguo 02/12/2006, 13:21
 
Fecha de Ingreso: noviembre-2006
Mensajes: 4
Antigüedad: 17 años, 5 meses
Puntos: 0
Cita:
Iniciado por Crashman Ver Mensaje
Tienes toda la razon lo que sucede es que el valor entre parentesis es asi:
el primero es para filas y el segundo para columnas entonces yo le habia puesto que buscara la columna y una fila y esta mal la instruccion es asi:
Código:
do Until activecell.offset(0,1).value = "" and  activecell.offset(0,-1).value = ""
ok muchas gracias en verdad ya esta funcionando bien nuevamente reitero mi agradecimientoa a quienes nos dedican su tiempo y sobre todo sus conocientos para sacar de apuros a varias, personas de antemano gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 01:42.