Ayuda con problema en visual basic - cantidades mayores

Publicado en 'Programación' por jlopezr, 10 Mar 2015.





  1. jlopezr

    jlopezr Miembro maestro

    Registro:
    7 Dic 2013
    Mensajes:
    383
    Likes:
    41




    Muy buenas!
    Tengo un problema que no me sale y si hubiera algún alma caritativa para ayudarme con esto, estaría muy agradecido.
    Tengo una lista de Nombres cada uno con una CANTIDAD x de ventas, entonces lo que deseo hacer es que me muestre los 3 primeros nombres, con sus cantidades, los 3 mayores en número de orden; el siguiente código hace lo que quiero PERO, el problema es que si por ejemplo 2 vendedores tienen la misma cantidad ( vendedor1 tiene 100 ventas, vendedor2 tiene 100 ventas también), este código se saltea uno de ellos en ves de imprimir y contar el tercero, entonces solo cuenta 1 de ellos y siguen con los otros 2 números.. y se supone que debería contar los mayores ya sean repetidos o no.

    mias columnas y filas son asi:

    [​IMG]


    Private Sub CommandButton1_Click()


    Dim numeros(27) As Integer
    Dim mayores(3) As Integer
    Dim i, j As Integer
    Dim auxMayor As Integer
    Dim ultMayor As Integer
    Dim salida As String
    Dim nom(27) As String
    Dim asesor As String
    Dim ase(3) As String

    For i = 5 To 27
    numeros(i) = Cells(i, "D")
    nom(i) = Cells(i, "C")
    Next i

    ultMayor = 1000

    For j = 1 To 3
    auxMayor = 0
    asesor = ""

    For i = 5 To 27
    If numeros(i) >= auxMayor And numeros(i) <= ultMayor Then
    auxMayor = numeros(i)
    asesor = nom(i)
    End If
    Next i
    mayores(j) = auxMayor
    ultMayor = auxMayor
    ase(j) = asesor
    Next j

    Dim x As Integer
    x = 5
    For i = 1 To 3
    Cells(x, "G") = ase(i)
    Cells(x, "H") = mayores(i)
    x = x + 1
    Next i

    end sub


    GRAAAAAAAAAAAACIAS
     


  2. gnox

    gnox Miembro maestro

    Registro:
    3 Ene 2013
    Mensajes:
    793
    Likes:
    252
  3. jlopezr

    jlopezr Miembro maestro

    Registro:
    7 Dic 2013
    Mensajes:
    383
    Likes:
    41
    sry, el >= y <= lo puse cuando estaba probando, en realidad queda como > y <, con esto sale el codigo pero faltaria contar los que se repiten tmb.. gracias
     
  4. eduar2083

    eduar2083 Miembro frecuente

    Registro:
    26 Jul 2011
    Mensajes:
    224
    Likes:
    46
    Hola,
    No se te comprende muy bien. Te sugiero subir una imagen del caso especial que vas a tratar (de los que ambos tienen 100 por ejemplo) y el resultado erróneo que te arroja el VBA y una imagen del resultado que esperas obtener. De esa forma talvez quedaría más claro.

    Saludos.

    Creo que tu planteamiento anda mal. Deberías tener otra tabla(hoja/rango hablando de excel) donde figure el resumen total de ventas por Vendedor y en base a ello realizar el proceso de ranking de manera más transparente. Otra solución es realizar el conteo desde VBA pero tu código estaría muy pero muy limitado ya que estableces de manera fija el rango de los datos. Además este tipo de problemas los resuelve fácilmente Excel con sus tablas y gráficos dinámicos si no recuerdo mal, sin necesidad de recurrir a VBA.