Programar un botón en excel

Saludos Experto
Tengo un problema al programar un botón en una hoja en excel.
La situación es la siguiente;
En mi hoja 2 introduzco valores en la celda C5, D15 y E15 (son diferentes cada vez) y deseo guardarlos en la hoja por medio de un botón.
Es decir, que una vez que tengan valor las 3 celdas antes mencionadas, al darle click
al botón, se guarden los valores en la hoja 3 en el siguiente orden (C5 en b1, D15 en c1 y E15 en d1) y que al introducir nuevamente otros valores y darle click de nueva cuenta al botón, los nuevos datos se vayan guardando en la fila siguiente, es decir en b2, c2 y d2. Es importante que esto sea realizado a través DEL BOTÓN.
Ojala puedas ayudarme
De antemano Gracias.
Respuesta
1
El botón no puede estar en la hoja porque no lo permite la propiedad range para desplazarnos por el rango de otra hoja, debe de estar en la barra de herramientas.
Si te sirve me lo dices y te doy la forma y el código.
>Un saludo
>Julio
Anoche se me encendió la bombilla, me temo que las tareas que os envían en clase las hacemos nosotros... en fin procuraré explicártela para que por lo menos de estas pequeñas consultas algo saques en claro y te sirva para aprender.
Como te decía arriba, la propiedad Range no está disponible desde un botón insertado como ActiveX en una hoja de calculo, pero como tu tema es tan sencillo, no vamos a utilizar otro tipo de botón, nos moveremos por la hoja con la instrucción ActiveCell. Offset(X,Y). Select, las POR son las filas y la letra Y las columnas, números positivos para bajar en filas y hacia la derecha en columnas y números negativos(evidentemente lo contrario) subir en filas y hacia la izquierda en columnas. Todo esto respecto de la celda activa.
Por defecto, si no se ha corregido por el usuario la celda activa cuando seleccionamos una hoja es la primera A1 ( por eso la trampa del profe para que pongáis los valores copiados en B1, C1 y D1.
La macro queda así:
Private Sub CommandButton1_Click()
'En tu la hoja donde tienes el boton copiamos la celda C5
Range("C5"). Copy
'Seleccionamos la Hoja 3

Sheets("Hoja3").Select
'Como la celda activa es A1 nos situamos en la misma fila (0) y 1 columna a la 'derecha(1)
ActiveCell.Offset(0, 1).Select
'En esta celda pegamos el valor de C5 de la Hoja2, que será la buscada B1
ActiveCell. PasteSpecial
'Volvemos a la Hoja 2 para tomar el siguiente valor
Sheets("Hoja2").Select
'Copiamos el valor de la celda D15
Range("D15"). Copy
'Volvemos a la Hoja 3
Sheets("Hoja3").Select
'Nos situamos en la celda de la misma fila (0) una columna a la derecha (1) que 'evidentemente será C1
ActiveCell.Offset(0, 1).Select
'Pegamos en la celda activa el valor de D15
ActiveCell. PasteSpecial
'Volvemos a la Hoja 2 para tomar el valor que falta
Sheets("Hoja2").Select
'Copiamos la celda E15
Range("E15"). Copy
'Volvemos a la Hoja 3 para pegar el valor
Sheets("Hoja3").Select
'Nos situamos en la misma fila (0)una columna a la derecha(1) evidentemente es D1
ActiveCell.Offset(0, 1).Select
'En la celda activa pegamos el valor que traemos de D15
ActiveCell. PasteSpecial
'Ahora dejamos activa la celda A2 para la proxima vez que pongamos valores
ActiveCell.Offset(1, -3).Select
'Al final nos situamos en la Hoja 2 para dejarla activa, si ahora empezaramos otra vez la macro funcionaría para volver a realizar todo el codigo de nuevo debido a que 'estamos en una fila nueva vacía para ir pegando valores
Sheets("Hoja2").Select
'Fin de la macro
End Sub
Aquí la tienes, no te admito menos de un 10 en este ejercicio, jajajaja
>Un saludo
>Julio
[size= small; font-family: Times New Roman]Saludos Experto[/size]
[size= small; font-family: Times New Roman]Tienes razon, eso amerita un 10[/size]
[size= small; font-family: Times New Roman]Muchas gracias, tu informacion es muy util.[/size]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas