UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo


No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1RESUELTO Podrá hacerse esto en un userform?? el 01/06/17, 11:01 pm

Visor


Saludos amigos del foro
Lo siguiente se puede hacer en una hoja
ActiveSheets.Buttons(45,34,29).select
lo que hace es crear un botón , es decir una macro que crea botones, o podría crearse textboxs....
Mi pregunta es, se podrá crear textbox en un formulario con las ordenes de otro botón??
Esto serviría para crear nuevos registros poco a poco en un formulario que se va ingresando informacion con diferentes fechas en el encabezado mientras que en las filas están los registros de los individuos
Gracias por sus comentarios o demostraciones

jhon1904

avatar
Hola visor

subo una posible solución, nos comenta haber si es asi.

saludos,
Archivos
Textbox.xlsm
No tienes los permisos para descargar los archivos.
(25 KB)


_________________
Jhon Mayorquin
https://exceljohnmayorquin.blogspot.com.co/

Visor


Gracias Jhon por lo que me envias es genial, eso resuelve muchas cosas. Sin embargo me he apoyado en tu codigo y he armado como quisiera que funcione.
Como veras no logro que salgan las demas filas de textbox mas cercanas a la anterior fila.
Ademas me gustaria que salgan en funcion de su nombre si es posible
Fecha : TbxFch1....hasta  TbxFch20
Descripcion : TbxDesc1....TbxDesc20
Nota: TbxNota1......TbxNota20      (este debe estar en formato numero)
Observaciones: TbxObs1.....TbxObs20

Como ahora estan saliendo es asi:
fch, Desc, nota, observ
1.....2..    ..3..   ..4
5.....6..    ..7..  ..8

Podria ser mejor para mi arreglo si salen asi:

fch, Desc, nota, observ
1.....21......41.....61
2.....22
3.....23
.    .
.    .
.    .
20   40   60    80

o también

1        1        1       1
2        2        2       2
3        3        3       3
.
.
.
20     20       20     20

Espero que se pueda realiza asi, entonces cuando quiero hacer un nuevo registro aparecerán cuatro nuevos textbox
Gracias por el apoyo
Saludos
No se algo pasa no puedo subir el archivo

Visor


Gracias Jhon por lo que me envias es genial, eso resuelve muchas cosas. Sin embargo me he apoyado en tu codigo y he armado como quisiera que funcione.
Como veras no logro que salgan las demas filas de textbox mas cercanas a la anterior fila.
Ademas me gustaria que salgan en funcion de su nombre si es posible
Fecha : TbxFch1....hasta  TbxFch20
Descripcion : TbxDesc1....TbxDesc20
Nota: TbxNota1......TbxNota20      (este debe estar en formato numero)
Observaciones: TbxObs1.....TbxObs20

Como ahora estan saliendo es asi:
fch, Desc, nota, observ
1.....2..    ..3..   ..4
5.....6..    ..7..  ..8

Podria ser mejor para mi arreglo si salen asi:

fch, Desc, nota, observ
1.....21......41.....61
2.....22
3.....23
.    .
.    .
.    .
20   40   60    80

o también

1        1        1       1
2        2        2       2
3        3        3       3
.
.
.
20     20       20     20

Espero que se pueda realiza asi, entonces cuando quiero hacer un nuevo registro aparecerán cuatro nuevos textbox
Gracias por el apoyo
Saludos
No se algo pasa no puedo subir el archivo

subo un link

[url=https://www.dropbox.com/s/ww1kybfav4rzxq6/A%C3%B1adir registros agregando Textbox con]https://www.dropbox.com/s/ww1kybfav4rzxq6/A%C3%B1adir%20registros%20agregando%20Textbox%20con%20macros.xlsm?dl=0[/url]

jhon1904

avatar
hola visor

se han realizado las modificación espero te sirva


saludos,
Archivos
Añadir registros agregando Textbox con macros.xlsm
No tienes los permisos para descargar los archivos.
(32 KB)


_________________
Jhon Mayorquin
https://exceljohnmayorquin.blogspot.com.co/

Visor


Eso esta genial!!!
Gracias ,,,,gracias....gracias

Lo único que veo es que al volver a abrir el formulario, las filas de texboxs añadidos desaparecen, no se mantienen para la próxima apertura.
Ejemplo, si de 20 filas que máximo espero tener, he añadido hasta 5 filas, estas deberían mostrarse en la próxima apertura y si en ésta añado la sexta fila, la próxima apertura deberán verse las 6 filas y así sucesivamente....
no se si se podría completar con este paso.

jhon1904

avatar
lo unico que se me ocurre es crear un contador en algun rango de la hoja, asi podrás retomar los textbox creados


espero te sirva
saludos,
Archivos
Añadir registros agregando Textbox con macros.xlsm
No tienes los permisos para descargar los archivos.
(40 KB)


_________________
Jhon Mayorquin
https://exceljohnmayorquin.blogspot.com.co/

Visor


Ha quedado de maravilla, es excelente pensé que ésto no se podía realizar pero demuestras que si te estoy muy agradecido por esta macro servirá para muchísimos casos.

solo tengo una única pregunta en que parte del código se controla la separación entre cada fila de textboxs?
 he tratado de encontrarlo pero no doy con esa parte... en la parte final del código agregar en 0 + a he colocado -5 + a y lo que hace es mover cada vez hacia arriba, esto en lo que mas cercano encuentro para hacer la separación mas corta pro no lo hace bien.

Te quedo muy agradecido

jhon1904

avatar
Hola,


a qui es donde se va controlando las filas de los textbox cuando se agrega uno nuevo,  a = 25 * aa,  donde aa Indica la cantidad de Textbox que hay que crear en fila no en columnas, en este caso es un contador que inicia en 1 y termina en la cantidad que haya en el rango A1 de la hoja.


saludos,


_________________
Jhon Mayorquin
https://exceljohnmayorquin.blogspot.com.co/

Visor


Gracias Jhon Comprendo, pero lo que quiero saber es sobre la separación entre fila y fila, si 

En tu codigo en esta parte tienes  
    .Init Frame1, j, i, 0 + b, (i - 1) * 0 + a, BtnWidth + F, BtnHeight 

yo le puse -5

  .Init Frame1, j, i, 0 + b, (i - 1) * -5 + a, BtnWidth + F, BtnHeight 

y algo parece que quiere ayudar pero no lo suficiente, por que lo que hace es algo como movilizarse hacia arriba
Espero se pueda algo

jhon1904

avatar
Hola

Por eso mismo, es vez de colocar a= 25 * aa, colaca, a=20 *aa, esto indica el valor de la propiedad Top de los textbox la cual va hacer la separación de las filas.


saludos,


_________________
Jhon Mayorquin
https://exceljohnmayorquin.blogspot.com.co/

Visor


Perfecto!! Gracias por la aclaración...ahora si ya puedo proceder con la utilización de este modo de ingreso de datos.Te agradezco mucho todo el apoyo que me has dado
Tema solucionado

Visor


Saludos Jhon
Es genial la solucion que me brindaste. Ahora bien trate de aplicarlo y me doy cuenta de que no funciona la macro de mostrar informacion en los textbox que se crean con el botón agregar. No se porque no podría funcionar si sin estos eventos funciona muy bien. Es decir selecciono un nombre con el comboboxs y se muestra informacion de la hoja en los textbox y si quiero colocar informacion solo escribo en los textbox y se va a la hoja.

previamente en Userform_Activate()    tengo
CbxCatEval.List = Array("DOCENCIA", "PAE", "AUTONOMO") 'Corresponde a tres hojas similares

Código:
Private Sub CbxNomina_Change()
Dim X As Variant
Dim i As Long

    Application.ScreenUpdating = False
 If CbxCatEval.ListIndex = -1 Then
  MsgBox "Seleccionar hoja y alumno", vbCritical
  Exit Sub
End If
X = CbxNomina.ListIndex + 8
TbxCod = Sheets(CbxCatEval.Text).Range("A" & X)


For i = 1 To 20 'para el caso de FECHAS
  Controls("TbxFch" & i) = Sheets(CbxCatEval.Text).Cells(6, i + 2)
Next

For i = 21 To 40 'para el caso de DESCRIPION
  Controls("TbxDesc" & i) = Sheets(CbxCatEval.Text).Cells(7, i - 18)
Next
For i = 41 To 60 'para el caso de NOTA
  Controls("TbxNota" & i) = Sheets(CbxCatEval.Text).Cells(X, i - 38)
Next
For i = 61 To 80 'para el caso de OBSERVACIONES
  Controls("TbxObs" & i) = Sheets(CbxCatEval.Text).Cells(X, i - 35)
Next

'++++++++++++++++++++++++++++++++++++++++++++++++++
For i = 81 To 83 'para el caso de Resultados
  Controls("TextBox" & i) = Sheets(CbxCatEval.Text).Cells(X, i - 58)
Next

    Application.ScreenUpdating = True

End Sub

Me da error aquí 

Controls("TbxFch" & i) = Sheets(CbxCatEval.Text).Cells(6, i + 2)

y dice que no se encuentra el objeto especificado

Que estaría ocurriendo aquí? como hago funcionar este evento mostrar con los textbox que se crea con tal genial diseño.

Supongo que en realidad no existen los textbox???

Gracias y disculpame

jhon1904

avatar
hola visor,

tiene que dar como solucionado este tema ya que la pregunta que relacionas no tiene que ver con el tema que creaste, 

crea otro tema de acuerdo a consulta y sube siempre un archivo de ejemplo.

saludos,


_________________
Jhon Mayorquin
https://exceljohnmayorquin.blogspot.com.co/

Visor


Ok jhonn es cierto eso hare...

Visor


Saludos, muy agradecido por la valiosa colaboración de Jhon1904 quien ha logrado resolver este tema util para mis actividades academicas
Tema solucionado

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.