Formula con 5 escenarios distintos para analizar 18.000 lineas
Hector un saludo...
Con tus mismos datos ...
Te envio una sugerencia ... solo para los primeros dos casos...
al final de las 18,000 lineas en la casilla A1... si deseas le agregas "*** FINAL".. para finalizar o ejecutar por partes..
... o finaliza en la linea 20,000... como lo veras...
he creado hojas "Caso01"... "Caso02"... a los cuales traslado los valores
en las columnas A y B... escribe la linea y el caso... para verrificar...
... te divertira ?
----------------------------------------------
Dim sinLinea As Single
Dim sinCaso01, sinCaso02, sinCaso03, sinCaso04, sinCaso05, sinCaso06 As Single
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
sinLinea = 3: sinCaso01 = 1: sinCaso02 = 1 '.... etc... etc
Do
If Cells(sinLinea, "J") > 0 And Cells(sinLinea, "K") = 0 _
And Cells(sinLinea + 1, "J") = 0 And Cells(sinLinea + 1, "K") > 0 _
And Cells(sinLinea, "J") = Cells(sinLinea + 1, "K") Then
Cells(sinLinea, "A") = sinLinea: Cells(sinLinea + 1, "A") = sinLinea + 1
Cells(sinLinea, "B") = "Caso01": Cells(sinLinea + 1, "B") = "Caso01"
Range("A" & Trim(Str(sinLinea)) & ":L" & Trim(Str(sinLinea + 1))).Copy
Sheets("Caso01").Select
Sheets("Caso01").Range("A" & Trim(Str(sinCaso01))).Select
ActiveSheet.Paste
Worksheets("Hoja2 (2)").Select
sinLinea = sinLinea + 2
ElseIf Cells(sinLinea, "J") = 0 And Cells(sinLinea, "K") > 0 _
And Cells(sinLinea + 1, "J") > 0 And Cells(sinLinea + 1, "K") = 0 _
And Cells(sinLinea + 1, "J") < Cells(sinLinea, "K") Then
Cells(sinLinea, "A") = sinLinea: Cells(sinLinea + 1, "A") = sinLinea + 1
Cells(sinLinea, "B") = "Caso02": Cells(sinLinea + 1, "B") = "Caso02": sinLinea = sinLinea + 2
Range("A" & Trim(Str(sinLinea)) & ":L" & Trim(Str(sinLinea + 1))).Copy
Sheets("Caso02").Select
Sheets("Caso02").Range("A" & Trim(Str(sinCaso01))).Select
ActiveSheet.Paste
Worksheets("Hoja2 (2)").Select
sinLinea = sinLinea + 2
'---- continuar elseif...
Else
sinLinea = sinLinea + 1: If sinLinea > 20000 Then Stop
End If
Loop While Cells(sinLinea, "J") <> "*** FINAL"
End Sub
-----------------------
bye