Macro para copiar filas con condición en otras hojas
Tengo una macro que colorea las filas dependiendo de una condición para que luego otra macro las pase a otras hojas con el mismo nombre de la condición dependiendo del color que tengan, las macros son estas:
Sub ColorearFilas()
Dim n As Integer
Dim reg As Excel.Range
For n = 6 To 10000
If Range("E" & n) = "Condicion1" Then
Worksheets("Hoja1").Range("A" & n, "M" & n).Interior.Color = RGB(0, 255, 0)
Else
If Range("E" & n) = "Condicion2" Then
Worksheets("Hoja1").Range("A" & n, "M" & n).Interior.Color = RGB(192, 192, 192)
Else
If Range("E" & n) = "Condicion3" Then
Worksheets("Hoja1").Range("A" & n, "M" & n).Interior.Color = RGB(128, 128, 128)
Else
End If
End If
End If
Next
End SubSub copiafila_Con_Condicion1()
Set h1 = Sheets("Hoja1")
Set h2 = Sheets("Condicion1")
h1.Select
ini = "A"
fin = "M"
For i = 2 To h1.Range(ini & Rows.Count).End(xlUp).row
si = 0
For j = 1 To Range(fin & 1).Column
Cells(i, j).Select
If Cells(i, j).Interior.ColorIndex = 4 Then
si = 1
Else
si = 0
End If
Next
If si = 1 Then
Range(ini & i & ":" & fin & i).Select
h1.Range(ini & i & ":" & fin & i).Copy h2.Range(ini & h2.Range(ini & Rows.Count).End(xlUp).row + 1)
Selection.Delete Shift:=xlUp
i = i - 1
End If
Next
End SubTengo tres problemas con esto, el primero es que esta limitado a 10000 registros, el segundo es que tarda demasiado ya que va revisando condición por condición si tengo 10000 registros revisa los 10000 tres veces y el tercer problema es que no se como poner para que pase los registros que no tienen datos en la columna "B" y los pase a otra hoja llamada "SIN DATOS"
Necesito que no tarde tanto ya que aveces se cuelga (primero porque colorea los 10000 registros por condición y segundo porque revisa condición por condición los 10000 registros, es decir pasa 4 veces los 10000 registros) y pasar los registros que no tienen datos a otra hoja.
Hola ElsaMatildequisiera hacerle una consulta adicional de ser posible, quisiera saber si en un formulario se puede agregar un textbox donde se registre un dato cualquiera y este dato reemplace en un rango de la hoja activa, agradeceré el apoyo con dicha información - Cristian Rodriguez