Foros del Web » Soporte técnico » Ofimática »

Mover un Combobox al desplazarse mediante la scrollbar en Excel

Estas en el tema de Mover un Combobox al desplazarse mediante la scrollbar en Excel en el foro de Ofimática en Foros del Web. Hola, Mi problema está en que quiero desplazar un combobox (ActiveX) que tengo en una hoja de Excel (no en un formulario, sino en una ...
  #1 (permalink)  
Antiguo 06/07/2011, 05:00
 
Fecha de Ingreso: diciembre-2009
Mensajes: 52
Antigüedad: 14 años, 4 meses
Puntos: 0
Mover un Combobox al desplazarse mediante la scrollbar en Excel

Hola,

Mi problema está en que quiero desplazar un combobox (ActiveX) que tengo en una hoja de Excel (no en un formulario, sino en una hoja de excel) cuando se desplazen las barras de desplazamiento de Excel. De esta manera conseguiría que el combobox estuviera siempre visible para el usuario, ya que lo necesitará en todo momento.

Mi duda ya empieza en saber si es posible hacerlo. En Visual Basic 6 sé que se puede ya que yo lo conseguí (en un formulario) mediante el evento change de un Scroll:

Private Sub HScroll1_Change()

Combo1.Left = Combo1.Left + (HScroll1.Value - val) / 2

val = HScroll1.Value

End Sub

No sé si es posible capturar eventos en VBA como el movimiento de las scrollbar de Excel.


Tenía otra alternativa para conseguir que el combobox estuviera visible en todo momento, mediante dividir la pantalla de Excel en dos, pero por como está distribuido el contenido de la hoja no resulta demasiado cómodo.

Muchas Gracias.
  #2 (permalink)  
Antiguo 06/07/2011, 06:51
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
De acuerdo Mover un Combobox al desplazarse mediante la scrollbar en Excel

Una forma de "no complicarte la vida" es que incorpores lo siguiente al módulo de la hoja en la que deseas el efecto:
Código PHP:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ComboBox1.Top Target.Top
ComboBox1
.Left Cells(Target.Row"G").Left
End Sub 
Con lo anterior lograrás que el ComboBox "te acompañe" cada vez que seleccionas una celda.
Saludos, Cacho R.
  #3 (permalink)  
Antiguo 07/07/2011, 07:42
 
Fecha de Ingreso: diciembre-2009
Mensajes: 52
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Mover un Combobox al desplazarse mediante la scrollbar en Excel

Eso es lo que hago hasta ahora, exactamente hago esto:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

lista.Top = Target.Top - 20
lista.Left = Cells(Target.Row, Target.Column).Left - 50

End Sub

Para que la lista me aparezca en la celda superior de la seleccionada y algo centrada.
También permito que al seleccionar una celda en concreto la lista se fije al punto inicial o siga al usuario.

Pero esto es un "apaño" temporal hasta que consiga el objetivo inicial de conseguir que me siga la lista al hacer scroll.

Muchas gracias de todos modos, porque la solución es buena.
  #4 (permalink)  
Antiguo 07/07/2011, 14:52
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 8 meses
Puntos: 39
Respuesta: Mover un Combobox al desplazarse mediante la scrollbar en Excel

He cambiado esta Button1.Left = Cells(Target.Row, "e").Left linea por
Button1.Right = Cells(Target.Row, "e").Right

para que el control (Button1) se desplace del lado derecho de la columna y no izquierdo pero, me dá error precisamente en la linea Button1.Right = Cells(Target.Row, "e").Right

¿que le falta?

Gracias, una ves mas sigueindo aprendiendo
  #5 (permalink)  
Antiguo 07/07/2011, 16:15
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Mover un Combobox al desplazarse mediante la scrollbar en Excel

Por curiosidad, amigo Joao, te repregunto:

Tengo -más o menos- en claro que representa la propiedad "Left" (del botón y/o de la celda).

Ahora bien: ¿podrías transcribir -aquí en este hilo- que dice la ayuda del Visual Basic for Application (VBA) respecto de la propiedad "Right"?

Saludos, Cacho R.
  #6 (permalink)  
Antiguo 07/07/2011, 18:29
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 8 meses
Puntos: 39
Respuesta: Mover un Combobox al desplazarse mediante la scrollbar en Excel

Sigo buscando par que el boton se coloque en el lado derecho de la celda.

Gracias de todo todo

editado:

Right (Función)
Vea también Ejemplo Detalles

Devuelve un tipo Variant (String) que contiene un número especificado de caracteres del lado derecho de una cadena.

Sintaxis

Right(string, lenght)

La sintaxis de la función Right tiene estos argumentos con nombre:

Parte Descripción
string Requerido. Expresión de cadena desde la cual se devuelven los caracteres que están más a la derecha. Si string contiene Null, se devuelve Null.
lenght Requerido, un tipo Variant (Long). Expresión numérica que indica cuántos caracteres se van a devolver. Si es 0, se devuelve una cadena de longitud cero (""). Si es mayor o igual al número de caracteres en string, se devuelve la cadena completa.


Comentarios

Para determinar el número de caracteres en string, utilice la función Len.

Nota Utilice la función RightB con datos de byte incluidos en una cadena. En lugar de especificar el número de caracteres para devolver, longitud especifica el número de bytes.

Seguiré buscando para que el boton se coloque en el lado derecho de la celda.

Última edición por JoaoM; 07/07/2011 a las 18:40
  #7 (permalink)  
Antiguo 07/07/2011, 19:00
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 8 meses
Puntos: 39
Respuesta: Mover un Combobox al desplazarse mediante la scrollbar en Excel

Button1.Top = Target.Top
Button1.Left = 392

con esto obtengo la posicion deseada
  #8 (permalink)  
Antiguo 07/07/2011, 20:09
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
De acuerdo Respuesta: Mover un Combobox al desplazarse mediante la scrollbar en Excel

Mi estimado: Lo que muestras:
Right(string, lenght)

es el uso de "Right" como "función de texto", y no tiene nada que ver con el uso que le quieres dar.

Sin embargo, cuando escribes:
Button1.Right

deseas utilizar "Right" como propiedad (fíjate que es -casualmente- sobre lo que te he consultado).

De modo que: seguimos esperando tu investigación (o aprendizaje, como le llamas).
Saludos, Cacho.

P.D.
Forma parte de tu aprendizaje que sepas -a priori- que resultado vas a obtener. O sea:

Button1.Right te engregará un texto.

Button1.Right te entregará un número.

Sigue tu investigación, entonces.
  #9 (permalink)  
Antiguo 08/07/2011, 11:30
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 8 meses
Puntos: 39
Respuesta: Mover un Combobox al desplazarse mediante la scrollbar en Excel

Lo resolvi así.

Button1.Top = Target.Top
Button1.Left = 392

NO es que necesite el dato para algun libro, solo que SIN SABER, sin conocimientos, sin pratica, yo como bolsa me pongo a experiemtnar ciertos codigos y a adaptarlos (algunos) a ciertos planes, planes que algunos ya me sirven y otros solo pratico algunos minutos de descanso pero, RESULTA que caigo en manos de algun experto (como tu) que me hace dar vueltas sin tener el mas minimo conocimiento de programar codigo, ademas el ingles para mi, será como la mecánica de maquinaria pesada para ti.
Bueno, a ver donde caigo en la proxima jejejejejej

Gracias cacho, y no tomes mi comentario como algo fuera de tono, por lo contrario, al final me rio con mis pruebas sin sentido pero queriendo lograr algo, algunos si la mayoria NO
  #10 (permalink)  
Antiguo 08/07/2011, 13:37
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Mover un Combobox al desplazarse mediante la scrollbar en Excel

La verdad, Joao, me parece que es más sencillo decir: "No sé" que imputarle a los demás desconocimientos en otras áreas, cuestión -ésta- que nada tiene que ver con tu consulta específica.

¡Ahhhhh!!! ¡Por cierto!: Ya que te encuentras interesado, puedo mencionarte que en mis ratos de ocio juvenil me he dedicado a estudiar ingeniería electrónica. De modo que el diseño y control de maquinaria pesada no es -precisamente- un tema que me resulte "tan desconocido", como no lo son los temas de electrónica general, de matemáticas, de física o de química (sólo por mencionar aquello que ha constituído parte de la formación académica, y que no incluye hobbies como la dirección coral, la práctica deportiva o la asistencia solidaria y gratuita en Foros de todo tipo y especie).

En resumen: sugiero atenerse a lo que es pertinente de este Foro antes que deslizar comentarios de tono personal que no contribuyen -en nada- a las cordiales relaciones entre los participantes del mismo.

Por otra parte: me queda claro que no deseas tanto estudiar sobre las cuestiones que consultas, como que te brinden las respuestas -un tanto- servidas (es decir: lo opuesto al camino recorrido en este caso).
Ello será tenido en cuenta en lo sucesivo a fin de (y como se dice en mi país): "no gastar pólvora en chimangos".

Saludos, Cacho R.

P.D.
Si tras seleccionar Left hubieses presionado la tecla F1, hubieses entrado en la ayuda del VBA. En ella hubieses descubierto que NO EXISTE la propiedad Right, y que sólo fue un despropósito que -tan sólo con una tecla- hubieses desbaratado en no más de 30 segundos.

Ello habla a las claras de la falta de voluntad a la hora de aprender...
  #11 (permalink)  
Antiguo 08/07/2011, 17:10
 
Fecha de Ingreso: agosto-2007
Mensajes: 1.945
Antigüedad: 16 años, 8 meses
Puntos: 39
Respuesta: Mover un Combobox al desplazarse mediante la scrollbar en Excel

Doy por finalisada mi intervencion en este tema con lo siguiente:

MI comentario fue sin intencion de molestarte, ni a ti ni a nadie.
Algunas veces he dicho y repito que casi nada tengo conocimiento en programacion y codigo VBA, MENOS en los mas modernos programas para tal fin, aqui si que patino pero sin parar, por lo tanto ya es del conocimiento de quien lee o pueda haber leido mis comentarios sobre tal tema.
Veo que te molestó mi apreciacion sobre conocimientos o oficios, no fue con esa intencion, solo un comentario como pudiera ser como un chiste para la sonrisa, pudiera haber sido; yo se tanto de codigo VBA com otu de piloto de aviones, ¿quien me dice a mi que u no sabes de pilotagen aeronautico?, no lo se, por lo tanto no creo que lleve algo de ofensa mi comentario.

Te pido mil disculpas y si en algo soy humild, es el reconocimiento de mis actos, ahora reconosco que cometi un acto ofensivo (HACIA TU PERSONA) INOCENTEMENTE Y SIN INTENCION DE OFENDER A NADIE

Agradezco una ves mas todas las ayudas que tu me has proporcionado, las cuales me han servido.

Espero aceptes mis disculpas

Saludos suerte y prosperidad

Etiquetas: combobox, excel, mediante, scrollbar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:06.