Datei alle 10 Minuten unter Zellinhalt speichern
#1
Hallo,

habe eine Datei in der sich in Zelle C1 ein Datum (z.B. 08.03.18) befindet.

Nun soll diese Datei alle 10 Minuten mit dem Zellinhalt aus C1 (08.03.18) als Namen abgespeichert und auch überschrieben werden, bis in der
Zelle D1 eine 1 erscheint.(Tageswechsel)

Wenn dann in D1 die 1 erscheint, soll diese Datei noch einmal gespeichert und die Datei geschlossen werden.
Zudem soll von der Festplatte die Datei Vorlage geöffnet und wieder unter dem Zellinhalt C1 (da Tageswechsel war, dann 09.03.18)als neue Datei gespeichert werden.

Könnt Ihr mir dazu helfen? Vielleicht auch nur in Teilschritten?
Ideen für eine Komplettlösung wären natürlich Super.

Vielen Dank schon mal im Voraus.

LG.
Peggy
Top
#2
Hallöchen,

dann fangen wir mal in Teilschritten an. Bisschen was könnte man mit Aufzeichnen erreichen. Hier mal das Speichern unter:

Code:
Sub Makro3()
'
' Makro3 Makro
'

'
    ChDir "I:\"
    ActiveWorkbook.SaveAs Filename:="I:\Quatsch.xlsm", FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub

Der Dateiname sollte aus C3 kommen. Das wäre dann so:

Code:
Sub Makro3()
'
' Makro3 Makro
'

'
    ChDir "I:\"
    ActiveWorkbook.SaveAs Filename:=Cells(3, 3).Value & ".xlsm", FileFormat:= _
        xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub

Passt das so? Dann könnten wir weiter machen. Vielleicht schaust Du auch schon mal nach Application.OnTime und wie man damit ein Makro aufruft.

Für die Sache mit der 1 in D1 wäre noch die Frage, wie die wieder raus kommt. Sollte das eventuell das Makro beim ersten Speichern machen, oder hast Du da eine Formel drin die den Dateinamen auswertet? Wäre auch nicht verkehrt.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
Hallo schauan,

in D1 steht folgende Formel: =WENN(TAG(A5)<>TAG(LINKS(C1;8));1;0)

C1 wird über ein Zeitmakro bestückt

Habe heute folgende Formel zusammen gestückelt (wahrscheinlich total laienhaft):

Sub Vorlageöffnen()
'
'
   If Range("D1").Value = 0 Then
   
   Dim myPath, myFileName As String
   myPath = ThisWorkbook.Path
   myFileName = Range("d2") & ".xlsm"
   Application.DisplayAlerts = False
   ActiveWorkbook.SaveAs myPath & "\" & myFileName
   Application.DisplayAlerts = True
   Else
   myFileName = Range("d2") & ".xlsm"
   Application.DisplayAlerts = False
   ActiveWorkbook.SaveAs myPath & "\" & myFileName
   Application.DisplayAlerts = True
   Workbooks.Open Filename:="D:\ Dokumente\FUCHS\Vorlage.xlsm"
   Sheets("Tabelle1").Select
   Range("B5").Select
   myFileName = Range("d2") & ".xlsm"
   Application.DisplayAlerts = False
   ActiveWorkbook.SaveAs myPath & "\" & myFileName
   Application.DisplayAlerts = True
End If
End Sub

Leider konnte ich jetzt noch nicht testen, ob die Zelle D1 sich wirklich zum Tageswechsel automatisch in 1 verwandelt, da noch kein
Tageswechsel war.

Mit einer händischen Eingabe einer 1 in D1 funktioniert es jedenfalls fast.

Die Vorlage wird unter dem neuen Namen nicht in dem gewünschten Pfad: "D:\ Dokumente\FUCHS\Vorlage.xlsm" abgespeichert,
sondern nur unter D:\  Huh

Und beim Abspielen des Makros wird immer zusätzlich der 12.03.18 geöffnet. Und ich weiß einfach nicht warum. :16:

Hoffe Du kannst mir noch einmal weiter helfen.



P.S. Hatte wirklich ein Brett vorm Kopf. Er hat den 12.03.18 geöffnet, weil meine Vorlage so bestückt war.  :16:  :16:  :16:

Also funktioniert es soweit richtig, nur der Speicherpfad stimmt noch nicht. Was muss ich da an meinem Code ändern?

Zudem wird der Ordner Vorlage bereits geöffnet, wenn sich in C1 die Zeit ändert, das soll aber nicht so sein.

LG.
Peggy
Top
#4
So habe jetzt mal über die geänderte Zeit des Computers meine Datei getestet.

Der Wert in D1 verändert sich durch den Tageswechsel auf 1, aber mein Makro startet nicht. :22: :22: :22:

Au man sowas nervt mich einfach.

Hoffe Ihr könnt mir helfen.

LG.

Peggy
Top
#5
Hallo,

... das mit der Computerzeit wollte ich Dir auch vorschlagen. Dann kam mir aber etwas Zeitraubendes dazwischen.

Apropos Zeit:
Zitat:C1 wird über ein Zeitmakro bestückt

zeigst Du uns das auch mal?
Top
#6
Hallo,
im Modul1 habe ich folgendes Zeitmakro versteckt:

Code:
Sub Zeitmakro()
ThisWorkbook.Worksheets("Tabelle1").Range("c1") = Format(Now, "dd.mm.yy - hh:mm:ss")
ET = Now + TimeValue("00:01:00")
Application.OnTime ET, "Zeitmakro"
   
End Sub
Dieses wird angesteuert über:

Code:
Private Sub Workbook_Open()

Call Zeitmakro
 
End Sub
in der Arbeitsmappe.

Weiterhin habe ich folgende Formel in meiner Tabelle hinterlegt:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
ThisWorkbook.Worksheets("Tabelle1").Unprotect "123"
Application.ScreenUpdating = False
If Not (Intersect(Range("B:B"), Target) Is Nothing) Then Target.Offset(0, -1) = Now()
Application.ScreenUpdating = True
ThisWorkbook.Worksheets("Tabelle1").Protect "123"

End Sub
Nun soll hier aber auch noch folgendes eingebaut werden:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("d1")) Is Nothing Then Exit Sub

Vorlageöffnen

End Sub
Kommt Ihr damit weiter?

Bin mit meinem Latein am Ende. Hab schon einiges probiert. Das Makro will aber einfach bei Tageswechsel nicht starten.

LG.

Peggy
Top
#7
Hallo,

wenn Du beim Posten von Formeln oder Codes die Smilies deaktivierst,
dann kann so was auch nicht mehr passieren
Zitat:ThisWorkbook.Worksheets("Tabelle1").Range("c1") = Format(Now, "dd.mm.yy - hh:mm[img]
Dateiupload bitte im Forum! So geht es: Klick mich!
")

um Deine Codes werde ich mich erst nach dem Wecken kümmern.
Jetzt ist mir das zu spät bzw. zu früh, je nach Standpunkt  :05: .
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste