Hola a todos, saludos de nuevo!
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.
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
!