Buscar valor máximo en fila y pegar encabezado en una celda

Y muchas gracias por ayudar a todo aquel que lo necesite.
Me gustaría conocer el código vba para hacer la siguiente orden:
Teniendo una tabla con encabezado y columna fija (a la izquierda)me gustaría que la orden recorra por fila esta tabla seleccionando el valor máximo y copiando en otra celda fuera de la tabla el encabezado de esa tabla que contiene el valor máximo .Una vez pegado borra los valores de esa columna y continúa con la siguiente fila de la tabla y hace misma orden hasta recorrer todas las filas de la tabla.
Aclarar, el cuerpo de la tabla tiene valores numéricos y la tabla es de aproximadamente 40 columnas y 50 filas.

1 Respuesta

Respuesta
1

H o l a:

Podrías explicarlo con imágenes y un solo ejemplo.

Pon 3 imágenes, la primera con los datos originales y me dices cuál es el ejemplo

La segunda, de cómo quieres el resultado

La tercera con la tabla después de borrar el dato del ejemplo.

Procura que en todas las imágenes se vean las filas y las columnas de excel.

 S a l u d o s

Me envías una dirección de Correos para poder adjuntarte lo que me pides?No se porque pero no me permite adjuntar imágenes capturadas a la respuesta.Gracias

 H o l a :

Envíame tu archivo de excel con los ejemplos detallados con colores e imágenes.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “” y el título de esta pregunta.

Enviado correo con foto de captura de pantalla.Imposible enviarte archivo por estar en otra computadora.Gracias

 H o l a :

Te anexo la macro, los datos deberán estar en la hoja1, el resultado quedará en la hoja1

Sub ValorMaximo()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    h2.Cells.Clear
    h1.Columns("A").Copy h2.[A1]
    '
    u = h1.Range("A" & Rows.Count).End(xlUp).Row
    For i = 2 To u
        ncol = 1
        nmax = 0
        For j = 2 To h1.Cells(1, Columns.Count).End(xlToLeft).Column
            If h1.Cells(u + 1, j) = "" Then
                If h1.Cells(i, j) > nmax Then
                    nmax = h1.Cells(i, j)
                    ncol = j
                End If
            End If
        Next
        If ncol > 1 Then
            h2.Cells(i, "B") = h1.Cells(1, ncol)
            h1.Cells(u + 1, ncol) = "x"
        End If
    Next
    h1.Rows(u + 1).ClearContents
    h2.Select
    MsgBox "Terminado"
End Sub

'

'

S a l u d o s . D a n t e   A m o r. Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas