** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Macro para bajar una celda.
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoMacro para bajar una celda.

 Responder Responder
Autor
Mensaje
Reaben Ver desplegable
Habitual
Habitual


Unido: 04/Octubre/2012
Estado: Sin conexión
Puntos: 55
Enlace directo a este mensaje Tema: Macro para bajar una celda.
    Enviado: 15/Enero/2017 a las 18:41
Buenas tardes a todos. 
Os planteo una cuestion que, aunque debe ser muy sencilla, no la estoy sabiendo sacar adelante. 
Tengo una macro a la que llamaremos M1 que consiste en copiar el dato de cierta celda, pegarlo en otra hoja y alli realizar una serie de calculos. Hasta ahí nos lo sabemos. 
La cuestion es que para ir más deprisa me gustaria introducir una orden para bajar automáticamente a la celda siguiente y volver a empezar el proceso de la M1, pero no se como hacerlo (me da hasta verguenza preguntar Cry). 
Tambien habia pensado en una segunda macro que bajase una celda y ejecutase la M1, pero es que estamos en las mismas. La orden de "baja una celda" no se introducirla. 
Muchas gracias de antemano a todos. 
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5735
Enlace directo a este mensaje Enviado: 15/Enero/2017 a las 20:58
¿Vergüenza por preguntar?  Es mucho más vergonzoso no saberlo nunca por no preguntar una vez.

Ni tú ni nadie de este mundo podemos saberlo todo ¡Que más quisiera yo!

Vamos a lo que importa: No me queda claro lo que pretendes y eso si dificulta mi respuesta. Me da la impresión de que pretendes pasar una serie de datos que están (por ejemplo) en Hoja1 hacia (por ejemplo) Hoja2. Si estoy en lo cierto, eso lo consigues con un bucle, son muy utilizados en programación, los hay de varios tipos y se emplea uno u otro dependiendo de lo que queremos lograr.

Suponiendo que lo que he comentado es lo que pretendes; es necesario que indiques donde están los datos de origen (nombre de hoja y rango) y a donde los quieres pasar (nombre de hoja y rango).

Si es algo diferente, intenta aclararlo un poco más.


Y recuerda: ¡Pregunta lo que quieras! Mientras perdure el respeto y las buenas maneras aquí siempre serás bienvenida/o.


Saludos desde Tenerife.

Mi sitio_web con ejemplos Excel.
Arriba
Reaben Ver desplegable
Habitual
Habitual


Unido: 04/Octubre/2012
Estado: Sin conexión
Puntos: 55
Enlace directo a este mensaje Enviado: 15/Enero/2017 a las 23:13
Muchas gracias por tus amables palabras. 

Veamos. En la Hoja1 tenemos una serie de productos en la columna A y las unidades vendidas en la columna B. La macro lo que hace es copiar las unidades vendidas del producto uno, informacion que esta en la celda B2. Ese dato lo pegamos en la celda C6 de la Hoja2 donde se le aplican una serie de cálculos (coste del producto, impuestos, etc.) y los resultados se pasan a la Hoja3, celda C2,  donde se está elaborando un bonito informe de ventas. 
Y aqui esta el problema. ¿Como le indico yo que ahora debe repetir el proceso pero empezando en la celda B3 de la Hoja 1 donde se encuentra el segundo producto, y almacenar el resultado en C3 de la Hoja3?
Si consigo hacer esto, el informe se generaría entero con un solo click. 
¿Se entiende mejor ahora? 
Es que si no lo consigo tendre que ejecutar mi macro 2500 veces (una por registro) Cry 
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5735
Enlace directo a este mensaje Enviado: 16/Enero/2017 a las 00:06

La explicación ha vuelto a quedar incompleta, ya que en el segundo paso has omitido decir si Hoja1!B3  se escribirá en Hoja2!C7  o si se repite la ubicación de destino del paso 1 (Hoja2!C6). Tampoco has dicho que celda  de la Hoja2 contiene el resultado de los cálculos que debemos pasar a la Hoja3.


Voy a suponer que siempre se escribe el dato en Hoja2!C6,  que el resultado que debemos pasar a la Hoja3 está siempre en Hoja2!D6 y que la columna de Unidades vendidas de Hoja1 no tiene celdas vacías intermedias.



Esta es la macro (haz la prueba en un libro en blanco* hasta que estés segura/o que la macro hace lo que quieres que haga):

Sub PasaDatos()

  Dim fila&

'Fila de comienzo de lectura y escritura.

  fila = 2

'Entramos en un bucle «Do...Loop».

  Do

'Pasa el dato de Hoja1 a Hoja2.

    Sheets("Hoja2").Range("C6").Value = Sheets("Hoja1").Cells(fila, 2).Value

'Pasa el resultado de Hoja2 a Hoja3.

    Sheets("Hoja3").Cells(fila, 3).Value = Sheets("Hoja2").Range("D6").Value

'Fila siguiente.

    fila = fila + 1

'Mientras hayan datos en Hoja1 repite el proceso.

  Loop While Sheets("Hoja1").Cells(fila, 2).Value > 0

End Sub 'PasaDatos



* Editado: Fue inapropiado donde dije un libro en blanco ,  debería haber dicho una copia de tu libro con otro nombre, para que conserves el original sin modificar. Si el libro está en blanco es que no tiene datos, en cuyo caso la macro no traspasa nada. Embarrassed




Editado por AnSanVal - 16/Enero/2017 a las 20:59
Saludos desde Tenerife.

Mi sitio_web con ejemplos Excel.
Arriba
Reaben Ver desplegable
Habitual
Habitual


Unido: 04/Octubre/2012
Estado: Sin conexión
Puntos: 55
Enlace directo a este mensaje Enviado: 17/Enero/2017 a las 20:22
Efectivamente, ahora si funciona. 
Y tenías razón, los datos se llevan a calcular siempre a Hoja2!C6 y de ahí se devuelven al informe bajando cada vez una fila.
Muchas gracias por tu ayuda. No te imaginas el trabajo que me has ahorrado.   
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5735
Enlace directo a este mensaje Enviado: 17/Enero/2017 a las 22:12
Me alegra haberte ayudado. Hasta la próxima.
Saludos desde Tenerife.

Mi sitio_web con ejemplos Excel.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable