combobox avanzado

06/10/2008 - 12:55 por atlanticoingenieros | Informe spam
Hola a todos, tengo una duda que espero me resolvais, se trata de que
tengo un combobox alimentado por una lista con nombre que he creado
gracias al blog http://jldexcelsp.blogspot.com/ y de momento funciona
muy bien.

Quiero ir un poco mas alla pero no se como, lo que quiero lograr es
que en una columna concreta de mi hoja, cada vez que pinche en una
celda de esa columna aparezca el combobox me de a elegir una opcion y
una vez elegida la guarde en esa celda.

Saludos a todos.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
06/10/2008 - 15:27 | Informe spam
hola, 'anonimo/a' !

... tengo un combobox alimentado por una lista con nombre que he creado
gracias al blog http://jldexcelsp.blogspot.com/ y de momento funciona muy bien.
Quiero ir un poco mas alla pero no se como, lo que quiero lograr es que en una columna concreta de mi hoja
cada vez que pinche en una celda de esa columna aparezca el combobox me de a elegir una opcion
y una vez elegida la guarde en esa celda.



aqui encuentras varias conversaciones que tratan sobre el asunto que planteas -> http://tinyurl.com/3qagke

saludos,
hector.
Respuesta Responder a este mensaje
#2 atlanticoingenieros
06/10/2008 - 17:55 | Informe spam
On 6 oct, 15:27, "Héctor Miguel"
wrote:
hola, 'anonimo/a' !

> ... tengo un combobox alimentado por una lista con nombre que he creado
> gracias al bloghttp://jldexcelsp.blogspot.com/y de momento funciona muy bien.
> Quiero ir un poco mas alla pero no se como, lo que quiero lograr es que en una columna concreta de mi hoja
> cada vez que pinche en una celda de esa columna aparezca el combobox me de a elegir una opcion
> y una vez elegida la guarde en esa celda.

aqui encuentras varias conversaciones que tratan sobre el asunto que planteas ->http://tinyurl.com/3qagke

saludos,
hector.


voy a leerlo inmediatamente, ya os contaré.
Respuesta Responder a este mensaje
#3 atlanticoingenieros
06/10/2008 - 20:22 | Informe spam
Gracias a vuestros consejos ya he logrado parte de lo que queria, es
decir me pongo en una celda y ahora voy al combo box selecciono y...
tachan!! ya tengo el valor en la celda, pero falta un detalle:

Quiero que el combo box aparezca en el mismo sitio donde esta la celda
y que cuando elija desaparezca hasta que pique en la celda siguiente y
vuelva a aparecer en la celda siguiente, ya que si la lista es muy
larga tengo que ir hasta arriba.

saludos y gracias.
Respuesta Responder a este mensaje
#4 Héctor Miguel
07/10/2008 - 03:28 | Informe spam
hola, (...) ???

... falta un detalle:
Quiero que el combo box aparezca en el mismo sitio donde esta la celda
y que cuando elija desaparezca hasta que pique en la celda siguiente y vuelva a aparecer en la celda siguiente
ya que si la lista es muy larga tengo que ir hasta arriba...



en el mismo enlace que apunta a varias consultas, hay una con asungo de:
"Validaciones de Multiples celdas con ComboBox"

(segun yo) es exactamente lo que solicitas (solo que no viste suficientes conversaciones)

saludos,
hector
Respuesta Responder a este mensaje
#5 atlanticoingenieros
07/10/2008 - 12:52 | Informe spam
On 7 oct, 03:28, "Héctor Miguel"
wrote:
hola, (...) ???

> ... falta un detalle:
> Quiero que el combo box aparezca en el mismo sitio donde esta la celda
> y que cuando elija desaparezca hasta que pique en la celda siguiente y vuelva a aparecer en la celda siguiente
> ya que si la lista es muy larga tengo que ir hasta arriba...

en el mismo enlace que apunta a varias consultas, hay una con asungo de:
"Validaciones de Multiples celdas con ComboBox"

(segun yo) es exactamente lo que solicitas (solo que no viste suficientes conversaciones)

saludos,
hecto



Me estoy liando, tengo nociones de c++ pero el vb me deja frito, este
es el codigo que he puesto pero me da un error en la linea:

"""""""""""""""""Set cboTemp ws.OLEObjects("TempCombo")""""""""""""""""""""""""

Gracias por la ayuda.

El codigo a continuación:

Private Sub ComboBox1_Change()

End Sub

Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

End Sub

Private Sub ComboBox1_GotFocus()
If ActiveCell.Column = 8 Then
ComboBox1.ListFillRange = "RAZONSOCIAL2"
ComboBox1.LinkedCell = ActiveCell.Address
Else: ComboBox1.LinkedCell = ""
End If
End Sub

Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger,
ByVal Shift As Integer)

If KeyCode = vbKeyReturn Then SendKeys "{esc}"
End Sub

Private Sub ComboBox1_LostFocus()
ComboBox1.ListFillRange = ""
ComboBox1.LinkedCell = ""
ComboBox1 = ""
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel
As Boolean)
Dim str As String
Dim cboTemp As OLEObject
Dim ws As Worksheet
Set ws = ActiveSheet
Cancel = True
Set cboTemp = ws.OLEObjects("TempCombo")
On Error Resume Next
With cboTemp
'clear and hide the combo box
.ListFillRange = ""
.LinkedCell = ""
.Visible = False
End With
On Error GoTo errHandler
If Target.Validation.Type = 3 Then
'if the cell contains a data validation list
Application.EnableEvents = False
'get the data validation formula
str = Target.Validation.Formula1
str = Right(str, Len(str) - 1)
With cboTemp
'show the combobox with the list
.Visible = True
.Left = Target.Left
.Top = Target.Top
.Width = Target.Width + 5
.Height = Target.Height + 5
.ListFillRange = ws.Range(str).Address
.LinkedCell = Target.Address
End With
cboTemp.Activate
End If
errHandler:
Application.EnableEvents = True
Exit Sub
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim str As String
Dim cboTemp As OLEObject
Dim ws As Worksheet
Set ws = ActiveSheet
Set cboTemp = ws.OLEObjects("TempCombo")
On Error Resume Next
If cboTemp.Visible = True Then
With cboTemp
.Top = 10
.Left = 10
.ListFillRange = ""
.LinkedCell = ""
.Visible = False
.Value = ""
End With
End If
errHandler:
Application.EnableEvents = True
Exit Sub
End Sub
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida