Compatibilidad entre Exceles

25/12/2007 - 21:08 por Ignacio Perez | Informe spam
Hola a todos:
Tengo una macro que me funciona perfectamente en Excel 2007 pero no lo hace
en versiones anteriores:
Select Case [Q23].Value
Case "Castellano"
Columna = "A"
Case "Cientifico"
Columna = "B"
Case "Ingles"
Columna = "C"
Case "Catalan"
Columna = "D"
Case "Gallego"
Columna = "E"
Case "Euskera"
Columna = "F"
End Select

Hoja4.Sort.SortFields.Clear
Hoja4.Sort.SortFields.Add Key:=Range( _
Columna & "2:" & Columna & "713"), SortOn:=xlSortOnValues,
Order:=xlAscending, DataOption:=xlSortNormal
With Hoja4.Sort
.SetRange Range("A1:G713")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Como veis ordena un rango y la he grabado con el grabador de macros por
desconocer otro metodo.
¿podiais alguno hacer que este codigo fuese compatible con todas las
versiones de Excel?
Y ya de paso ¿como puedo programar con mi Excel 2007 y hacerlo para todas
las versiones anteriores?

Un saludo

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
26/12/2007 - 00:52 | Informe spam
hola, Ignacio !

... una macro que me funciona... en Excel 2007 pero no lo hace en versiones anteriores:... ordena un rango
... la he grabado con el grabador de macros por desconocer otro metodo.
... hacer que este codigo fuese compatible con todas las versiones de Excel?
... como puedo programar con mi Excel 2007 y hacerlo para todas las versiones anteriores?



1) en cada version se agregan (o mejoran) caracteristicas, funciones, argumentos, objetos, propiedades, etc.
(p.e. el codigo que expones para ordenar por colores es una de las mejoras de la version 2007)

2) considera que (logicamente) las "novedades" NO estaran soportadas en las versiones enteriores

3) si necesitas que tus macros sean funcionales EN (todas y cualquiera de ?) las versiones anteriores...
-> programa en la version mas "baja" (anterior) a la que necesites darle "soporte" para tus macros

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.


__ el codigo expuesto __
Select Case [Q23].Value
Case "Castellano"
Columna = "A"
Case "Cientifico"
Columna = "B"
Case "Ingles"
Columna = "C"
Case "Catalan"
Columna = "D"
Case "Gallego"
Columna = "E"
Case "Euskera"
Columna = "F"
End Select
Hoja4.Sort.SortFields.Clear
Hoja4.Sort.SortFields.Add Key:=Range( _
Columna & "2:" & Columna & "713"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With Hoja4.Sort
.SetRange Range("A1:G713")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Respuesta Responder a este mensaje
#2 Ignacio Perez
26/12/2007 - 10:44 | Informe spam
Lo siento pero...no funciona
con el codigo que obtengo de la macro me obliga a activar la hoja y es una
hoja oculta con lo cual estoy en un buen problema.
Hoja4.Range("A1:F573").Sort Key1:=Range(Columna & "2:")

Un saludo


"Héctor Miguel" escribió:

hola, Ignacio !

> ... una macro que me funciona... en Excel 2007 pero no lo hace en versiones anteriores:... ordena un rango
> ... la he grabado con el grabador de macros por desconocer otro metodo.
> ... hacer que este codigo fuese compatible con todas las versiones de Excel?
> ... como puedo programar con mi Excel 2007 y hacerlo para todas las versiones anteriores?

1) en cada version se agregan (o mejoran) caracteristicas, funciones, argumentos, objetos, propiedades, etc.
(p.e. el codigo que expones para ordenar por colores es una de las mejoras de la version 2007)

2) considera que (logicamente) las "novedades" NO estaran soportadas en las versiones enteriores

3) si necesitas que tus macros sean funcionales EN (todas y cualquiera de ?) las versiones anteriores...
-> programa en la version mas "baja" (anterior) a la que necesites darle "soporte" para tus macros

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.


__ el codigo expuesto __
> Select Case [Q23].Value
> Case "Castellano"
> Columna = "A"
> Case "Cientifico"
> Columna = "B"
> Case "Ingles"
> Columna = "C"
> Case "Catalan"
> Columna = "D"
> Case "Gallego"
> Columna = "E"
> Case "Euskera"
> Columna = "F"
> End Select
> Hoja4.Sort.SortFields.Clear
> Hoja4.Sort.SortFields.Add Key:=Range( _
> Columna & "2:" & Columna & "713"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
> With Hoja4.Sort
> .SetRange Range("A1:G713")
> .Header = xlYes
> .MatchCase = False
> .Orientation = xlTopToBottom
> .SortMethod = xlPinYin
> .Apply
> End With



Respuesta Responder a este mensaje
#3 Héctor Miguel
26/12/2007 - 11:25 | Informe spam
hola, Ignacio !

Lo siento pero...no funciona
con el codigo que obtengo de la macro me obliga a activar la hoja
y es una hoja oculta con lo cual estoy en un buen problema.
Hoja4.Range("A1:F573").Sort Key1:=Range(Columna & "2:")



(generalmente) cuando "salen" algunos detalles extras (o que se habian quedado en el tintero)...
como el hecho de que (hasta ahora) mencionas que se trata de una hoja oculta -???-
-> es necesario hacer adaptaciones a las propuestas anteriores
(aunque aun no te hacia ninguna en especifico, solo te sugeria NO usar caracteristicas "nuevas")

1) en la linea de codigo que expones -> le sobra el caracter dos_puntos despues del numero de fila ;)

2) SI es posible administrar objetos y propiedades de hojas ocultas... siempre y cuando...
-> si "calificas" completamente sus referencias (en caso contrario se asume que se trata de la hoja activa) p.e.
-> cambia la instruccion que usas:
de: -> Hoja4.Range("A1:F573").Sort Key1:=Range(Columna & "2:")
a: -> Hoja4.Range("A1:F573").Sort Key1:=Hoja4.Range(Columna & "2")

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ las consultas anteirores __
> ... una macro que me funciona... en Excel 2007 pero no lo hace en versiones anteriores:... ordena un rango
> ... la he grabado con el grabador de macros por desconocer otro metodo.
> ... hacer que este codigo fuese compatible con todas las versiones de Excel?
> ... como puedo programar con mi Excel 2007 y hacerlo para todas las versiones anteriores?

1) en cada version se agregan (o mejoran) caracteristicas, funciones, argumentos, objetos, propiedades, etc.
(p.e. el codigo que expones para ordenar por colores es una de las mejoras de la version 2007)

2) considera que (logicamente) las "novedades" NO estaran soportadas en las versiones enteriores

3) si necesitas que tus macros sean funcionales EN (todas y cualquiera de ?) las versiones anteriores...
-> programa en la version mas "baja" (anterior) a la que necesites darle "soporte" para tus macros

__ el codigo expuesto __
> Select Case [Q23].Value
> Case "Castellano"
> Columna = "A"
> Case "Cientifico"
> Columna = "B"
> Case "Ingles"
> Columna = "C"
> Case "Catalan"
> Columna = "D"
> Case "Gallego"
> Columna = "E"
> Case "Euskera"
> Columna = "F"
> End Select
> Hoja4.Sort.SortFields.Clear
> Hoja4.Sort.SortFields.Add Key:=Range( _
> Columna & "2:" & Columna & "713"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
> With Hoja4.Sort
> .SetRange Range("A1:G713")
> .Header = xlYes
> .MatchCase = False
> .Orientation = xlTopToBottom
> .SortMethod = xlPinYin
> .Apply
> End With
Respuesta Responder a este mensaje
#4 Ignacio Perez
26/12/2007 - 11:56 | Informe spam
Muchas gracias Héctor, otra muestra de conocimiento sin limite.
Feliz Navidad y prospero año.

"Héctor Miguel" escribió:

hola, Ignacio !

> Lo siento pero...no funciona
> con el codigo que obtengo de la macro me obliga a activar la hoja
> y es una hoja oculta con lo cual estoy en un buen problema.
> Hoja4.Range("A1:F573").Sort Key1:=Range(Columna & "2:")

(generalmente) cuando "salen" algunos detalles extras (o que se habian quedado en el tintero)...
como el hecho de que (hasta ahora) mencionas que se trata de una hoja oculta -???-
-> es necesario hacer adaptaciones a las propuestas anteriores
(aunque aun no te hacia ninguna en especifico, solo te sugeria NO usar caracteristicas "nuevas")

1) en la linea de codigo que expones -> le sobra el caracter dos_puntos despues del numero de fila ;)

2) SI es posible administrar objetos y propiedades de hojas ocultas... siempre y cuando...
-> si "calificas" completamente sus referencias (en caso contrario se asume que se trata de la hoja activa) p.e.
-> cambia la instruccion que usas:
de: -> Hoja4.Range("A1:F573").Sort Key1:=Range(Columna & "2:")
a: -> Hoja4.Range("A1:F573").Sort Key1:=Hoja4.Range(Columna & "2")

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

__ las consultas anteirores __
>> > ... una macro que me funciona... en Excel 2007 pero no lo hace en versiones anteriores:... ordena un rango
>> > ... la he grabado con el grabador de macros por desconocer otro metodo.
>> > ... hacer que este codigo fuese compatible con todas las versiones de Excel?
>> > ... como puedo programar con mi Excel 2007 y hacerlo para todas las versiones anteriores?
>>
>> 1) en cada version se agregan (o mejoran) caracteristicas, funciones, argumentos, objetos, propiedades, etc.
>> (p.e. el codigo que expones para ordenar por colores es una de las mejoras de la version 2007)
>>
>> 2) considera que (logicamente) las "novedades" NO estaran soportadas en las versiones enteriores
>>
>> 3) si necesitas que tus macros sean funcionales EN (todas y cualquiera de ?) las versiones anteriores...
>> -> programa en la version mas "baja" (anterior) a la que necesites darle "soporte" para tus macros
>>
>> __ el codigo expuesto __
>> > Select Case [Q23].Value
>> > Case "Castellano"
>> > Columna = "A"
>> > Case "Cientifico"
>> > Columna = "B"
>> > Case "Ingles"
>> > Columna = "C"
>> > Case "Catalan"
>> > Columna = "D"
>> > Case "Gallego"
>> > Columna = "E"
>> > Case "Euskera"
>> > Columna = "F"
>> > End Select
>> > Hoja4.Sort.SortFields.Clear
>> > Hoja4.Sort.SortFields.Add Key:=Range( _
>> > Columna & "2:" & Columna & "713"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
>> > With Hoja4.Sort
>> > .SetRange Range("A1:G713")
>> > .Header = xlYes
>> > .MatchCase = False
>> > .Orientation = xlTopToBottom
>> > .SortMethod = xlPinYin
>> > .Apply
>> > End With



Respuesta Responder a este mensaje
#5 Héctor Miguel
26/12/2007 - 23:02 | Informe spam
hola, Ignacio ! (felicidades tambien para ti) :D

... otra muestra de conocimiento sin limite...



esto ha sido otra muestra (pero) NO de conocimiento "sin limite"
mas bien... de lo util que resulta el OE como lector de noticias
donde tengo creada una carpeta(bandeja) en la que voy acumulando(copiando/rescatando/...)
todas las respuestas (y consultas) que me han parecido de utilidad (por si en caso necesario)
despues es tan sencillo como hacer una busqueda (en OE) en dicha carpeta (y la puedes "armar")
-> preguntando por de: y/o asunto y/o mensaje: y/o fechas:

(claro que) si usas otro medio como lector de noticias, tendrias que crear un archivo de acumulacion de tips/respuestas
(p.e.) en un archivo de texto plano y usar aplicaciones (como el bloc de notas) que te permitan la caracteristica de busqueda
(no sera tan versatil ni con la agilidad del OE... pero de que seria de utilidad contar con ese archivo... ni lo dudes) :))

saludos,
hector.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida