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

Insertar un vector ordenado sin elementos repetidos en un comboBox

Estas en el tema de Insertar un vector ordenado sin elementos repetidos en un comboBox en el foro de Ofimática en Foros del Web. Hola. Necesito un poco de ayuda con este código. Me salta el error 9 en tiempo de ejecución al seleccionar la celda activa y no ...
  #1 (permalink)  
Antiguo 05/11/2014, 03:13
 
Fecha de Ingreso: noviembre-2014
Mensajes: 2
Antigüedad: 10 años
Puntos: 0
Pregunta Insertar un vector ordenado sin elementos repetidos en un comboBox

Hola. Necesito un poco de ayuda con este código. Me salta el error 9 en tiempo de ejecución al seleccionar la celda activa y no entiendo bien por qué, puesto que en teoría la sintaxis de la instrucción es correcta. El resto del código parece funcionar.

Agradecería mucho una ayuda. Dejo el código aquí:

Private Sub ComboBox1_Change()

Dim Index() As String
Dim i, j, k As Integer
Dim count As Integer
Dim aux As Double
count = 0
Dim celda As Range


Application.ScreenUpdating = False
ComboBox1.Clear
Application.Goto ActiveWorkbook.Sheets(“Water”).Range(“B2”)



'Contabiliza el numero de celdas de la columna C que tienen el mismo valor del parémtro DN en la columna B"

While ActiveCell <> ""

If ActiveCell = Worksheets("Enerfis").Range("J8").Value Then
count = count + 1
If count = 1 Then
Set celda = ActiveCell
End If
End If
ActiveCell.Offset(1, 0).Select
Wend

'Rellena el vector con los valores contabilizados

For i = 0 To count - 1
ActiveCell = celda
Index(i) = ActiveCell.Offset(0, i + 1).Value
ActiveCell.Offset(1, 0).Select
Next i

'Ordena el vector de menor a mayor

For i = 0 To count - 1
For j = i + 1 To count - 1
If Index(i) > Index(j) Then
aux = Index(j)
Index(j) = Index(i)
Index(i) = aux
End If
Next j
Next i

'Elimina los elementos repetidos del vector

For i = 0 To count - 1
For j = i + 1 To count - 1
If Index(i) = Index(j) Then
For k = j To count - 2
Index(k) = Index(k + 1)
Next k
End If
Next j
Next i

'Carga los datos del vector en el comboBOx

For i = 0 To count - 1
ComboBox1.List = Index(i)
Next i

ComboBox1.Activate

End Sub
  #2 (permalink)  
Antiguo 10/11/2014, 07:49
 
Fecha de Ingreso: noviembre-2014
Mensajes: 2
Antigüedad: 10 años
Puntos: 0
Seleccionar elemento de un combobox!

Hola buenas. Hace una semana postee un código que necesitaba arreglo. Ya lo he solucionado pero tengo otro problema. No puedo seleccionar elementos del combobox, creo que también me valdría copiando el elemento seleccionado en otra celda pero tampoco se como hacerlo. Dejo el código. Necesito ayuda!! Gracias

Private Sub ComboBox1_DropButtonClick()

Dim vec(10) As String
Dim Index(35) As String
Dim i, j, k As Integer
Dim count, num As Integer
Dim aux As String
Dim valor As String


count = 0
valor = a
num = 0

ComboBox1.Clear
Application.ScreenUpdating = False
Worksheets("Water").Select
ActiveSheet.Range("B2").Select

'Contabiliza el numero de celdas de la columna C que tienen el mismo valor del parémtro DN en la columna B"

While ActiveCell <> ""

If ActiveCell = Worksheets("Enerfis").Range("J8").Value Then
count = count + 1
If count = 1 Then
row = ActiveCell.row
End If
End If
ActiveCell.Offset(1, 0).Select
Wend

On Error GoTo 0

'Rellena el vector con los valores contabilizados

Worksheets("Water").Cells(row, 2).Select
For i = 0 To count - 1
Index(i) = ActiveCell.Offset(0, 1).Value
ActiveCell.Offset(1, 0).Select
Next i

'Ordena el vector de menor a mayor

For i = 0 To count - 1
For j = i + 1 To count
If Index(i) > Index(i) Then
aux = Index(i)
Index(i) = Index(j)
Index(j) = aux
End If
Next j
Next i

'Elimina los elementos repetidos del vector

For i = 0 To count - 1
For j = i + 1 To count - 1
If Index(i) = Index(j) Then
Index(j) = valor
End If
Next j
Next i
j = 0
For i = 0 To count - 1
If Index(i) <> valor Then
vec(j) = Index(i)
j = j + 1
num = num + 1
End If
Next i

'Carga los datos del vector en el comboBOx

For i = 0 To num - 1
ComboBox1.AddItem vec(i)
Next i

ComboBox1.Activate

End Sub

Etiquetas: celda, combobox, elementos, funcion, min, ordenado, repetidos, vector
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 11:10.