Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
752to756
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
752to756
752to756
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Update als Makro ausführen?

Update als Makro ausführen?
10.04.2006 20:00:57
Nitsch
Hallo Ihr Excel-Profis,
ich habe eine große Excel-Mappe(z.B. Test.xls) an verschiedenen Standorten. Wenn ich die Grunddaten nun verändere, mußte ich bisher immer alle Standorte abfahren und die Dateien anpassen.
Dies möchte ich nun mit einem Makro vereinfachen.
Ich stell mir das so vor:
Ich ändere die Datei Test.xls von Hand mit allen Einträgen die ich brauch. Die geänderte Datei wird in Update.xls umbenannt und an die Standorte verschickt.
Dort in den gleichen Ordner wie die Test.xls gelegt und geöffnet.
Beim Start läuft dann ein Makro und fragt ab ob die Datei Update.xls ist.
Bei ja öffnet es die bisherige Test.xls kopiert aus ("test1!A1:A6)die Daten und fügt diese in Update.xls (test1!A1:A6)ein.
Anschließend wird Test.xls gelöscht und Update.xls in Test.xls umbenannt und gepseichert.
Somit wäre das Update durchgelaufen und die Test.xls auf dem neuesten Stand.
Da der Name nicht mehr Update.xls ist, wird das Makro beim nächsten Start übersprungen.
Alles klar?
Von der Idee bei mir auch nur funktioniert es nicht!
Hier meine bisherigen Bemühungen:

Private Sub Workbook_Activate()
If ActiveWorkbook.Name = "Test.xls" Then Exit Sub
Workbooks("Test.xls").Activate
Dim bereich1 As Range
Set bereich1 = Workbooks("EFKB.xls").Range("test1!A1:A6")
bereich1.Copy
activeWorkbooks.Range("test1!A1:A6").Paste
Workbooks("Test.xls").Close
Kill ("/Test.xls")
ActiveWorkbook.SaveAs ("/test.xls")
End Sub

Brauch dringend Hilfe!
Danke an Alle!

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Update als Makro ausführen?
11.04.2006 15:43:15
IngGi
Hallo Nitsch,
Workbooks("Test.xls").Activate
Mit dieser Zeile wird die Datei Test.xls nicht geladen, es wird vielmehr vorausgesetzt, dass sie bereits geladen ist. Trifft das zu, wird sie aktiviert (als aktive Datei in den Vordergrund geholt). Sonst gibt es einen Laufzeitfehler.
Set bereich1 = Workbooks("EFKB.xls").Range("test1!A1:A6")
In dieser Zeile gibt es 2 Probleme. 1. Was ist die Arbeitsmappe EFKB.xls? Laut deiner Beschreibung willst du Daten aus Test.xls nach Update.xls übernehmen. 2. Du nimmst die Bezeichnung des Tabellenblattes mit in die Definition des Range-Bereiches. Das geht so nicht. Es müßte vielmehr so heißen:
Set bereich1 = Workbooks("EFKB.xls").Worksheets("test1").Range("A1:A6")
In der Zeile
activeWorkbooks.Range("test1!A1:A6").Paste
besteht das selbe Problem. Außerdem muss es "ActiveWorkbook" heißen statt "ActiveWorkbooks".
Kill ("/Test.xls")
ActiveWorkbook.SaveAs ("/test.xls")
In diesen beiden Zeilen verstehe ich nicht, was die beiden Schrägstriche vor den Dateinamen sollen. Dateinamen können keine Schrägstriche enthalten. Der Kill-Befehl bezieht sich außerdem auf die falsche Datei. Test.xls wird ja mit Update.xls sowieso überschrieben. Dagegen muss Update.xls gelöscht werden.
Schließlich würde ich das Makro in eine Workbook_Open-Prozedur schreiben, die nur beim Öffnen der Datei anspringt, statt in eine Workbook_Activate-Prozedur. Hier mal ein Vorschlag von mir:
Private Sub Workbook_Open()
Dim wkb As Workbook
Dim strDateiTest As String
Dim strDateiUpdate As String
If ThisWorkbook.Name = "Test.xls" Then Exit Sub
strDateiUpdate = ThisWorkbook.Path
On Error GoTo Fehler
Workbooks.Open Filename:="C:\Temp\Test.xls"
Set wkb = ActiveWorkbook
strDateiTest = wkb.Path
Workbooks("Test.xls").Worksheets("test1").Range("A1:A6").Copy _
Destination:=ThisWorkbook.Worksheets("test1").Range("A1:A6")
Workbooks("Test.xls").Close False
ThisWorkbook.SaveAs Filename:=strDateiTest
Kill strDateiUpdate
Exit Sub
Fehler:
If Err.Number = 1004 Then
MsgBox "Die Datei Test.xls existiert nicht im erwarteten Pfad. " & _
"Bitte im nachfolgenden Fenster die Datei angeben."
strDateiTest = Application.GetOpenFilename
Workbooks.Open Filename:=strDateiTest
Resume Next
Else
Exit Sub
End If
End Sub
Gruß Ingolf
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige