Encontrar mayor valor en una columna vba

Tengo un userform el cual, en el evento initialize deseo cargar el mayor valor de una columna en un textbox; el problema radica que los registros de la columna están de la siguiente forma:

LTC-100, LTC-110, LTC120, LTC-300... Etc

Estan combinados texto con números.

Mil gracias a quien me pueda colaborar para solucionnar este impase.

Bendiciones

Respuesta
1

¿En cuál columna están los valores?

¿Siempre están separados por un guión?

Suponiendo que es la columna C, que los datos tienen guión, y que los datos están en la hoja3

Prueba esto:

Private Sub UserForm_Initialize()
  Dim s As String
  s = Sheets("Hoja3").Range("C1", Sheets("Hoja3").Range("C" & Rows.Count).End(3)).Address(external:=True)
  TextBox1 = Evaluate(Replace("=MAX(IFERROR(MID(@,SEARCH(""-"",@)+1,LEN(@))+0,0))", "@", s))
End Sub

---

Si los datos están ordenados de menor a mayor. Entonces el último dato es -el mayor. ¿En cuál fila inician tus datos?

Suponiendo que inician en la fila 2, entonces utiliza esto:

Private Sub UserForm_Initialize2()
  Dim s As String
  s = Sheets("Hoja3").Range("C1", Sheets("Hoja3").Range("C" & Rows.Count).End(3)).Address(external:=True)
  TextBox1 = Evaluate(Replace("=MAX(IFERROR(MID(@,SEARCH(""-"",@)+1,LEN(@))+0,0))", "@", s))
End Sub


NOTA:

Como puedes ver, hay varias incógnitas. Una cosa que debes tener en cuenta cuando haces una pregunta en un foro, es proporcionar toda la información relevante para ayudarte. Aunque esa información te parezca obvia, solamente es obvia para ti, porque conoces tus datos y cómo se encuentran en tu hoja. Si proporcionas los datos adecuados, será más fácil encontrar una solución.

Mil gracias por tu ayuda y disculpas por la falta de información .

Ya acondicione la primera sugerencia y en parte es lo que busco, solo que el resultado final sea no solo el numero mayor, si no el registro como tal completo con el texto LTC- "numero mayor".

Puedes poner toda la información que te estoy solicitando, para así entregarte una solución completa.

Nombre de hoja, columna, filas, etc

Y esto:

Si los datos están ordenados de menor a mayor. Entonces el último dato es -el mayor. ¿En cuál fila inician tus datos?

Nombre de la hoja "bd-Recursos" columna "A", los datos no están ordenados de menor a mayor y empiezan desde "A6" .

Nota: los datos están una tabla "T_recursos" con un encabezado llamado "Id_recursos"

No se si sea relevante esta información.

Pues falta información...

Siempre tienen estas letras al inicio: "LTC-", si es así, entonces utiliza esto:

Private Sub UserForm_Initialize()
  Dim s As String
  s = Sheets("T_recursos").Range("A6", Sheets("T_recursos").Range("A" & Rows.Count).End(3)).Address(external:=True)
  TextBox1 = "LTC-" & Evaluate(Replace("=MAX(IFERROR(MID(@,SEARCH(""-"",@)+1,LEN(@))+0,0))", "@", s))
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas