|
NavegaciónInicio de sesiónEn lÃneaEn este momento hay 0 usuarios y 85 invitados en lÃnea.
|
ARRAY DE CONTROLESHola: Quiero hacer una macro que cree un formulario que contenga diferentes controles dependiendo de un numero determinado (i). He estado buscando por la red y he encontrado este codigo: Dim mynewform As Object ' Add a checkbox to the new UserForm. ' With the new checkbox... Bien, pues no encuentro la forma de crear un for i = 1 to i para que me introduzca tantos checkbox como i tenga. Alguien me podría ayudar?
Un saludo
Enviado por fjlruiz el 15 Junio, 2010 - 18:19. Re: ARRAY DE CONTROLESEnviado por fjlruiz el 16 Junio, 2010 - 08:41.
Muchisimas gracias, pero ahora me ha aparecido otro problema mas. Estoy haciendo este tipo de macros en casa con la version 2010 y en el trabajo tengo 2007. Pues cuando he intentado habrirlo en el trabajo, me dice que no encuentra la libreria DLL. ¿como puedo actualizar las referencias en VBA? o ¿como puedo resolver este problema? Un saludo ![]() Re: ARRAY DE CONTROLESEnviado por pacomegia el 16 Junio, 2010 - 09:08.
No es por la versión de Excel, sino porque la dll esté instalada en el equipo o no. si cambia la versión de la biblioteca lo interpreta como referencias diferentes (porque son diferentes) Comprueba en el equipo del trabajo qué versión tienes instalada y añade una referencia a ella. Búscala en la lista de referencias disponibles. en mi equipo está en C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB (esto es de la 2007) porque para la 2010 tengo otra carpeta parecida C:\Program Files\Common Files\microsoft shared\VBA\VBA7 con la nueva versión de vba. Re: ARRAY DE CONTROLESEnviado por fjlruiz el 19 Junio, 2010 - 07:05.
El problema que tengo, es que nisiquiera me deja abrir el proyecto VBA, puedo ver los objetos pero no el codigo, y cuando voy a cambiar las referencias las puedo ver pero no puedo tocarlas tampoco. ![]() no se me ocurre...Enviado por pacomegia el 19 Junio, 2010 - 22:15.
no se me ocurre qué puede ser. haz una prueba guardando como .xls (97-2003) a ver si puedes editarlo. entiendo que sólo te pasa con este libro ¿no? que hasta ahora habías podido editar las macros y las referencias sin problemas. si tienes otro libro con macros abierto a la vez ¿puedes editarlo? Re: no se me ocurre...Enviado por fjlruiz el 23 Junio, 2010 - 19:25.
Si lo guardo como .xls luego no puedo abrir el libro, se me queda bloqueado Solo me pasa con este libro y creo que fue porque añadí una referencia desde excel 2010. De todas formas, la solución ha sido facil. Abro el libro con excel 2010 y copio el codigo en otro libro abierto con excel 2007, y ya funciona. A veces hay tantas cosas ocultas en excel y que no podemos tocar, que hay que recurrir a estos metodos tan rudimentarios, jeje.
|
cargando...
Buscar en necesitomas.comExcelómetroTemas nuevosLo más vistoHoy: |
Re: ARRAY DE CONTROLES
Un par de cosas o tres:
lo primero es que para que esto funcione hay que añadir una referencia a Microsoft visual basic for applications extensibility
lo segundo:
como el bucle va a crear varios controles, no pueden estar todos en el mismo sitio, así que por ejemplo altera su posición en vertical
tampoco se pueden llamar igual, así que altera su nombre.
a ver qué tal así:
Dim mynewform As Object
Dim mycheckbox As Object
Dim i
Set mynewform = Application.VBE.ActiveVBProject.VBComponents.Add(vbext_ct_MSForm)
' Add a checkbox to the new UserForm.
For i = 1 To 10 ' diez o los que sean
Set mycheckbox = mynewform.Designer.Controls.Add("Forms.CheckBox.1")
' With the new checkbox...
With mycheckbox
.Name = "Check" & i 'no puede haber varios con el mismo nombre
.Caption = "Check here"
.Left = 10
.Top = 10 * i 'para separarlo en vertical
.Height = 20
.Width = 60
End With
Next
------
Ya sé Excel, pero necesito más