Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
604to608
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
604to608
604to608
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Automatisches Kopieren - Zugriff auf andere Dateie

Automatisches Kopieren - Zugriff auf andere Dateie
04.05.2005 09:22:03
CiviSese
Guten Morgen,
ich habe folgenden Code erstellt, um zu bestimmten Uhrzeiten von bestimmten Zellen in andere zu kopieren - was in dieser Form aber irgendwie nicht funktioniert.
Kann mir da jemand weiterhelfen?
In "DieseArbeitsmappe" habe ich:

Private Sub Workbook_Open()
'Immer 14:00 und 9:00
Application.OnTime TimeValue("14:00:00"), "AutocopyNachmittag"
Application.OnTime TimeValue("09:00:00"), "AutocopyMorgens"
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
'zurücksetzen
Application.OnTime EarliestTime:=TimeValue("14:00:00"), _
Procedure:="AutocopyNachmittag", Schedule:=False
Application.OnTime EarliestTime:=TimeValue("09:00:00"), _
Procedure:="AutocopyMorgens", Schedule:=False
End Sub

und in Module - Modul1:
Sub AutocopyNachmittag()
With Sheets("perform")
.Range("D93:D98").Copy
.Range("H93:H98").PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
End Sub
Sub AutocopyMorgens()
With Sheets("perform")
.Range("H93:H98").Copy
.Range("C93:C98").PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
End Sub
Danke im voraus!
Und noch was:
Kann ich damit auch auf andere Excel Files zugreifen, wenn ich den korrekten
Pfad angebe? Was passiert, wenn diese Files bereits geöffnet und somit nur schreibgeschützt verfügbar sind?

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
s. 03.05.2005 - 12:58:53 (Ursprungsmakro von UweD)
04.05.2005 09:55:47
UweD)
AW: s. 03.05.2005 - 12:58:53 (Ursprungsmakro von UweD)
04.05.2005 11:05:57
UweD)
Hallo
Was funktioniert denn nicht?
Die Datei muß natürlich geöffnet bleiben, sonst wird nichts ausgeführt.
Beim Öffnen werden die Timer gesetzt, wenn dann die Datei offen bleibt, werden die Makros zur eingestellten Zeit ausgeführt.
Die Timer werden automatisch zurückgesetzt, wenn die Datei vorher geschlossen wird.
zu "Und noch was"
mit dem Timer kann jedes vorhandene Makro aufgerufen werden.
In diesen Makros kann dann alles mögliche stehen..
z.B. auch offne Datei xyz aus Verzeichnis c:\123 und copiere dort A1 in B555 usw. danach schliesse die Datei wieder usw.
(Wenn du sowas brauchst, schreib mal genau was gemacht werden soll)
Wenn so eine Datei bereits von jemand anderem benutzt wird, hast du (bzw. das Makro) keine Möglichkeit, diese Änderungen unter gleichem Namen zu speichern...
Hoffe das hat dir gehofen. Gruß UweD
Anzeige
AW: s. 03.05.2005 - 12:58:53 (Ursprungsmakro von UweD)
04.05.2005 12:01:03
UweD)
Ok, super, vielen Dank!
Mittlerweile läuft das Makro doch, heute morgen jedoch nicht, ich experimentiere noch.
Also, um das nochmal festzuhalten: Ich kann das File theoretisch rund um die Uhr geöffnet lassen, und die Felder werden immer entsprechend kopiert?
Und noch eine Frage:
Wie genau muß ich das als Code formulieren, damit er sich die Daten aus einem anderen File korrekt zieht?
Diesen Code habe ich ja bereits:
Sub AutocopyNachmittag()
With Sheets("perform")
.Range("D93:D98").Copy
.Range("H93:H98").PasteSpecial Paste:=xlPasteValues
...
Wenn jetzt z.b. das zu kopierende in K:/probe/test.xls liegt, im Sheet seite1 in Zelle D3, und dann in das file kopiert werden soll, in dem auch das makro liegt, wie mache ich das?
Danke nochmals!
Sebastian
Anzeige
AW: s. 03.05.2005 - 12:58:53 (Ursprungsmakro von UweD)
04.05.2005 14:02:59
UweD)
Hi
so: (getestet)

Sub AutocopyNachmittag()
Dim offen$, Dat$, Blatt$, DName$, D1, D2
Dat = "K:/probe/test.xls"
Blatt = "Seite1"
DName = Dir(Dat) 'prüft, ob Datei existiert. Rückgabe= Dateiname ohne Pfad
Set D2 = ThisWorkbook.Sheets("perform")
If DName = "" Then
MsgBox "Datei " & Dat & " nicht vorhanden"
Exit Sub
End If
On Error Resume Next
offen = Workbooks(DName).Name
If Err.Number = 9 And offen = "" Then 'Datei nicht offen
Err.Clear
On Error GoTo 0
Workbooks.Open Filename:=Dat
End If
On Error GoTo 0
Set D1 = Workbooks(DName).Sheets(Blatt)
D1.Range("D3").Copy
D2.Range("B3").PasteSpecial Paste:=xlPasteValues
Workbooks(DName).Close savechanges:=False 'schließt Datei ohne ändern
End Sub

Gruß UweD
Anzeige
AW: s. 03.05.2005 - 12:58:53 (Ursprungsmakro von UweD)
04.05.2005 16:10:54
UweD)
Sehr schön, läuft gut!
Erlaube mir bitte noch eine abschließende Frage:
Wenn ich so mit dem Makro eine Datei öffne, die beim Öffnen versucht, Daten zu
aktualisieren, da diese wiederum mit anderen Quellen verknüpft ist - wie kann ich
dies bejahen?
Abermals, danke!
Sebastian
AW: s. 03.05.2005 - 12:58:53 (Ursprungsmakro von UweD)
04.05.2005 13:09:38
UweD)
Ok, super, vielen Dank!
Mittlerweile läuft das Makro doch, heute morgen jedoch nicht, ich experimentiere noch.
Also, um das nochmal festzuhalten: Ich kann das File theoretisch rund um die Uhr geöffnet lassen, und die Felder werden immer entsprechend kopiert?
Und noch eine Frage:
Wie genau muß ich das als Code formulieren, damit er sich die Daten aus einem anderen File korrekt zieht?
Diesen Code habe ich ja bereits:
Sub AutocopyNachmittag()
With Sheets("perform")
.Range("D93:D98").Copy
.Range("H93:H98").PasteSpecial Paste:=xlPasteValues
...
Wenn jetzt z.b. das zu kopierende in K:/probe/test.xls liegt, im Sheet seite1 in Zelle D3, und dann in das file kopiert werden soll, in dem auch das makro liegt, wie mache ich das?
Danke nochmals!
Sebastian
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige