Hola estimado, aquí te dejo un proyecto para que lo presentes en tu escritorio y plataforma de diseño y lo estudies...
'En este proyecto debes agregar a un formulario, lo siguiente:
'Dos Listbox (List1 y List2)
'Un TextBox y
'Un Command1, con el Captión "Agregar"
'Finalmente copia el siguiente código y pruébalo.
Option Explicit
'Contendrá la matriz que se va a dimensionar en forma
'dinámica
Dim MyArray() As String
'Para ir redimensionando la matriz anterior
Dim contador As Long
'Procedimiento para mostrar el array
Private Sub ImprimirArray()
Dim i As Integer
'Vaciamos el List1
List1.Clear
'Recorremos la matriz y...
For i = 0 To UBound(MyArray)
'Mostramos sus elementos en el List1
List1.AddItem MyArray(i)
Next
End Sub
'Procedimiento para analizar la matriz
Private Sub AnalisisArray()
'Variables que necesitamos
Dim i As Integer
Dim j As Integer
'Cuando un elemento se repite
Dim veces As Integer
'Inicializamos
veces = 0
'Vaciamos el List2
List2.Clear
'recorremos el List1 desde el primer elemento
For i = 0 To List1.ListCount - 1
'recorremos el list1, pero desde el final hacia el principio
'Hasta el valor de i +1
For j = List1.ListCount To i + 1 Step -1
' ... si es el mismo
If List1.List(i) = List1.List(j) Then
' elimina el elemento indicando el índice pues es duplicado
List1.RemoveItem (j)
'Aumentamos el contador en mas uno
veces = veces + 1
End If
Next
'Permitimos otros procedimientos del sistema
DoEvents
'Condiciones para mostrar informe en el List2
If veces = 0 And List1.List(i) <> "" Then
List2.AddItem List1.List(i) & vbTab & "Se halla: 1 ves."
ElseIf veces = 1 And List1.List(i) <> "" Then
List2.AddItem List1.List(i) & vbTab & "Se halla: " & veces + 1 & " veces."
veces = 0
ElseIf veces > 1 Then
List2.AddItem List1.List(i) & vbTab & "Se halla: " & veces + 1 & " veces."
veces = 0
End If
Next
End Sub
'Boton para agregar un nuevo elemento a la matriz.
Private Sub Command1_Click()
'Funcionará solo si hay información en el Text1
If Text1.Text <> "" Then
'Si es el primer elemento de la matriz
If contador = 0 Then
'Le damos esa dimensión
ReDim MyArray(contador)
'Cargamos el valor del Text1
MyArray(contador) = Text1.Text
'Aumentamos el contador en mas 1
contador = contador + 1
Else
'De lo contrario redimensionamos la matriz
'preservando la información anterior al valor de -contador-
'que ya viene con el mas uno
ReDim Preserve MyArray(contador)
'cargamos el nuevo valor
MyArray(contador) = Text1.Text
'Aumentamos a la variable contador
contador = contador + 1
End If
End If
'Una vez agregado el dato a la matriz, la mostramos
'en el List1.
ImprimirArray
'Analizamos e informamos en el List2
AnalisisArray
'Vaciamos el dato ingresado por el operador.
Text1.Text = ""
'Volvemos a mostrar la matriz original en el List1
'que por efecto del análisis ha quedado mostrando cada uno
'de los elementos de la matriz, y no los duplicados.
ImprimirArray
End Sub
Private Sub Form_Load()
'Alineamos al centro lo que se ingrese en Text1
Text1.Alignment = 2
'Inicializamos la variable contador
contador = 0
End Sub
Suerte y que todo ande bien.
Atentamente.
Elinv.