Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
896to900
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
896to900
896to900
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
workbook activate
21.08.2007 15:33:33
Rainer
Guten nachmittag allerseits
ich habe trotz der ausführlichen aktivitäten zu diesem Thema nicht genau das gefunden was ich brauche. Ich habe ein etwas spezielleres problem.
Ich öffne mit einer Datei ("Tool_Master") zwei andere. Der Pfad und Dateiname dieser zwei neuen Dateien, nennen wir sie A und B, liegen im Tabellenblatt "Pfade Originaldateien" im File "Tool_Master.xls.
Pfad Datei A: Zelle B8
Dateinamen Datei A: C8
Pfad Datei B: Zelle B9
Pfad Datei C: Zelle C9
In der Spalte D sind Pfad und dateinamen zusammengehängt in einer Zelle
Das öffnen klappt ganz prima. Nur möchte ich die Files danach auch wieder schliessen. Und bei meinem bescheidenen Wissensstand von VBA habe ich versucht, zuerst das zu schliessende File zu aktivieren,, um es dann zu schliessen. Aber genau das habe ich nicht hingekriegt.
Hier habe ich noch meinen Code (ich hoffe es wird euch nicht grad schlecht falls es krüpplig programmiert ist. Ich habe einfach mal soviel ich konnte zusammengebastelt ;-)

Sub CashDiscount()
Public wksQuelle As Worksheet
Public wksZiel As Worksheet
Public wbkQuelle As Workbook
Public wbkZiel As Workbook
For Each wbkQuelle In Application.Workbooks
If LCase(wbkQuelle.Name) = LCase(Range("D8")) Then Exit For
Next
If wbkQuelle Is Nothing Then
Set wbkQuelle = Workbooks.Open(Worksheets("Pfade Originaldateien").Range("D8"))
End If
Workbooks("Tool_Master.xls").Activate
Sheets("Pfade Originaldateien").Select
For Each wbkZiel In Application.Workbooks
If LCase(wbkZiel.Name) = LCase(Range("D9")) Then Exit For
Next
If wbkZiel Is Nothing Then
Set wbkZiel = Workbooks.Open(Worksheets("Pfade Originaldateien").Range("D9"))
End If
Set wksQuelle = wbkQuelle.Worksheets("Tabelle2")
Set wksZiel = wbkZiel.Worksheets("Tabelle1")
lngBisZeile = wksZiel.Cells(Rows.Count, lngSpalteZielA).End(xlUp).Row
'hier käme noch mehr Funktionalität, aber das sollt keine Rolle spielen, denn der Fehler ist  _
der selbe wenn ich's ausgeklammert habe.
Application.Workbooks("wbkQuelle").Activate
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub


bei deisem Code sagt er mir, der Index läge ausserhalb des gültigen bereichs. Ich denke es stimmt etwas mit dieser Syntax nicht: "Application.Workbooks("wbkQuelle").Activate
". liege ich da richtig?
ich würde mich über einen Tipp freuen
Viele Grüsse
Rainer

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: workbook activate
21.08.2007 15:38:00
Rudi
Hallo,
du hast doch schon so schön Objektvariablen verwendet.
Anstatt
Application.Workbooks("wbkQuelle").Activate
ActiveWorkbook.Save
ActiveWorkbook.Close
einfach
wbkQuelle.close true
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

du bist super!
21.08.2007 16:24:52
Rainer
danke, hat bestens geklappt.
ps: ja, ich gebe mir ja auch mühe! ;-)
Anzeige

36 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige