otra preguntica amigo, no se si es normal, pero tengo el código, y me crea un archivo excel en la raíz sonde ejecuto el programa, al abrir el archivo ok, pero me abre el archivo y un libro, no se por que y tiene datos diferentes, sera que tiene algo el codigo que lo hace? solo quiero que me muestre el archivo final.
Dim cuenta 'BANDERA
Dim arch 'ARCHIVO A GRABAR
Dim Hora
Dim Hora1
Dim ApExcel As Object
Dim objLibro As Object
Dim rango
Option Explicit
Sub Grabar()
'cuenta es cero cuando no se le ha dato guardar
If cuenta = 0 Then
End If
arch = App.Path & "/" & Format(Date, "d-m-yyyy") & "--" & Format(Time, "h-m-s") & ".xls"
'creamos el objeto de excel
Set ApExcel = CreateObject("Excel.application")
'añadimos un hoja nueva
ApExcel.Workbooks.Add
'enviamos datos a excel en las celdas qeu se indican
ApExcel.cells(1, 1).Formula = "Evaporadores"
'se define la fuente para esta celda
ApExcel.cells(1, 1).Font.Size = 18
'se toma la fecha
ApExcel.cells(2, 1).Formula = "Fecha: " & Date
ApExcel.cells(2, 1).Font.Size = 18
ApExcel.cells(3, 1).Formula = "Hora"
ApExcel.cells(3, 2).Formula = "Nivel1"
ApExcel.cells(3, 3).Formula = "Nivel2"
cuenta = 1
'se toma la hora
Hora = Format(Time, "h:m:s")
Hora = Format(Time, "h:m:s")
ApExcel.cells(3 + Val(cuenta), 1).Formula = Hora
ApExcel.cells(3 + Val(cuenta), 2).Formula = Val(Nivel1)
ApExcel.cells(3 + Val(cuenta), 3).Formula = Val(Nivel2)
cuenta = cuenta + 1
End Sub
'rutina para generar numeros aleatorios
Public Function NumeroAleatorio(Minimo As Long, Maximo As Long) As Long
Randomize Timer
NumeroAleatorio = Int((Maximo - Minimo + 1) * Rnd(Timer) + Minimo)
End Function
Private Sub Grabar2_Click()
If Grabe.Value = 0 Then
Grabe.Value = 1
Grabar2.Caption = "Detener"
Else
Grabe.Value = 0
Grabar2.Caption = "Grabar"
'///////////////////////////////////////////////////////
'cambiamos el nombre de la hoja 1
ApExcel.Worksheets(1).Name = "MAQUINA"
'borramos la hoja 2 y 3
ApExcel.Worksheets("Hoja2").Delete
ApExcel.Worksheets("Hoja3").Delete
cuenta = 0
'guardamos cerramos y quitamos excel
ApExcel.Worksheets(1).SaveAs arch
ApExcel.Workbooks.Close
ApExcel.Quit
Set ApExcel = Nothing
End If
End Sub
Private Sub Timer1_Timer()
If Grabe.Value = 1 Then
Grabar
End If
'Nivel1 = NumeroAleatorio(0, 145)
Nivel2 = NumeroAleatorio(0, 145)
End Sub