Macros- Variables dentro de Range

25/07/2007 - 06:02 por Martín | Informe spam
Hola
quiero saber como hago para poner variables dentro de los rangos, ya
que me parece muy útil a la hora de hacer un for, o lo que sea...

es decir

si tengo:

Range("b2").Select

quiero alguna función, o manera de hacer lo siguiente:

dim i as string
Range("bi").Select

así puedo meterlo dentro de un for, con la i como counter


y me darían para un for de 1 a 4 lo siguiente:

Range("b1").Select
Range("b2").Select
Range("b3").Select
Range("b4").Select



cualquier ayuda se agradece

Martin

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
25/07/2007 - 07:34 | Informe spam
hola, Martín !

[generalmente] no es necesario andar seleccionando celdas en un codigo [dependiendo de tu situacion *real*] :))

para hacer un bucle por celdas usando como variable el numero de fila, podrias usar algo +/- como lo siguiente:

Dim Fila As Long
For Fila = 1 To 4
Range("a" & Fila)... <= aqui puedes *administrar* propiedades y metodos de un objeto *Range*
Next

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ la consulta original __
quiero saber como hago para poner variables dentro de los rangos
ya que me parece muy útil a la hora de hacer un for, o lo que sea...
es decir si tengo:
Range("b2").Select
quiero alguna función, o manera de hacer lo siguiente:
dim i as string
Range("bi").Select
asi puedo meterlo dentro de un for, con la i como counter
y me darian para un for de 1 a 4 lo siguiente:
Range("b1").Select
Range("b2").Select
Range("b3").Select
Range("b4").Select
cualquier ayuda se agradece
Respuesta Responder a este mensaje
#2 julian-vlc-sp
25/07/2007 - 12:26 | Informe spam
¡Importante!: Colabora con el grupo.Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias.

Antes de ver la respuesta de Héctor había preparado un respuesta, y como la
tengo te la envío.

Si lo que quieres es seleccionar un rango desde una posición fija (F1) hasta
otra celda en función del valor de i, puedes poner:

Sub Macro3()
Dim i As Integer
i = 4
Range("F1:F" & i).Select
End Sub

Si además quieres 'hacer algo' con cada celda, puedes poner algo como:

Sub Macro2()
Dim i As Integer
For i = 1 To 4
Range("F" & i).Select
ActiveCell.Value = 10 + i
Next i
End Sub


SALUDOS.
Julián-Valencia-España
http://ijulian.iespana.es/


"Martín" escribió en el mensaje
news:
Hola
quiero saber como hago para poner variables dentro de los rangos, ya
que me parece muy útil a la hora de hacer un for, o lo que sea...

es decir

si tengo:

Range("b2").Select

quiero alguna función, o manera de hacer lo siguiente:

dim i as string
Range("bi").Select

así puedo meterlo dentro de un for, con la i como counter


y me darían para un for de 1 a 4 lo siguiente:

Range("b1").Select
Range("b2").Select
Range("b3").Select
Range("b4").Select



cualquier ayuda se agradece

Martin
Respuesta Responder a este mensaje
#3 Adolfo Aparicio
25/07/2007 - 20:42 | Informe spam
Para trabajar con un For Next y celdas puede ser interesante utilizar Cells.
Por ejemplo:

Sub pares()
Dim i as integer
For i=1 to 100
Cells(i,2)=i*2
Next
End Sub

Adolfo Aparicio
www.excelavanzado.com


"Martín" escribió:

Hola
quiero saber como hago para poner variables dentro de los rangos, ya
que me parece muy útil a la hora de hacer un for, o lo que sea...

es decir

si tengo:

Range("b2").Select

quiero alguna función, o manera de hacer lo siguiente:

dim i as string
Range("bi").Select

así puedo meterlo dentro de un for, con la i como counter


y me darían para un for de 1 a 4 lo siguiente:

Range("b1").Select
Range("b2").Select
Range("b3").Select
Range("b4").Select



cualquier ayuda se agradece

Martin


Respuesta Responder a este mensaje
#4 Martín
26/07/2007 - 05:57 | Informe spam
bien brillante las respuestas, me ha servido mucho, el problema que
tengo ahora es que con el for me puedo mover en una columna...


Es decir en la A1, A2, A3,...An


pero no me puedo mover por filas... es decir:

A1,B1,C1,D1...etc

porque en el for no puedo meter caracteres
no puedo hacer range( i & "1")
porque i es int

alguna función o pisadita para esto??

gracias por las respuestas, me han servido en mi trabajo.
Martin
Respuesta Responder a este mensaje
#5 Héctor Miguel
26/07/2007 - 07:19 | Informe spam
hola, Martín !

... el problema que tengo ahora es que con el for me puedo mover en una columna...
Es decir en la A1, A2, A3,...An
pero no me puedo mover por filas... es decir:
A1,B1,C1,D1...etc
porque en el for no puedo meter caracteres no puedo hacer range( i & "1") porque i es int
alguna funcion o pisadita para esto?



*segun las preguntas*... *vienen* las propuestas :))

saludos,
hector.

Sub Por_Filas()
Dim Fila As Integer
For Fila = 1 To 15
' Range("a" & Fila) = Fila * 2
Cells(Fila, 1) = Fila * 2
Next
End Sub
Sub Por_Columnas()
Dim Col As Byte
For Col = 1 To 10
Cells(20, Col) = Col * 2
Next
End Sub
Sub Por_Filas_y_Columnas()
Dim Fila As Integer, Col As Byte
For Fila = 1 To 15
For Col = 1 To 10
Cells(Fila, Col) = Fila * Col
Next
Next
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida