+ sobre último dato
Hola Mauricio.
Antes de nada felicitarte por tu página, empleas un lenguaje claro y comprensible, sobre todo, paro los neófitos como yo en esto del BV. He seguido tus consejos y sin ningún problema me funcionó el ejemplo que tan amablemente me has remitido.
Ahora, ampliando un poco la pregunta que te formulé, desearía, si no te causara muchas molestias, me dijeras como podría adaptar ese código que me has facilitado, el cual te adjunto al final, para que en lugar de evaluar los datos de una columna, lo hiciera sobre dos (pe.- sobre la columna "A" y "B" y que el resultado lo mostrara en "C1" y "D1" respectivamente), yo lo he intentado pero tengo que reconocer que no se puede, en dos días, realizar un trabajo de muchos años.
Sobre el tema que nos ocupa tengo otra consulta para realizarte, pero como la única forma que tenemos de valorar vuestro trabajo es con la puntuación que realizamos al finalizar las preguntas, considero que debo formular una nueva consulta.
Un saludo y nuevamente gracias por tu altruismo.
--------
Option Explicit
Public Function UltimoValor(ByVal Rango As Range, Optional Criterio As String) As Variant
Dim UltimaFila As Long
Dim PrimerFila As Long
Dim co1 As Long
PrimerFila = Rango.Cells(1, 1).Row
If Rango.Cells(Rango.Rows.Count, 1).Value = "" Then
UltimaFila = Rango.Cells(Rango.Rows.Count, 1).End(xlUp).Row
Else
UltimaFila = Rango.Cells(Rango.Rows.Count, 1).Row
End If
If UltimaFila >= PrimerFila Then
If Criterio = "" Then
UltimoValor = Rango.Cells(UltimaFila, 1).Value
Else
For co1 = UltimaFila To PrimerFila Step -1
If Rango.Cells(co1, 1).Value Like Criterio Then
UltimoValor = Rango.Cells(co1, 1).Value
Exit For
End If
Next co1
If IsEmpty(UltimoValor) Then
UltimoValor = "Sin datos"
End If
End If
Else
UltimoValor = "Sin datos"
End If
End Function
Antes de nada felicitarte por tu página, empleas un lenguaje claro y comprensible, sobre todo, paro los neófitos como yo en esto del BV. He seguido tus consejos y sin ningún problema me funcionó el ejemplo que tan amablemente me has remitido.
Ahora, ampliando un poco la pregunta que te formulé, desearía, si no te causara muchas molestias, me dijeras como podría adaptar ese código que me has facilitado, el cual te adjunto al final, para que en lugar de evaluar los datos de una columna, lo hiciera sobre dos (pe.- sobre la columna "A" y "B" y que el resultado lo mostrara en "C1" y "D1" respectivamente), yo lo he intentado pero tengo que reconocer que no se puede, en dos días, realizar un trabajo de muchos años.
Sobre el tema que nos ocupa tengo otra consulta para realizarte, pero como la única forma que tenemos de valorar vuestro trabajo es con la puntuación que realizamos al finalizar las preguntas, considero que debo formular una nueva consulta.
Un saludo y nuevamente gracias por tu altruismo.
--------
Option Explicit
Public Function UltimoValor(ByVal Rango As Range, Optional Criterio As String) As Variant
Dim UltimaFila As Long
Dim PrimerFila As Long
Dim co1 As Long
PrimerFila = Rango.Cells(1, 1).Row
If Rango.Cells(Rango.Rows.Count, 1).Value = "" Then
UltimaFila = Rango.Cells(Rango.Rows.Count, 1).End(xlUp).Row
Else
UltimaFila = Rango.Cells(Rango.Rows.Count, 1).Row
End If
If UltimaFila >= PrimerFila Then
If Criterio = "" Then
UltimoValor = Rango.Cells(UltimaFila, 1).Value
Else
For co1 = UltimaFila To PrimerFila Step -1
If Rango.Cells(co1, 1).Value Like Criterio Then
UltimoValor = Rango.Cells(co1, 1).Value
Exit For
End If
Next co1
If IsEmpty(UltimoValor) Then
UltimoValor = "Sin datos"
End If
End If
Else
UltimoValor = "Sin datos"
End If
End Function
1 Respuesta
Respuesta de valedor
1