Añadir un parametro.

18/08/2006 - 19:51 por Masters | Informe spam
Teniendo el siguiente macro:

Sub inserta()
Dim celda As Range
For Each celda In Range("B:B")
If celda.Value = "" Then Exit Sub
If celda.Value > celda.Row Then celda.EntireRow.Insert
Next celda
End Sub

Necesito sacar el número de celda, para hacer una copia de A1 a An
donde la n es el valor de celda en que está en proceso.

Preguntas similare

Leer las respuestas

#1 Masters
19/08/2006 - 17:55 | Informe spam
Masters ha escrito:

Teniendo el siguiente macro:

Sub inserta()
Dim celda As Range
For Each celda In Range("B:B")
If celda.Value = "" Then Exit Sub
If celda.Value > celda.Row Then celda.EntireRow.Insert
Next celda
End Sub

Necesito sacar el número de celda, para hacer una copia de A1 a An
donde la n es el valor de celda en que está en proceso.



Solo necesito una pequeña respuesta de que si se puede hacer.
Gracias.
Respuesta Responder a este mensaje
#2 Héctor Miguel
19/08/2006 - 22:59 | Informe spam
hola, 'anonimo/a' !

Teniendo el siguiente macro:
Sub inserta()
Dim celda As Range
For Each celda In Range("B:B")
If celda.Value = "" Then Exit Sub
If celda.Value > celda.Row Then celda.EntireRow.Insert
Next celda
End Sub
Necesito sacar el numero de celda, para hacer una copia de A1 a An donde la n es el valor de celda en que esta en proceso.
Solo necesito una peque#a respuesta de que si se puede hacer.



[creo que] no es muy 'clara' la situacion que necesitas resolver -?-
o... [pareciera que] la solucion que buscas esta 'implicita' en el codigo que expones [me explico]

1) estas 'trabajando' sobre la columna 'B' [columna # 2]
2) si 'la celda' es 'afectable'... ya tienes su numero de fila con la instruccion -> celda.Row
3) entonces... que es lo que necesitas 'conocer' ?
la columna ? -> celda.Column [o 'directamente' 2 o "b"] -?-
la fila ? -> celda.Row
la direccion ? celda.Address o... Cells(celda.Row, 2) o... Range("b" & celda.Row) o... -???-

comentas [si hubiera] algun detalle adicional ?
saludos,
hector.
Respuesta Responder a este mensaje
#3 Masters
19/08/2006 - 23:21 | Informe spam
Ojalá encuenrte un dichoso manual que me explique todo lo que has
dicho.
jejeje.

Verás, cuando se ejecuta la macro, trabaja desde la B1 a la B.
Enconces, lo que quiero sacar es el número de la celda antes de pasar
a la siguiente fila para pegar el contenido de la A1, a la A? siendo ?
el número de la celda que está en proceso.
Saltandose los campos en blanco y así sucesivamente hasta que en la
columna B se wencuentre con un campo en blanco que da como finalizada
la macro.

Pongo un ejemplo.
En estos momentos la macro va por la B5 con el número 6, entonces
insertará toda una fila en blanco.
Salta y ahora está en la B6 que coincide con el 6 y automáticamente
sacando el 6 hago un copy paste de A1 a A6.

Saludos.
Respuesta Responder a este mensaje
#4 Héctor Miguel
19/08/2006 - 23:53 | Informe spam
hola, 'anonimo/a' !

Ojala encuenrte un dichoso manual que me explique todo lo que has dicho. jejeje.



-> me hiciste sentirme como 'bicho raro' :DD

... quiero sacar... el numero de la celda antes de pasar a la siguiente fila para pegar el contenido de la A1, a la A? ...
... ejemplo... la macro va por la B5 con el número 6, entonces insertara toda una fila en blanco.
... ahora esta en la B6 que coincide con el 6 y automaticamente sacando el 6 hago un copy paste de A1 a A6.



no se 'que' contenga 'A1' [espero que no sea un numero superior a la fila que se va insertando] -?-
prueba con las siguientes modificaciones solo decide cual variante usas [copiar el valor de A1 o 'hacer una copia' de A1]:

Sub Inserta()
Dim Celda As Range
For Each Celda In Range("b:b")
If Celda = "" Then Exit Sub
If Celda > Celda.Row Then
Celda.EntireRow.Insert
Celda = [a1] ' copia a la celda 'movida' EL VALOR que contenga 'A1' ;)
' Range("a1").Copy Celda ' hace una 'copia' de la celda 'A1' EN la celda 'movida' ;)
End If
Next
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#5 Masters
20/08/2006 - 00:12 | Informe spam
No ha funcionado, me ha pasado lo mismo que las otras veces, crea un
bucle infinito de inserción.
La copia lo hace a lo largo de la columna B.
Y no lo quiero asi, quiero que lo copie en A, pero no en la celda
insertada, en la celda que contiene el número.
Asi que te pongo un ejemplo.
A B
1 Hola 1
2 2
3 4
4 6

Cuando se ejecuta la macro deberia quedar asi.
A B
1 Hola 1
2 Hola 2
3
4 Hola 4
5
6 Hola 6

Saludos.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida