Error 13
Hola amigo; siento molestarte otra vez, pero he tropezado con un problemilla que me trae de cabeza. He hecho una macro que en teoría hace lo siguiente: Ordena el rango desde A9 hasta AK según los valores de la columna Y. La última fila del rango coincide con la fila de la última celda escrita de la Columna D.
He creado 2 variables, 1 que nos lee la ultima celda escrita de Columna D y selecciona la fila y otra que lee la ultima celda de D y cuenta 21 celdas más para posicionarse en la columna Y (final del rango por el que se ordena).
En ocasiones no me funciona bien y estoy casi seguro que es porque las celdas tienen fórmulas y si la ultima celda de Y (dentro del rango a ordenar) no tienen valor pero tiene fórmula es cuando me sale el error 13 en tiempo de ejecución. He intentado solucionar esto por mi mismo, pero llevo 3 días y ya no se que más probar... Te pongo el código con la esperanza de que puedas detectar el problema y desde ya te doy las gracias por tu iempo.
Dim ultfilaD As Long
ultfilaD = ActiveSheet.Range("D65536").End(xlUp).Row
Dim ultceldaY As Long
ultceldaY = ActiveSheet.Range("D65536").End(xlUp).Offset(0, 21).
ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add(Range("Y10" & ultceldaY), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, _
255, 0)
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("Y10" & ultceldaY), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.ActiveSheet.Sort
.SetRange Range("A9:AK" & ultfilaD)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("Y10").Select
End Sub
P.D. Me gustaría que me enviaras un email con tu dirección postal, te quiero enviar un detalle porque llevas meses añudandome de forma totalmente altruista y no se como agradecerte. Había pensado en un detalle con motivo de la navidad, por favor enviame tu dirección, si te parece bien. Gracias.
He creado 2 variables, 1 que nos lee la ultima celda escrita de Columna D y selecciona la fila y otra que lee la ultima celda de D y cuenta 21 celdas más para posicionarse en la columna Y (final del rango por el que se ordena).
En ocasiones no me funciona bien y estoy casi seguro que es porque las celdas tienen fórmulas y si la ultima celda de Y (dentro del rango a ordenar) no tienen valor pero tiene fórmula es cuando me sale el error 13 en tiempo de ejecución. He intentado solucionar esto por mi mismo, pero llevo 3 días y ya no se que más probar... Te pongo el código con la esperanza de que puedas detectar el problema y desde ya te doy las gracias por tu iempo.
Dim ultfilaD As Long
ultfilaD = ActiveSheet.Range("D65536").End(xlUp).Row
Dim ultceldaY As Long
ultceldaY = ActiveSheet.Range("D65536").End(xlUp).Offset(0, 21).
ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add(Range("Y10" & ultceldaY), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, _
255, 0)
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("Y10" & ultceldaY), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.ActiveSheet.Sort
.SetRange Range("A9:AK" & ultfilaD)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("Y10").Select
End Sub
P.D. Me gustaría que me enviaras un email con tu dirección postal, te quiero enviar un detalle porque llevas meses añudandome de forma totalmente altruista y no se como agradecerte. Había pensado en un detalle con motivo de la navidad, por favor enviame tu dirección, si te parece bien. Gracias.
1 respuesta
Respuesta de Juan Carlos González Chavarría
1