A ver como podria hacer esto

18/09/2005 - 13:38 por Engel | Informe spam
Tengoun libro con 4 hojas una de ellas "Lice" esta oculta ya que los
usuarios de este libro no la deben ver, se trata de una hoja solo con
tres columnas "Numero", "Nombre", "Club", las otras tres hojas es
donde los usuarios de este libro introducen datos.

Bien, en cada una de estas tres hojas, tengo un boton al que asigno
una macro que deberia hacer lo siguiente:

Mediante una ventana que emergiera sobre la hoja, introducir nuevos
datos (Numero, Nombre y Club) a la hoja oculta y una vez introducido
el dato, ordenar por la columna A.

Lo he intentando construiendo una macro, pero no hay forma, alguna
idea, o lo que pretendo no es posible?.

Saludos,
Engel
 

Leer las respuestas

#1 Individuo Desconocido
18/09/2005 - 15:41 | Informe spam
Por supuesto que es posible, lo que tienes que hacer es crear un
formulario
con las herramientas de visual basic. Este nuevo Form será donde el usuario
introduzca los datos. No se hasta donde dominas lo de las macros. De modo
que lo explicaré como si no supieras nada, perdoname si doy
demasiadas explicaciones.

Alt + F11 para abrir el editor de Visual Basic
A continuación Insertar -> UserForm

En este nuevo Formulario insertas los cuadros de texto donde
debes meter esos datos
tres cajas de texto a las que puedes llamar: txt_numero
txt_nombre y txt_club respectivamente

Además deberías añadir un botón que diga insertar o algo asi.

Haces doble click en ese botón y te aparece la ventana donde debes
escribir el codigo.

El codigo para que inserte los datos en la hoja debería ser más o menos
este:


Private Sub CommandButton1_Click()
'copia los datos a la ultima fila
ultimafila = Sheets("lice").Cells(1, 4) + 1
Sheets("lice").Cells(ultimafila, 1).Value = txt_numero.Text
Sheets("lice").Cells(ultimafila, 2).Value = txt_nombre.Text
Sheets("lice").Cells(ultimafila, 3).Value = txt_club.Text
Sheets("lice").Cells(1, 4).Value = ultimafila

'ordenar
Sheets("lice").Columns("A:C").Sort Key1:=Sheets("lice").Range("A2"),
Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal

'oculta el formulario
UserForm1.Hide
End Sub


Importante:
La primera vez debes escribir el numero de filas que haya en la hoja LICE
en la celda D1, para que la macro sepa donde debe insertar la proxima
a partir de ahi, la macro se encargara de ir sumando este numero cada
vez que introduzca una fila nueva.


Ademas para que aparezca el formulario al pulsar los botones que hay en las
otras
hojas el codigo que tienes que poner en cada boton es sencillo:

Private Sub CommandButton1_Click()
UserForm1.Show
End Sub

"Engel" wrote...
Tengoun libro con 4 hojas una de ellas "Lice" esta oculta ya que los
usuarios de este libro no la deben ver, se trata de una hoja solo con
tres columnas "Numero", "Nombre", "Club", las otras tres hojas es
donde los usuarios de este libro introducen datos.

Bien, en cada una de estas tres hojas, tengo un boton al que asigno
una macro que deberia hacer lo siguiente:

Mediante una ventana que emergiera sobre la hoja, introducir nuevos
datos (Numero, Nombre y Club) a la hoja oculta y una vez introducido
el dato, ordenar por la columna A.

Lo he intentando construiendo una macro, pero no hay forma, alguna
idea, o lo que pretendo no es posible?.

Saludos,
Engel

Preguntas similares