Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: Bazooka en Febrero 04, 2013, 04:30:16 pm
-
Hola amigos tengo este codigo que funciona correcto en OFFICCE 2003 instalado, mi pregunta es si lo corro en una PC que tenga el 2007 o posterior si me va a servir ya que no tengo la posibilidad de probarlo ahora con esa version de office si alguien lo tiene instalado y me hace el favor!!!!
TENGO LA REFERENCIA DE Microsoft Office 11 agregada!!
Private Sub bDeuda_Click()
Dim objExcel As Excel.Application
Dim xLibro As Excel.Workbook
Dim link As String
link = App.Path & "\CLIENTES\" & txtCodigo.Text & ".xls"
If FileExists(link) Then
Set objExcel = New Excel.Application
Set xLibro = objExcel.Workbooks.Open(link)
objExcel.Visible = True
Else
If MsgBox("No existe el archivo de este cliente!" & vbNewLine & "¿Desea crearlo ahora?", vbYesNo + vbInformation) = vbYes Then
FileCopy App.Path & "\CLIENTES\modelo.xls", App.Path & "\CLIENTES\" & txtCodigo.Text & ".xls"
Call Macro2(App.Path & "\CLIENTES\" & txtCodigo.Text & ".xls")
bDeuda_Click
End If
End If
End Sub
-
Estimado Bazooka
Para no tener dependencia de la versión de office instalada quita la referencia y crea una instancia de Office con la siguiente línea:
Set objExcel = CreateObject("Excel.Application")
Luego desde aquí tu código que usas normalmente, la desventaja de trabajar de esta forma es que se pierde la posibilidad de usar Iintellisense sobre el Objeto creado
objExcel.Visible = True
objExcel.Workbooks.Add
objExcel.Cells(1, 1).Value = "Bazooka"
objExcel.Cells(1, 1).Font.Bold = TRUE
objExcel.Cells(1, 1).Font.Size = 24
objExcel.Cells(1, 1).Font.ColorIndex = 3
Saludos, desde algún lugar de Lima - Perú
-
MUCHAS GRACIAS AMIGO!!! GENIAL
-
LE QUITE LA REFERENCIA PERO NO ME FUNCIONA CUANDO LLAMA A LA MACRO QUE ESTA COMO UN PROCEDIMIENTO
COMO QUEDARIA?
Private Sub bDeuda_Click()
Dim objExcel As Object
Dim xLibro As Object
Dim link As String
Set objExcel = CreateObject("Excel.Application")
link = App.Path & "\CLIENTES\" & txtCodigo.Text & ".xls"
If FileExists(link) Then
'Set objExcel = New Excel.Application
Set xLibro = objExcel.Workbooks.Open(link)
objExcel.Visible = True
Else
If MsgBox("No existe el archivo de este cliente!" & vbNewLine & "¿Desea crearlo ahora?", vbYesNo + vbInformation) = vbYes Then
FileCopy App.Path & "\CLIENTES\modelo.xls", App.Path & "\CLIENTES\" & txtCodigo.Text & ".xls"
Call Macro2(App.Path & "\CLIENTES\" & txtCodigo.Text & ".xls")
bDeuda_Click
End If
End If
End Sub
Sub Macro2(file As String)
Workbooks.Open FileName:=file '"C:\ADMINISTRATIVO\CLIENTES\0000003.xls"
Range("A1:F2").Select
ActiveCell.FormulaR1C1 = txtApellidos & ", " & txtNombres & " - " & txtTelefonoCasa
Range("G1").Select
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
-
Estimado Bazooka
Al no tener tu archivo XLS, hay algunas cosas que no he podido reproducir como por ejemplo FormulaR1C1 pero me parece que con las modificaciones que he realizado ya te podrás guiar.
Private Sub bDeuda_Click()
Dim objExcel As Object
Dim xLibro As Object
Dim xHoja As Object
Dim link As String
Set objExcel = CreateObject("Excel.Application")
link = App.Path & "\CLIENTES\" & txtCodigo.Text & ".xls"
If FileExists(link) Then
Set xLibro = objExcel.Workbooks.Open(link)
objExcel.Visible = True
Else
If MsgBox("No existe el archivo de este cliente!" & vbNewLine & "¿Desea crearlo ahora?", vbYesNo + vbInformation) = vbYes Then
FileCopy App.Path & "\CLIENTES\modelo.xls", App.Path & "\CLIENTES\" & txtCodigo.Text & ".xls"
Call Macro2(App.Path & "\CLIENTES\" & txtCodigo.Text & ".xls")
bDeuda_Click
End If
End If
End Sub
Sub Macro2(file As String)
Dim objExcel As Object
Dim xLibro As Object
Dim xHoja As Object
Set objExcel = CreateObject("Excel.Application")
'objExcel.Visible = True '// Si quieres ver que va haciendo el código dejalo como True caso contrario False
Set xLibro = objExcel.Workbooks.Open(file) '"C:\ADMINISTRATIVO\CLIENTES\0000003.xls"
Set xHoja = xLibro.Sheets("Hoja1")
xHoja.Range("A1:F2").Select
'xHoja.FormulaR1C1 = txtApellidos & ", " & txtNombres & " - " & txtTelefonoCasa
xHoja.Range("G1").Select
xLibro.Save
xLibro.Close
End Sub
Saludos desde algún lugar de Lima - Perú
Editado: Por favor utilizar etiquetas de código o en su defecto nada, porque el formato azul es difícil de leer.
-
si ya esta amigo muchas gracias!!!
-
Hola revivo este hilo por que me paso algo en una PC que necesito ayuda.
Resulta que si bien como me dijo el amigo Albertoni no cargo la refencia de Excel 11 sino que utilizo CreateObject("Excel.Application") para que se abra con cualquier vesion de Office.
Ahora bien la aplciacion estaba funcionando correcto y tenia instalado el Officce 2007 y mi cliente lo saco y puso el 2010 y ahora no anda! me da el mensaje ' Una de la bibliotecas Stdole2.tlb falta o esta dañada ejecute la instalacion de nuevo y bla.....
Cosa que hice pero nada!!!.
En la desesperacion porel hacerlo andar se me ocurrio volver a colocarle la referencia de Excel 11 y le instale solo el excel 2003 del paquete office y al hacer click en el boto nque deberia abrir no sucede nada de nada!!
Que podría hacer?
Gracias
-
Estimado Bazooka
Después que ejecutes tu instalador verifica que la biblioteca de tipos Stdole2.tlb este en la carpeta de sistema (System32), si esta y el problema persiste registra la librería de tipos manualmente.
Registra la librería de tipos manualmente:
1. Seleccione Start » Run.
2. En la caja de diálogo que aparece escribe lo siguiente:
regtlib <Full path of .tlb file>
Donde <Full path of .tlb file> es la localización del archivo de su librería de Tipo (System32)
Recuerda ejecutar el instalador como administrador si estas en un sistema operativo Microsoft Windows Vista o superior
Saludos, desde algún lugar de Lima - Perú
-
eso debe ser que no ejecute como administrador los instaladores..
Ya que estoy para que es esa bolud.... de tener que ejecutar como administrador los programas???
que seguridad no es para nada es para jo.... nada mas