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 ;-)