............ Foro Excel
Si no lo has hecho aún: REGISTRATE!!!

Inompatibilidades con Funciones de Herramientas para Analisis (Analysis Tool Pak) 2007 vs. anteriores

Ver el tema anterior Ver el tema siguiente Ir abajo

Inompatibilidades con Funciones de Herramientas para Analisis (Analysis Tool Pak) 2007 vs. anteriores

Mensaje por GalileoGali el Sáb Abr 26, 2008 1:07 pm

Otro de los temas de Compatibilidad 2007 con versiones anteriores, esta el problema del uso de las funciones propias del Analisys Tool Pak, o Paquete de Herramientas para Analisis (El problema segun parece esta solamente planteado en las versiones "Non-English").
Ocurre que en XL2007 las funciones estan, pero ya no forman parte de un Addin ("xla"en este caso), sino que estan en iguakdad de condiciones con el resto de las funciones. No obstante ser esto una importante ventaja, dicha mejora complica el panorama al abrir archivos hechos en una version anterior al 2007 en el 2007 y viceversa.
Aca va un codigo que tome prestado y adapte con algunas intromisiones mias , la fuente original le pertenece a Ron de Bruin (MS MVP EXCEL). de paso agregue un instalador del Addin por si no estuviera cargado ( versiones anteriores al 2007)

Código:

Dim estadoaddin As Boolean
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
If estadoaddin Then
AddIns("Herramientas para análisis").Installed = estadoaddin
End If
End Sub
Private Sub Workbook_Open()
  Dim English_ATP As Variant
    Dim Local_ATP As Variant
    Dim N As Integer
 estadoaddin = AddIns("Herramientas para análisis").Installed
If estadoaddin Then
Else
AddIns("Herramientas para análisis").Installed = True
End If
    English_ATP = Array("=WEEKNUM", "=RANDBETWEEN")
    Local_ATP = Array("=WEEKNUMMER", "=ALEATORIO.ENTRE")
    With Application
        .ScreenUpdating = False
        .EnableEvents = False
        .Calculation = xlCalculationManual
    End With
    For N = LBound(English_ATP) To UBound(English_ATP)
        With ActiveSheet
            .Cells.Replace What:=English_ATP(N), Replacement:=Local_ATP(N), _
                LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
                    SearchFormat:=False, ReplaceFormat:=False
        End With
    Next N   
If Left(CStr(Application.Version), 2) = "12" Then
Range("D4:D10").Formula = "=RANDBETWEEN(10^$j$3,(100^$j$3))"
Range("B4:B10").Formula = "=RANDBETWEEN(10^$j$3,(100^$j$3))"
Else
estadoaddin = AddIns("Herramientas para análisis").Installed
If estadoaddin Then
Else
AddIns("Herramientas para análisis").Installed = True
End If
End If
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = xlCalculationAutomatic
    End With
End Sub

Para ver un uso, prueben abrir el archivo siguiente en Excel 2007 y en versiones anteriores
dejando correr la macro y no dejando correr la macro
[Tienes que estar registrado y conectado para ver este vínculo]

Seguire probando con Range().Formula y Range().FormulaLocal

_________________
GalileoGali
M.A.P. 2010-2013
Microsoft Active Professional
avatar
GalileoGali
Admin

Masculino Cantidad de envíos : 1963
Edad : 62
Ciudad - Pais : QUIROGA, Argentina
Version de Excel : 2000-2003-2007-2010
Fecha de inscripción : 24/01/2008

http://excelgali.mejorforo.net

Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 
Permisos de este foro:
No puedes responder a temas en este foro.