03. maj 2010 - 13:07
Der er
3 kommentarer
gemme kopi af excel fil.
Jeg vil gerne gemme en kopi af mit excel dataark hver 15 min i en ny fil.
Jeg har ingen visual basic erfaring, men har fået følgende strikket sammen:
Public dTime As Date
Sub MyMacro()
dTime = Now + TimeValue("00:15:00")
Application.OnTime dTime, "MyMacro"
ActiveWorkbook. SaveAs Filename:="D:\whatever" & Format(Now, "-yyyy-mmdd-hhmm") & ".xls", FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application .OnTime dTime, "MyMacro", , False
End Sub
Private Sub Workbook_Open()
dTime = Now + TimeValue("00:00:05")
Application.OnTime dTime, "MyMacro"
End Sub
Problemet er at det nu er kopien der er aktiv i excel.
Forstået på den måde at originalen er lukket ned og det aktive dokument i excel er den nye kopi.
Jeg ønsker at det stadig er originalen der arbejdes videre med, og at kopien slet ikke åbnes.
Hvordan kringler jeg lige den??
Function SaveTextFile(strFile As String, strData As String, Optional bOverWrite As Boolean = False) As Boolean
Dim iHandle As Integer, l As Long
If Not bOverWrite Then
If Len(Dir(strFile)) > 0 Then
SaveTextFile = False
Exit Function
End If
End If
iHandle = FreeFile
l = Len(strData)
Open strFile For Binary Access Write As #iHandle Len = l
Put #iHandle, , strData
Close #iHandle
SaveTextFile = True
End Function
Function MakeString(r As Range, Optional strDelimiter As String = vbNullString) As String
Dim vArray As Variant, i As Long, j As Long, strTemp As String
If r.Count = 1 Then MakeString = r.Value: Exit Function
vArray = r.Value
For i = 1 To UBound(vArray, 1)
For j = 1 To UBound(vArray, 2)
strTemp = strTemp & vArray(i, j) & strDelimiter
Next j
strTemp = strTemp & vbCrLf
Next i
strTemp = Left(strTemp, Len(strTemp) - 2)
MakeString = strTemp
End Function
Sub MyMacro()
dtime = Now + TimeValue("00:02:00")
Application.OnTime dtime, "MyMacro"
Dim strMyString As String, strMyFile As String, bResult As Boolean
strMyString = MakeString(Range("A1:A3"))
strMyFile = "c:\test\sted" & Format(Now, "-yyyy-mmdd-hhmm") & ".txt"
bResult = SaveTextFile(strMyFile, strMyString, True)
strMyString = MakeString(Range("B1:B3"))
strMyFile = "c:\test\vaerdi" & Format(Now, "-yyyy-mmdd-hhmm") & ".txt"
bResult = SaveTextFile(strMyFile, strMyString, True)
End Sub
Som den vakse læser kan se gemme jeg ikke i en excel fil men bare hver sølje i en tekstfil, same same :-)
Point -tja synes det er forkert og give sig selv så de må gå tabt, medmindre en kommer med en flot løsning så får han dem ;-)