Acceso desde visual a plantillas de excel

Hola! En realidad se muy poco de visual, y quizá esta pregunta sea demasiado fácil para vos.
Lo que pasa es que estoy haciendo una pequeña aplicación en el editor de visual desde excel y hay un command en un formulario que debe ir a una plantilla de factura(de las que presenta excel como soluciones de hoja de cálculo)y después de que el usuario introduzca los datos, se deben guardar los cambios.Te agradecería si me puedes ayudar con el código para esta acción.

1 Respuesta

Respuesta
1
Te pongo un ejemplo de una clase excel. Para ello hay que añadir las referencias (como tu las tendrás, al estar con VBA en Excel, no tendrás mayor problema.)
Para hacer que un objeto cualquiera se te muestre, mira el nombre y ponle detrás el ".show" Pero te mando el código para que lo ojees. A ver si se entiende el funcionamiento en general. Si no, vuelve a preguntarme, te mando mi dirección, me lo mandas por correo y te la genero yo desde aquí.
Un saludo.
Option Explicit
Dim app As Excel.Application
Dim Libros As Excel.Workbooks
Dim Libro As Excel.Workbook
Dim hoja As Excel.Worksheet
Dim blncargado As Boolean
Public Sub AbrirExcel(archivo As String)
Set app = New Excel.Application
Set Libros = app.Workbooks
Set Libro = Libros.Open(archivo)
blncargado = True
End Sub
Public Sub AbrirHoja(PeHoja As String)
On Error GoTo HojaNoExiste
Set hoja = Libro.Worksheets(PeHoja)
Exit Sub
HojaNoExiste:
MsgBox "Error, el libro excel debe tener una hoja llamada '" & PeHoja & "'"
Me.CerrarExcel
End Sub
Public Function DevolverCelda(X As Long, Y As Long) As String
DevolverCelda = hoja.Cells(X, Y)
End Function
Public Sub PonerValorCelda(X As Long, Y As Long, Valor As String)
hoja.Cells(X, Y) = Valor
End Sub
Public Sub PonerValorTituloCelda(X As Long, Y As Long, Valor As String)
hoja.Cells(X, Y).Font.Bold = True
hoja.Cells.BorderAround
hoja.Cells(X, Y) = Valor
End Sub
Libro.Sabe
Libro.Close
Libros.Close
End If
End Sub
Public Sub GuardarComo(archivo As String)
Libro.SaveAs archivo
End Sub
Public Sub CerrarExcel()
If blncargado Then
Libro.Sabe
Libro.Close
Libros.Close
End If
blncargado = False
End Sub
Que la cerrases porque el número de usuarios con los que puedo tener preguntas abiertas es fijo, y tenerla abierta supone un usuario al que no puedo contestar. Que la puntúes porque me interesa, ya sea porque me valora a la hora de resolver dudas, y me indica si he satisfecho la duda planteada.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas