[VB6][Excel] Habilitar Opción mediante código.

Iniciado por FranciskoAsdf, 13 Junio 2014, 01:49 AM

0 Miembros y 1 Visitante están viendo este tema.

FranciskoAsdf

Hola a todos, saludos de nuevo! :D

Hoy vengo a solicitar su ayuda con sobre como habilitar una opción de Excel mediante código. Les explico mejor:

Tengo terminado un formulario para procesar archivos .XLS generados por SAP. Lo que hago es crear un MACRO desde Visual, añadirla a Excel y ejecutarla, hasta ahí todo bien. El tema es que necesito habilitar una opción de Excel para evitar que me de el siguiente error:



Y la opción que necesito habilitar mediante código es la siguiente:



Estoy haciendo el programa para la empresa en la que trabajo y solo me falta eso, ya que la idea es que los usuarios no tengan que ir a opciones "extrañas" ya que no todos tienen la misma versión de Office como para explicar en el programa como llegar a esa opción y habilitarla.

Dejo el código que uso para Generar y Ejecutar el macro.

Código (vb) [Seleccionar]

Dim ExcelApp As New Excel.Application
Dim HojaExcel As Excel.Worksheet
Dim LibroExcel As Excel.Workbook
Dim ModuloExcel As Object
Dim CodigoMacro As String
Dim Linea As String, Total As String
Dim EstrucComercial As String
Dim InvFilePath As String

Private Sub Command1_Click()
If InvFilePath = "" Then
    respuesta = MsgBox("Debe seleccionar un archivo a procesar.", vbExclamation, "Cuidado!.")
    Exit Sub
    Else
Command1.Caption = "Procesando..."
Command1.Enabled = False
BBuscarXls.Enabled = False

PB1.Value = 0
PBLabel.Caption = "Buscando Archivo..."
PB1.Value = PB1.Value + 1

EstrucComercial = App.Path & "\DataAndStuff\EstructuraComercial3.0.xlsx"
PBLabel.Caption = "Abriendo Archivos..."
PB1.Value = PB1.Value + 1

Set LibroEC = ExcelApp.Workbooks.Open(EstrucComercial)
Set LibroExcel = ExcelApp.Workbooks.Open(InvFilePath)

PBLabel.Caption = "Buscando Datos..."
PB1.Value = PB1.Value + 1

Set HojaExcel = LibroExcel.Sheets.Item(1)

PBLabel.Caption = "Configurando Consulta..."
PB1.Value = PB1.Value + 1

Set ModuloExcel = LibroExcel.VBProject.VBComponents.Add(vbext_ct_StdModule) ' Aca es donde daria problemas en la ventana de programador y en el exe compilado.
'ExcelApp.Visible = True

PBLabel.Caption = "Ejecutando Consulta..."
PB1.Value = PB1.Value + 1

CodigoMacro = _
    "Sub OrdenPlanillaInventario()" & vbCr & _
    Total & vbCr & _
    "End Sub"
   PBLabel.Caption = "Ordenando Datos..."
   PB1.Value = PB1.Value + 1
   
ModuloExcel.CodeModule.AddFromString CodigoMacro
ExcelApp.Run ("OrdenPlanillaInventario")

PBLabel.Caption = "Guardando Archivo..."
PB1.Value = PB1.Value + 1

ExcelApp.DisplayAlerts = False
LibroExcel.SaveAs InvFilePath, FileFormat:=xlNormal
LibroExcel.Close SaveChanges:=False

PBLabel.Caption = "Listo!."
PB1.Value = PB1.Value + 1

ExcelApp.Quit
Command1.Caption = "Listo!."
Command1.Enabled = False
BBuscarXls.Enabled = False

End If
End Sub



Saludos y gracias de ante mano :D!
Asdf debería ser algún tipo de función.

MCKSys Argentina

Hola!

Revisa este link. Ten en cuenta que la clave cambiará según la versión de office instalada.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


FranciskoAsdf

muchas gracias por el dato!  ahora a ver como identificar la versión de office y como modificar el registro xD!,  pero muchas gracias por el link!.

Asdf debería ser algún tipo de función.