Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Ofimática (http://www.forosdelweb.com/f90/)
-   -   boton en excel para meter datos en otra hoja con un input box (http://www.forosdelweb.com/f90/boton-excel-para-meter-datos-otra-hoja-con-input-box-580426/)

kalaos7 27/04/2008 06:00

boton en excel para meter datos en otra hoja con un input box
 
Hola, miren estoy haciendo una aplicacion en excel y me ha surgido la siguiente duda. Tengo en la hoja1 un boton para supuestamente que me salgan varios inputbox cuando le des, esos inputbox se almacenan en variables cuyo valor sera escrito en una fila en la hoja2. El problema esque si le doy al boton me lo hace perfecto, pero si quiero agregar otra fila en la hoja2 se sustituyen los datos que antes he metido, vamos resumiendo, me gustaria saber como almacenar los datos en la ultima fila vacia. Gracias

gmansi 27/04/2008 11:10

Re: boton en excel para meter datos en otra hoja con un input box
 
Y no puedes hacer una minimacro que se posicione grabando las pulsaciones END y flecha hacia abajo por ejemplo? y luego meter ese pedacito de código antes de ejecutar tu aplicación?

kalaos7 27/04/2008 11:33

Re: boton en excel para meter datos en otra hoja con un input box
 
Cita:

Iniciado por gmansi (Mensaje 2381247)
Y no puedes hacer una minimacro que se posicione grabando las pulsaciones END y flecha hacia abajo por ejemplo? y luego meter ese pedacito de código antes de ejecutar tu aplicación?

muchas gracias por responder, pero no entiendo lo que me quieres decir, te pongo el codigo de mi aplicacion para ver si asi te hes mas facil ayudarme:

Private Sub CommandButton1_Click()
Dim matricula As String
Dim marca As String
Dim modelo As String
Dim categoria As String
Dim combustible As String
Dim aceite As String
Dim strMsg As String
matricula = InputBox("Inserte la matricula del vehiculo:", "Nuevo vehiculo")
marca = InputBox("Inserte la marca del vehiculo:", "Nuevo vehiculo")
modelo = InputBox("Inserte el modelo del vehiculo:", "Nuevo vehiculo")
categoria = InputBox("Inserte la categoria del vehiculo:", "Nuevo vehiculo")
combustible = InputBox("Inserte el combustible del vehiculo:", "Nuevo vehiculo")
aceite = InputBox("Inserte el aceite del vehiculo:", "Nuevo vehiculo")
strMsg = "El coche con matricula " & matricula & ", " & modelo & " se a creado"
MsgBox strMsg
Dim hoja As Worksheet
Dim celda As Characters
For Each hoja In Sheets
Hoja6.Range("A3").Value = matricula
Hoja6.Range("B3").Value = marca
Hoja6.Range("c3").Value = modelo
Hoja6.Range("d3").Value = categoria
Hoja6.Range("e3").Value = combustible
Hoja6.Range("f3").Value = aceite

Next hoja

gmansi 27/04/2008 16:47

Re: boton en excel para meter datos en otra hoja con un input box
 
Por tu ejemplo controlas la fila donde se escribe con el parámetro que le pasas al rango.

Hoja6.Range("f3").Value = aceite

Yo en tu lugar usaría una celda alejada de la planilla donde almacenar el número correspondiente la última fila con datos.

Por ejemplo en la celda M5 por decir algo digitas un 10 si es ahí donde comenzarás a llenar los datos.

Luego donde tú dices:

For Each hoja In Sheets
Hoja6.Range("A3").Value = matricula
Hoja6.Range("B3").Value = marca
Hoja6.Range("c3").Value = modelo
Hoja6.Range("d3").Value = categoria
Hoja6.Range("e3").Value = combustible
Hoja6.Range("f3").Value = aceite

Next hoja

Trataría de controlar ese "3" con el valor de la celda M10 y al terminar de llenar los datos aumentas el valor de M5 en 1.

O sea lo que antes era:

Hoja6.Range("A3").Value = matricula

quedaría

Hoja6.Range(=CONCATENAR("A3";M5)).Value = matricula

y luego de que terminas con todas las variales aumentas el valor de tu "contador de filas" M5 usando

AUMENTO=M5+1
M5=AUMENTO

Por supuesto que antes declaraste la variable AUMENTO como numérica.

A ver si con eso sale bien!

kalaos7 28/04/2008 03:51

Re: boton en excel para meter datos en otra hoja con un input box
 
Esta sentencia me da error en el igual antes de concatenar : Hoja6.Range(=CONCATENAR("A3";M5)).Value = matricula, no se xk puede ser, muxas gracias

3pies 28/04/2008 04:21

Re: boton en excel para meter datos en otra hoja con un input box
 
Haz esto:
Código:

'Seleccionamos la celda B3
Range("B3").select
'hasta que no encuentre una fila vacía...
Do While Not IsEmpty(ActiveCell)
      'que vaya bajando una fila
      ActiveCell.Offset(1,0).select
Loop
'como ahora ya estamos en la fila vacía,
'solo nos queda escribir los datos:
Activecell = matricula
'pasamos a la siguiente columna
Activecell.offset(0,1)=marca
'pasamos a la siguiente columna
Activecell.offset(0,2)=modelo
'pasamos a la siguiente columna
Activecell.offset(0,3)=categoria
'pasamos a la siguiente columna
Activecell.offset(0,4)=combustible
'pasamos a la siguiente columna
Activecell.offset(0,5)=aceite

Salu2

kalaos7 28/04/2008 04:49

Re: boton en excel para meter datos en otra hoja con un input box
 
Muchas gracias, ya me funciona el salto de fila, pero solo te molesto una vez mas: para insertar los datos en otra hoja? porque el boton lo tengo en la hoja1 y los datos los kiero insertar en la hoja6. muxas gracias y ya no molesto mas

3pies 28/04/2008 05:01

Re: boton en excel para meter datos en otra hoja con un input box
 
Simplemente añade esta línea al comienzo de esas líneas que te acabo de poner:
Código:

Hoja6.Select
Esa línea debe ir justo encima de esta otra:
Código:

Range("B3").select
De esa forma, todo lo que hagas de ahí en adelante, estará referenciado a la Hoja6. Si posteriormente quieres hacer algo con otra hoja, simplemente tendrás que seleccionarla de la misma forma que te he puesto aquí.

Por ejemplo, si al finalizar, quieres volver a la hoja 1, pon esto después de la última línea que te puse en el post anterior:
Código:

Hoja1.Select
Salu2

PD: Si quieres que no se vea el "movimiento" de pantallas (el refresco constante de la pantalla, a medida que se van haciendo las cosas), pon esta otra línea al principio de tu macro (la primera línea):
Código:

Application.ScreenUpdating = False
y como última línea del macro, pon esta:
Código:

Application.ScreenUpdating = True

kalaos7 28/04/2008 05:14

Re: boton en excel para meter datos en otra hoja con un input box
 
Muchas gracias por la ayuda, ahora me funciona perfectamente. Para otra duda no dudare en venir a este foro, gracias

3pies 28/04/2008 05:23

Re: boton en excel para meter datos en otra hoja con un input box
 
De nada. Por aquí estaremos unos cuantos, dispuestos a ayudar en lo que sepamos.

Salu2

gmansi 29/04/2008 14:29

Re: boton en excel para meter datos en otra hoja con un input box
 
Cita:

Iniciado por kalaos7 (Mensaje 2381961)
Esta sentencia me da error en el igual antes de concatenar : Hoja6.Range(=CONCATENAR("A3";M5)).Value = matricula, no se xk puede ser, muxas gracias

probaste sacando el signo de = ???

gmansi 29/04/2008 14:30

Re: boton en excel para meter datos en otra hoja con un input box
 
Cita:

Iniciado por 3pies (Mensaje 2382037)
De nada. Por aquí estaremos unos cuantos, dispuestos a ayudar en lo que sepamos.

Salu2

Y aprendemos de paso!

Tu solución está muy buena.

:aplauso:

JLMESEGUER 14/07/2010 03:05

boton en excel para meter datos en otra hoja con un input box
 
Buenos días.

Necesito ayuda sobre una asuntillo,

Tengo una hoja 3 que está referenciada a un boton y cuando hago click el codigo falla
si me voy a la hoja 4 el codigo funciona....pero si ejecuto el boton desde la macro en la hoja de codigo no desde el boton de la hoja.
Adjunto codigo:
Private Sub CommandButton2_Click()
Dim Cliente As String
Dim Obra As String
Dim Lugar As String
Dim Fecha As String
Dim Proyecto As String
Dim Informe As String
Dim strMsg As String
Cliente = InputBox("Inserte Nombre Cliente:", "Nuevo informe")
Obra = InputBox("Inserte Obra:", "Nuevo informe")
Lugar = InputBox("Inserte Lugar del ensayo:", "Nuevo informe")
Fecha = InputBox("Inserte fecha de realizacion del ensayo:", "Nuevo informe")
Proyecto = InputBox("Inserte Proyecto:", "Nuevo informe")
strMsg = "ha creado informe " & Cliente & ", " & Fecha & " ha sido creado"
MsgBox strMsg
Dim hoja As Worksheet
Dim celda As Characters
For Each hoja In Sheets
Hoja3.Range("I10") = Cliente
Hoja3.Range("CC10") = Informe
Hoja3.Range("G15") = Obra
Hoja3.Range("AW15") = Lugar
Hoja3.Range("BZ15") = Fecha
Hoja3.Range("K20") = Proyecto
Next hoja
Application.ScreenUpdating = False


Hoja4.Range("C4").Select ' aqui es donde me falla

Do While Not IsEmpty(ActiveCell)
'Pues eso, hasta que no encuentre una fila
'vacía que baje una fila para abajo
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell = Cliente

'================================================= =====================
Hoja4.Range("G4").Select
Do While Not IsEmpty(ActiveCell)
'Pues eso, hasta que no encuentre una fila
'vacía que baje una fila para abajo
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell = Obra
'================================================= =====================
Hoja4.Range("I4").Select


Do While Not IsEmpty(ActiveCell)
'Pues eso, hasta que no encuentre una fila
'vacía que baje una fila para abajo
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell = Lugar
'================================================= =====================
Hoja4.Range("K4").Select
Do While Not IsEmpty(ActiveCell)
'Pues eso, hasta que no encuentre una fila
'vacía que baje una fila para abajo
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell = Fecha
'================================================= =====================
Hoja4.Range("M4").Select

Do While Not IsEmpty(ActiveCell)
'Pues eso, hasta que no encuentre una fila
'vacía que baje una fila para abajo
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell = Proyecto
'================================================= =====================

Application.ScreenUpdating = True
End Sub

modfemme 24/08/2012 11:13

Respuesta: boton en excel para meter datos en otra hoja con un input box
 
Hello everybody!!

¿Alguien me puede ayudar con esto? He creado con ayuda del foro una macro en excel que permite ir copiando una fila de tal forma que se vaya almacenando según doy un botón. Lo malo es que al contener el comando 'AtiveCell' es necesario que yo seleccione la celda inicialmente. ¿Hay alguna manera para que esta acción no sea necesaria?
¡¡Muchas gracias!!

Sub Macrooooo()
Range("A1:F1").Select
Selection.Copy
Sheets("Hoja2").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveSheet.Paste
Sheets("Hoja1").Select
Application.CutCopyMode = False
End Sub


La zona horaria es GMT -6. Ahora son las 01:27.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.