Mover celda

02/11/2004 - 20:02 por PEPE | Informe spam
Hola a todos.
No se como puedo hacer con codigo por ejemplo en la
columna "A" si hay una celda cuyo valor es 0 me mueva a
esa celda el dato de la siguiente ,asi hasta la última
linea.
Muchas gracias por su colaboración
Pepe

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
03/11/2004 - 07:35 | Informe spam
hola, Pepe !

... codigo por ejemplo en la columna "A" si hay una celda cuyo valor es 0
... me mueva a esa celda el dato de la siguiente, asi hasta la ultima linea.



'se me ocurren' los siguientes escenarios [ya diras que hacer segun 'se presente' el caso]...
1.- que una 'evaluacion' de 0 en una celda sea porque [simplemente] esta... 'vacia' ??
2.- que una vez 'encontrado' un 0, la/s siguiente/s celda/s [1, 2, 3...] TAMBIEN sean 0's ??
3.- que sea 'el resultado' de una formula que [en ese preciso momento] este siendo 'evaluada' como 0
[resultaria obvio que 'ese' resultado pudiera cambiar bajo otras circunstancias] ??
4.- que la/s celda/s cuyo dato 'se mueva' sean referencia en formulas de otras celdas ?? [p.e.]
si la celda 'A5' es un 0 y -precisamente- ahi se va a 'mover' el dato de la celda 'A10' 'pero'...
a) otra celda [digamos 'X20'] tenia la formula ¡0 [el dato que 'se va a mover' a la celda 'A5']
b) otra celda [digamos 'Z15'] tenia la formula ¥ [la celda que tendra un 'nuevo' dato -o se eliminara-]
=> ¿cual referencia debiera 'prevalecer' en las celdas 'dependientes'? [en el ejemplo, 'X20' y 'Z15'] ??

si 'fume raro' y nada de lo arriba supuesto 'tiene importancia' :))
y lo unico que quieres es 'eliminar' las celdas cuyo valor 'actual' es 0...
copia las siguientes lineas en un modulo de codigo 'normal' ==Sub Eliminar_Celdas_con_Ceros()
Dim Col As String, Fila As Long, Ceros As String
Col = "a"
For Fila = 1 To Range(Col & 65536).End(xlUp).Row
If Range(Col & Fila) = 0 Then
If Ceros = "" Then Ceros = Range(Col & Fila).Address(0, 0) _
Else Ceros = Union(Range(Ceros), Range(Col & Fila)).Address(0, 0)
End If
Next
If Ceros <> "" Then Range(Ceros).Delete xlUp
End Sub

si necesitas eliminar ->toda la fila<- cuya celda en la columna 'A' sea 0...
cambia la ultima linea de la macro a...
If Ceros <> "" Then Range(Ceros).EntireRow.Delete

si lo que 'realmente' necesitas es diferente... ¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#2 Pepe
04/11/2004 - 17:14 | Informe spam
Ok Hector,funciona perfecto eso es lo que queria ,muchas
gracias.
Un saludo Pepe


hola, Pepe !

... codigo por ejemplo en la columna "A" si hay una




celda cuyo valor es 0
... me mueva a esa celda el dato de la siguiente, asi




hasta la ultima linea.

'se me ocurren' los siguientes escenarios [ya diras que


hacer segun 'se presente' el caso]...
1.- que una 'evaluacion' de 0 en una celda sea porque


[simplemente] esta... 'vacia' ??
2.- que una vez 'encontrado' un 0, la/s siguiente/s


celda/s [1, 2, 3...] TAMBIEN sean 0's ??
3.- que sea 'el resultado' de una formula que [en ese


preciso momento] este siendo 'evaluada' como 0
[resultaria obvio que 'ese' resultado pudiera


cambiar bajo otras circunstancias] ??
4.- que la/s celda/s cuyo dato 'se mueva' sean referencia


en formulas de otras celdas ?? [p.e.]
si la celda 'A5' es un 0 y -precisamente- ahi se va


a 'mover' el dato de la celda 'A10' 'pero'...
a) otra celda [digamos 'X20'] tenia la formula


¡0 [el dato que 'se va a mover' a la celda 'A5']
b) otra celda [digamos 'Z15'] tenia la formula


¥ [la celda que tendra un 'nuevo' dato -o se eliminara-]
=> ¿cual referencia debiera 'prevalecer' en las


celdas 'dependientes'? [en el ejemplo, 'X20' y 'Z15'] ??

si 'fume raro' y nada de lo arriba supuesto 'tiene


importancia' :))
y lo unico que quieres es 'eliminar' las celdas cuyo


valor 'actual' es 0...
copia las siguientes lineas en un modulo de


codigo 'normal' ==>Sub Eliminar_Celdas_con_Ceros()
Dim Col As String, Fila As Long, Ceros As String
Col = "a"
For Fila = 1 To Range(Col & 65536).End(xlUp).Row
If Range(Col & Fila) = 0 Then
If Ceros = "" Then Ceros = Range(Col & Fila).Address


(0, 0) _
Else Ceros = Union(Range(Ceros), Range(Col &


Fila)).Address(0, 0)
End If
Next
If Ceros <> "" Then Range(Ceros).Delete xlUp
End Sub

si necesitas eliminar ->toda la fila<- cuya celda en la


columna 'A' sea 0...
cambia la ultima linea de la macro a...
If Ceros <> "" Then Range(Ceros).EntireRow.Delete

si lo que 'realmente' necesitas es diferente... ¿comentas?
saludos,
hector.


.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida