Un par de dudas con formularios

08/12/2005 - 20:04 por ~ jose ~ | Informe spam
Hola,
tengo un par de preguntas sobre formularios,
quiero hace un formulario y quiero que me aparezca por defecto la fecha
de hoy
en un cuadro de texto.
El codigo creo que seria algo así:
Private Sub TextBox2_Change()
Range("B11").Select
ActiveCell.FormulaR1C1 = 'Que tengo que poner aqui? como se inserta la
funcion =HOY()
End Sub
Otra pregunta,
En el mismo formulario quiero tener un desplegable donde yo pueda
elegir valores que yo he puesto en "Hoja3" en las celdas "A1" y "A2"
Esto se hacerlo mediante una hoja de dialogo pero mediante un
formulario de VB no se hacerlo.
Gracias

Preguntas similare

Leer las respuestas

#1 KL
08/12/2005 - 20:11 | Informe spam
Hola Jose,

Lo que describes y lo que hace tu codigo se contradicen, pero creo que es cuestion de terminologia. Suponiendo que el codigo hace lo
que quieres, cambialo de la siguiente manera:

Private Sub TextBox2_Change()
Range("B11") = DATE
End Sub


Saludos,
KL


"~ jose ~" wrote in message news:
Hola,
tengo un par de preguntas sobre formularios,
quiero hace un formulario y quiero que me aparezca por defecto la fecha
de hoy
en un cuadro de texto.
El codigo creo que seria algo así:
Private Sub TextBox2_Change()
Range("B11").Select
ActiveCell.FormulaR1C1 = 'Que tengo que poner aqui? como se inserta la
funcion =HOY()
End Sub
Otra pregunta,
En el mismo formulario quiero tener un desplegable donde yo pueda
elegir valores que yo he puesto en "Hoja3" en las celdas "A1" y "A2"
Esto se hacerlo mediante una hoja de dialogo pero mediante un
formulario de VB no se hacerlo.
Gracias
Respuesta Responder a este mensaje
#2 ~ jose ~
08/12/2005 - 20:18 | Informe spam
Hola,
osea qeu las fórmulas de Excel (por ejemplo "=HOY()") no valen para
insertarlas en un formulario de VB?
otra pregunta, algun comentario sobre mi segunda pregunta en el post
anterior?

PD igual seria mejor pillar algun manual sobre formularios (o hojas de
dialogos), no?,
el caso es qeu Héctor me ha dado varias direcciones (entre ellas se le
coló una porno, jejeje) pero como están en ingles no me jalo rosca.
Las traduzco con un traductor on-line pero claro, me traduce el texto y
las fórmulas (o códigos), ufff un coñazo asi no entiendo nada.
Respuesta Responder a este mensaje
#3 KL
08/12/2005 - 20:39 | Informe spam
Hola de nuevo,

Tu segunda pregunta:

Hay varias formas de hacerlo

1) VBA. Usando la propiedad RowSource del cuadro combinado. Dentro del modulo VBA del formulario creas el siguiente procedimiento
asociado al evento Initialize del formulario. Suponiendo que el cuadro combinado se llama ComboBox1, prueba con esto:

Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Hoja3!$A$1:$A$2"
End Sub

o esto:

Private Sub UserForm_Initialize()
ComboBox1.RowSource = _
Sheets("hoja3").Range("A1:A2").Address(, , , True)
End Sub

2) VBA. Usando la propiedad List del cuadro combinado. Dentro del modulo VBA del formulario creas el siguiente procedimiento
asociado al evento Initialize del formulario. Suponiendo que el cuadro combinado se llama ComboBox1, prueba con esto:

Private Sub UserForm_Initialize()
lista = ThisWorkbook.Sheets("hoja3").Range("A1:A2")
ComboBox1.List = lista
End Sub

3) Manual. Usando la propiedad RowSource del cuadro combinado. En el formulario selecciona el cuadro combinado en cuestion, haz clic
derecho sobre el, elige la opcion 'Propiedades'. En la ventana de "Propiedades' busca la propiedad RowSource y escribe alli algo
asi: "Hoja3!$A$1:$A$2" (sin las comillas)

Saludos,
KL


"~ jose ~" wrote in message news:
Hola,
tengo un par de preguntas sobre formularios,
quiero hace un formulario y quiero que me aparezca por defecto la fecha
de hoy
en un cuadro de texto.
El codigo creo que seria algo así:
Private Sub TextBox2_Change()
Range("B11").Select
ActiveCell.FormulaR1C1 = 'Que tengo que poner aqui? como se inserta la
funcion =HOY()
End Sub
Otra pregunta,
En el mismo formulario quiero tener un desplegable donde yo pueda
elegir valores que yo he puesto en "Hoja3" en las celdas "A1" y "A2"
Esto se hacerlo mediante una hoja de dialogo pero mediante un
formulario de VB no se hacerlo.
Gracias
Respuesta Responder a este mensaje
#4 KL
08/12/2005 - 21:07 | Informe spam
Hola Jose,

osea qeu las fórmulas de Excel (por ejemplo "=HOY()") no valen para
insertarlas en un formulario de VB?



1) Algunas (no todas) de las as FUNCIONES (no las confundamos con formulas) de hoja de calculo se pueden usar desde VBA, pero deben
traducirse al ingles (p.ej.: SUMA = SUM) . Si atraves de VBA se quiere introducir la funcion como parte de una formula de hoja de
calculo, la sintaxis es mas o menos la siguiente:

notacion R1C1:
Range("B11").FormulaR1C1 ="=SUM(RC[-1]:R[1]C[-1])"

o usando la notacion habitual:
Range("B11").Formula ="=SUM(A1:A2)"

tambien creo que se puede usar las funciones sin traducir de la siguienete manera, pero este metodo tiene mas desventajas que
ventajas:
Range("B11").FormulaLocal ="=SUMA(A1:A2)"

Si se quiere usar una funcion de hoja de calculo directamente dentro de VBA entonces la sintaxis es la siguiente:

Application.WorksheetFunction.Sum(Range("A1:A2"))
o
WorksheetFunction.Sum(Range("A1:A2"))
o
Application.Sum(Range("A1:A2"))

En todo caso es recomendable consultar la Ayuda (desde el editor VBA) para saber si la funcion concreta esta disponible en VBA. La
funcion TODAY (HOY) no esta disponible en VBA, pero existe la funcion DATE que es nativa de VBA.

2) De todas formas para lo que estas haciendo aunque la funcion HOY estuviera disponible seria inutil ya que es volatil. Por eso si
la introduces mediante:

Range("B11").ActiveCell.Formula ="=Today()"

reculcalara con el paso del tiempo y al final del dia mostrara otra fecha :-) Por eso habra que convertirla en una constante, p.ej.
asi:

Range("B11") = Evaluate("=Today()")

o asi:

Range("B11") = [Today()]

pero si ya tenemos la funcio DATE lo de arriba no merece la pena.

otra pregunta, algun comentario sobre mi segunda pregunta en el post
anterior?



esta de camino

PD igual seria mejor pillar algun manual sobre formularios (o hojas de


dialogos), no?,

ninca esta demas - esta demostrado

el caso es qeu Héctor me ha dado varias direcciones (entre ellas se le
coló una porno, jejeje)



a mi tambien me paso con este http://www.bmsltd.ie/MVP/Default.htm (basta con cambiar la extension de ".ie" a ".co.uk" [como lo era
antes] y voila!)

pero como están en ingles no me jalo rosca.
Las traduzco con un traductor on-line pero claro, me traduce el texto y
las fórmulas (o códigos), ufff un coñazo asi no entiendo nada.



Este es el problema que hay con las webs sobre Excel - hay pocas en espanol. Hasta que Hector se anime a hacer su sitio habra que
recurrir a los manuales o aprender ingles.

Saludos,
KL
Respuesta Responder a este mensaje
#5 ~ jose ~
08/12/2005 - 21:27 | Informe spam
En el formulario que estoy creando al probarlo (sin terminarlo) he
visto qeu me pone los nº como texto, ya se que hay un código para
ello, pero creo qeu para el nivel que tengo me voy a meter con las
hojas de dialogos, espero que sean mas sencillas que los frormularios.
Ahora una custión, en un cuadro de edición para que se escriba lo que
pongo en la hoja hay que hacerlo desde VB no?
ggggggggg!!!!!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida