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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 KL
18/09/2005 - 21:33 | Informe spam
Hola Engel,

Creo que este es el momento de plantearte el prescindir las celdas
combinadas (que al fin y al cabo son un adorno nada mas). Fijate que si
tuvieras los encabezados de las columnas sin combinar podrias usar sin
problemas la siguiente solucion:

1) Asegurate que no haya celdas combinadas y que el texto de los encabezados
este todo en una fila
2) Selecciona toda la tabla incluidos los encabezados y ponles el nombre
"Database" (menu Insertar>Nombre>Definir)
3) En la hoja coloca un boton con el siguiente codigo vinculado:

Sub MostrarFormulario()
ActiveSheet.ShowDataForm
End Sub

4) Protege la hoja

Saludos,
KL

"Engel" wrote in message
news:
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
Respuesta Responder a este mensaje
#3 KL
19/09/2005 - 07:39 | Informe spam
Hola Engel,

Creo que te habia entendido mal. Si es en la hoja 'Lice' donde tienes que
introducir los datos y dicha hoja esta oculta entonces olvida el comentario
de las celdas combinadas. Y ademas en este caso, dado que la hoja 'Lice'
esta oculta, creo qu tendras que usar los formularios VBA tal como te
comenta el 'Individuo Desconocido'

Saludos,
KL


"KL" wrote in message
news:es$
Hola Engel,

Creo que este es el momento de plantearte el prescindir las celdas
combinadas (que al fin y al cabo son un adorno nada mas). Fijate que si
tuvieras los encabezados de las columnas sin combinar podrias usar sin
problemas la siguiente solucion:

1) Asegurate que no haya celdas combinadas y que el texto de los
encabezados este todo en una fila
2) Selecciona toda la tabla incluidos los encabezados y ponles el nombre
"Database" (menu Insertar>Nombre>Definir)
3) En la hoja coloca un boton con el siguiente codigo vinculado:

Sub MostrarFormulario()
ActiveSheet.ShowDataForm
End Sub

4) Protege la hoja

Saludos,
KL

"Engel" wrote in message
news:
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




Respuesta Responder a este mensaje
#4 Héctor Miguel
19/09/2005 - 08:39 | Informe spam
hola, Engel !

... libro con 4 hojas una... "Lice" esta oculta... solo con tres columnas "Numero", "Nombre", "Club"
... las otras tres hojas es donde los usuarios de este libro introducen datos.
... en cada una de estas tres hojas, tengo un boton al que asigno una macro que deberia hacer lo siguiente:
... introducir nuevos datos (Numero, Nombre y Club) a la hoja oculta y... ordenar por la columna A [...]



otra alternativa a las que ya te han propuesto [por si no quieres desarrollar un formulario] creo que pudiera servir +/- como sigue:
asigna a los botones la siguiente macro que escribas en un modulo de codigo 'normal' ==Sub Agrega_Ordena()
Dim Campo, Dato(3), Sig As Byte
Campo = Array("Numero", "Nombre", "Club")
With Worksheets("Lice")
For Sig = LBound(Campo) To UBound(Campo)
Captura:
Dato(Sig) = Trim(StrConv(InputBox("Indica el nuevo " & Campo(Sig), ""), vbProperCase))
If Dato(Sig) = "" _
Then If MsgBox("Cancelar la operacion?", vbYesNo, "") = vbNo _
Then GoTo Captura Else Exit Sub
Next
With .Range("a65536").End(xlUp).Offset(1)
For Sig = LBound(Campo) To UBound(Campo)
.Offset(, Sig) = Dato(Sig)
Next
End With
.Columns("a:c").Sort _
Key1:=.Range("a1"), _
Order1:=xlAscending, _
Header:=xlYes
End With
End Sub

si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#5 Engel
19/09/2005 - 13:35 | Informe spam
On Sun, 18 Sep 2005 14:41:38 +0100, "Individuo Desconocido"
wrote:


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






Gracias a todos por las aportaciones en este tema, al final me he
decidido por esta opcion, y funciona perfectamente.

Saludos,
Engel
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida