Que falta al código que funciona bien en Excel 2007 y no así en el 2003.

Hola Dam… de nuevo solicitando tu apoyo, tengo este código que al final te lo abrevio; en el Excel 2007 funciona a la perfección, pero al cambiarlo al Excel 2003 No. Funciona así: a través de un UserForm1 ingreso un folio (ó Número), al presionar “enter” lo pega en el Rango (“M998”) y finalmente de acuerdo a esta condición lo copia de (M998) y coloca en el Rango (A1001) para después ordenarlo en forma ascendente. Esta última parte del proceso, de buscar el lugar correspondiente en la columna y colocarlo en su posición no la realiza. Podrías decirme que cosa del código no acepta el Excel 2003 y decirme la formula que requiere. Muchas gracias.
Private Sub Cmbingrese_Click() 'Código para ingresar nuevos folios a la base de datos.
'Application.ScreenUpdating = False
'Dim folio As Double
'folio = Txtfolio.Value
'Range("M998") = folio
If Range("Q3") = 1 Then
Range("A1000:B1000").Select
Selection.Insert Shift:=xlDown
'Txtfolio = ""
Range("M998:N998").Select
Selection.Copy
Range("A1001").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1001:B2000").Select 'Empieza ordenación de menor a mayor el Rango "A1001:B2000"
ActiveWorkbook.Worksheets("Portal").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Portal").Sort.SortFields.Add Key:=Range("A1001"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Portal").Sort
.SetRange Range("A1001:B2000")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
'.Size = 8
End With
'Txtfolio.SetFocus
End If


If Range("Q3") =...

…….

........
End sub

1 Respuesta

Respuesta
1

Te regreso el archivo por aquí, porque no puedo por correo

https://www.dropbox.com/s/xbemvhx84x62ykn/corporativo1.xls

Realiza tus pruebas y me comentas.

Saludos. Dam
Si es lo que necesitas.

Hola Dam...

Hace unos momentos te envié el archivo... Muchas gracias.

El problema es al ordenar, la instrucción para ordenar en 2003, es de esta forma, ejemplo:

Selection.Sort Key1:=Range("C4"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Tip:

Graba una macro ordenando el rango de celdas que necesitas y trata de adaptar el código si quieres que lo revise, envíame el correo con los ejemplos y me dices cuál es el rango a ordenar con colores y comentarios

Hola Dam...

Acabo de probar el archivo que me regresaste en una computadora con excel 2003 y sigue igual, al ingresar el folio lo deja en la primera fila de la columna, le falta colocarlo en el lugar que le corresponde... espero puedas ayudarme con este pequeñísimo defectito, gracias de nuevo...

Disculpame, te envié el mismo archivo que tu me enviaste.

Ahora si, este es el modificado

https://www.dropbox.com/s/riw1yahyrjf8x7n/corporativo1%20dam.xls

Saludos. Dam

Si es lo que necesitas.

Te sirvió la macro, si tienes alguna duda avísame, de lo contrario, podrías finalizar la pregunta.

Hola Dam… Mil disculpas, estoy re integrándome de nuevo, sobre la formula que me hiciste el favor de procesarme debo decirte que esta bien, solo que tiene algo raro. Al ingresar varios folios a la misma zona , el primero lo acomoda bien en su posición, el segundo lo deja en la primer fila de la misma columna en cuestión, el tercero lo acomoda en su posición pero se trae el segundo y lo acomoda también su lugar, y así sucesivamente (Uno si, el siguiente no, el siguiente sí junto con el anterior, etc.), creo que debe tener algún símbolo que no corresponda. Esto solo ustedes. Te agradezco las atenciones y de nuevo disculpas por esta tardanza. Muchas gracias.

Si funciona bien, lo que pasa es que tienes esta instrucción:

Application.ScreenUpdating = False

Coméntala para que te actualice en línea los cambios, los ajustes solamente los hice cuando Q3 = 2

If Range("Q3") = 2 Then
Range("E1000:F1000").Select
Selection.Insert Shift:=xlDown
Txtfolio = ""
Range("M998:N998").Select
Selection.Copy
Range("E1001").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("E1001:F2000").Select 'Ordena de menor a mayor el Rango "E1001:F2000"
'ActiveWorkbook.Worksheets("Portal").Sort.SortFields.Clear
'ActiveWorkbook.Worksheets("Portal").Sort.SortFields.Add Key:=Range("E1001"), _
' SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
' xlSortTextAsNumbers
Selection.Sort Key1:=Range("E1001"), Order1:=xlAscending, _
Header:=xlGuess, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
'With ActiveWorkbook.Worksheets("Portal").Sort
' .SetRange Range("E1001:F2000")
' .Header = xlNo
' .MatchCase = False
' .Orientation = xlTopToBottom
' .SortMethod = xlPinYin
' .Apply
'End With
Txtfolio.SetFocus
End If

Te dejo el archivo con el cambio comentando la línea: Application.ScreenUpdating = False

https://www.dropbox.com/s/riw1yahyrjf8x7n/corporativo1%20dam.xls

Saludos. Dam

Podrías finalizar la pregunta.

Hola Dam... ya pude finalizar esta tarea, me costó un poquito pero salió perfecto. De nuevo Muchas Gracias por tu apoyo...y seguimos en la batalla.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas