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

Incremento de Variable

Estas en el tema de Incremento de Variable en el foro de Ofimática en Foros del Web. Antes que nada. Gracias a mrocf por su fantastica respuesta. Hola! Al presionar un boton hemos logrado copiar el contenido de una celda de una ...
  #1 (permalink)  
Antiguo 10/05/2007, 09:37
 
Fecha de Ingreso: mayo-2007
Mensajes: 7
Antigüedad: 17 años, 6 meses
Puntos: 0
Incremento de Variable

Antes que nada. Gracias a mrocf por su fantastica respuesta.

Hola!
Al presionar un boton hemos logrado copiar el contenido de una celda de una hoja a otra. Lo que necesito ahora es que la segunda vez que presione el botón los datos se copien debajo del anterior. Con vuestra ayuda he logrado esto:

Private Sub CommandButton2_Click()
Dim variable As Integer
variable = 11
Range("E10").Copy
Hoja5.Range("H" & variable).PasteSpecial Paste:=xlPasteValues,
Transpose:=True
Range("J10").Copy
Hoja5.Range("I" & variable).PasteSpecial Paste:=xlPasteValues,
Transpose:=True
variable = variable + 1
End Sub

Pero me sigue copiando en el mismo lugar. Intente tambien declarar la variable en GENERAL pero me da error.


Gracias nuevamente a todos ustedes
  #2 (permalink)  
Antiguo 10/05/2007, 13:28
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 8 meses
Puntos: 88
Sonrisa Incremento de Variable

Hola Ariel !
Me alegra que mis sugerencias anteriores te hayan servido.

Te sugiero que cuando una macro no realiza lo que quieres, utilices un "viejo y conocido" método: PENSAR COMO PIENSA EL PROGRAMA. Veamos:

Private Sub CommandButton2_Click() (esto no puede ser el problema)
Dim variable As Integer (esta declaración no puede ser el problema)
variable = 11 (¿Otra vez la variable vale 11?... ÉSTE ES EL PROBLEMA).

Existen no menos de 3 caminos que pueden tomarse aquí. Yo te mostraré uno de ellos, que -por ser muy general- es aplicable a muchos otros casos.

1º) En el método: Hoja5.Range("H" & variable).PasteSpecial Paste:=xlPasteValues, Transpose:=True...
"Transpose" se establece a "True" para transponer las filas en columnas al pegar el rango. El valor predeterminado es "False".

Como tú estás pegando UNA SOLA CELDA... no tiene sentido esta declaración (si estuvieses pegando varias celdas y las quisieses transponer, entonces allí sí tendría sentido).

2º) Te sugiero sustituir: Hoja5.Range("H" & variable) (que no funciona) por:
Hoja5.[H65536].End(xlUp).Offset(1, 0) (que te funcionará perfectamente, quedando:
Código:
Hoja5.[H65536].End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
Te sugiero, entonces, que leas sobre "End(xlUp)" y sobre "Offset(1, 0)" y verás:
a) por qué te funciona adecuadamente; y
b) que "potentes" son ambas propiedades.

Saludos
  #3 (permalink)  
Antiguo 10/05/2007, 14:26
 
Fecha de Ingreso: mayo-2007
Mensajes: 7
Antigüedad: 17 años, 6 meses
Puntos: 0
Re: Incremento de Variable

MUY Buena tu sugerencia, he tratado de leer un poco de vbasic para excel, pero hay tanta información que no se que leer primero.
...Y ando leyendo un poco de cada cosa pero no he podido abarcar mucho.

Muchisimas gracias por tu aporte.

PD: Te cuento que que recien llevo una semana usando excel y es increible las cosas que se pueden hacer.

Gracias nuevamente
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




La zona horaria es GMT -6. Ahora son las 13:54.