Visual Basic para Aplicaciones - Crear TextBox en tiempo de ejecución

Life is soft - evento anual de software empresarial
   
Vista:

Crear TextBox en tiempo de ejecución

Publicado por BioK (11 intervenciones) el 11/03/2009 19:31:37
Hola todos estoy haciendo una Macros para corel y Necesito crear textBox en tiempo de ejecución y los tengo que crear dentro de un Loop porque cada vez que ejecuto el macros tengo que crear una cantidad distinta dependiendo de ciertos parametros. Alguien tiene alguna idea de como hacerlo. Encontre muchas cosas pero son para VB como esta...

1
2
3
4
Dim txt As New TextBox
txt.Text = "hola"
txt.Location = New Point(48, 64)
Controls.Add(txt)

pero no anda en VBA..busque dentro del foro tambien pero no hay una buena respuesta al tema. Espero me puedan ayudar muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

RE:Crear TextBox en tiempo de ejecución

Publicado por JuanC (431 intervenciones) el 11/03/2009 22:24:08
no sé en Corel, en Excel es algo así

Set tb = UserForm1.Controls.Add("Forms.TextBox.1")

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Crear TextBox en tiempo de ejecución

Publicado por BioK (11 intervenciones) el 12/03/2009 16:33:39
uh gracias loco! Eso me anduvo de maravilla ya lo probe y es lo que andaba buscando. Saludos desde Corrientes.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Referenciar TextBox creado

Publicado por BioK (11 intervenciones) el 13/03/2009 14:27:26
Hola como habia dicho anteriormente me anduvo bien el codigo que me paso JuanC pero el tema es que necesito despues extraer los datos de esos TextBox y no lo estoy pudiendo hacer!!! El codigo que tengo es el siguiente

topFreq = 60
leftFreq = 200

For i = 1 To N

Dim txtFreq As TextBox
Set txtFreq = Form.Controls.Add("Forms.TextBox.1", CStr("textFreq" & CStr(i)))


txtFreq.Top = topFreq
txtFreq.Left = leftFreq

topFreq = topFreq + 30

Next i


'*********

Private Sub CommandButton1_Click()

variableX = txtFreq1.Text

End Sub

Ayuda por favor!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JuanC

RE:Referenciar TextBox creado

Publicado por JuanC (431 intervenciones) el 13/03/2009 18:39:24
tenés que usar el nombre del componente

variableX = textFreq1.Text

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Referenciar TextBox creado

Publicado por BioK (11 intervenciones) el 14/03/2009 01:30:18
si si eso ya lo hice pero no me anda....
Fijate que en la parte de abajo del codigo anterior puse esto...

Private Sub CommandButton1_Click()

variableX = txtFreq1.Text

End Sub

no me anduvo...estoy en el horno! ja Sigo buscando como hacerlo...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JuanC

RE:Referenciar TextBox creado

Publicado por JuanC (431 intervenciones) el 14/03/2009 11:08:00
pusiste eso txtFreq1
pero como nombre del componente pusiste textFreq1 (con 'e')
lo cual no es lo mismo...

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Referenciar TextBox creado

Publicado por BioK (11 intervenciones) el 16/03/2009 19:53:50
Estaba probando nomas y se me habra pasado lo de la "e" pero este codigo asi no me anda. Le puse la "e" para que la CajaDeTexto no tenga el mismo nombre de la definición Dim txtFreq As TextBox para ver si andaba pero nada

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub UserForm_initialize()
topFreq = 60
leftFreq = 200
 
For i = 1 To N
 
Dim txtFreq As TextBox
Set txtFreq = Form.Controls.Add("Forms.TextBox.1", CStr("txtFreq" & CStr(i)))
txtFreq.Top = topFreq
txtFreq.Left = leftFreq
 
topFreq = topFreq + 30
 
Next i
end Sub
 
'*********
 
Private Sub CommandButton1_Click()
Dim variableX as integer
 
variableX = txtFreq1.Text
 
End Sub

La propiedad Nombre del Controls.Add no me esta andando...

Saludos desde de Corrientes. BioK
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Referenciar TextBox creado

Publicado por gerardo (1 intervención) el 22/02/2012 09:02:39
lo q tenes q hacer es declarar tu variable de tipo control

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
dim tstFreq1 as Control
 
Private Sub UserForm_initialize()
...
Set txtFreq = Form.Controls.Add("Forms.TextBox.1", CStr("txtFreq" & CStr(i)))
...
end sub
 
 
Private Sub CommandButton1_Click()
Dim variableX as integer
 
variableX = txtFreq1.Text
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Referenciar TextBox creado

Publicado por Albeiro Martinez Henao amartinez@inelma.com.co (1 intervención) el 28/03/2013 19:24:33
Hola, Yo tengo el mismo problema, Si encuentro la solucion le informaré, igualmente si lo puedes solucionar, por favor me colaboras con el codigo. Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Referenciar TextBox creado

Publicado por <sergio glez (2 intervenciones) el 24/10/2013 21:35:06
yo hice esta prueba en excel
en el módulo de vb se inserta una forma, se inserta un ComandButton1

doble clik a la forma y se pega el siguiente código
espero les ayude


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Private Sub CommandButton1_Click()
' para usar los textbox creados
        For i = 1 To 20
                nombre = "Caja" & Str(i)
                With Controls.Add("Forms.Textbox.1", nombre, False)
                    a = Controls(nombre).Text
                    ' y los pasamos a la hoja de excel
                    Cells(i, 1) = a
                End With
         Next
End Sub
 
 
Private Sub UserForm_initialize()
'para crear los textbox
         baja = 15
        For i = 1 To 10
                nombre = "Caja" & Str(i)
                With Controls.Add("Forms.Textbox.1", nombre, True)
                .Top = 100 + baja
                .Left = 129
                .Text = nombre
                End With
                baja = baja + 15
 
         Next
         baja = 15
         For i = 11 To 20
                nombre = "Caja" & Str(i)
                With Controls.Add("Forms.Textbox.1", nombre, True)
                .Top = 100 + baja
                .Left = 200
                .Text = nombre
                End With
                baja = baja + 15
 
         Next
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Referenciar TextBox creado

Publicado por Alexis (1 intervención) el 30/09/2014 23:30:37
Hola a todos, espero me puedan ayudar, estoy programando un formulario en VBA 7.0 donde creo checkbox y textbox en tiempo de ejecución. Utilizando el código que ha dejado Sergio Glez me resulto bien, pero ahora quiero asignarle eventos a estos controles, la pregunta es, ¿como se hace?, espero me haya explicado bien y espero me puedan ayudar. Muchas gracias!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Referenciar TextBox creado

Publicado por seba64 (3 intervenciones) el 23/12/2015 23:19:37
Magnifico!!

Ahora. ¿Saben como puedo hacer que los textbox se agreguen dentro de un frame?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar