Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1584to1588
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
Inhaltsverzeichnis

Problem beim Springen zwischen Dateien (VBA)

Problem beim Springen zwischen Dateien (VBA)
09.10.2017 08:32:31
Markus
Hallo,
ich möchte gerne neben der aktuell geöffneten Datei noch zwei weitere Excel-Dateien öffnen bzw. bearbeiten und muss dazu zwischen den Dateien springen.
Ich habe es wie folgt probiert, erhalte hier aber immer den Fehler, dass der Focus Out of Range ist.
Vermutlich spreche ich die Dateien falsch an, so dass Excel nicht weiss, auf welche Datei ich mich gerade beziehe.
Kann mir jemand sagen, was ich falsch mache ?
Mein Code (Auszug):
Sub Test()
Dim varFileC As Workbook, varFileP As Workbook, varLastRow As Long, varPathC As String,  _
varPathP As String, varRowPaste As Long, varSourceSheet As Worksheet, varTargetSheet As Worksheet
Worksheets(3).Select
Worksheets(3).Range("D:D").ClearContents
Worksheets(2).Cells.ClearContents
With Worksheets(1)
varSourceSheet = .Range("SourceSheet").Value
varTargetSheet = .Range("TargetSheet").Value
varPathC = .Range("PathC").Value  ' der komplette Pfad der Datei
varPathP = .Range("PathP").Value  ' der komplette Pfad der Datei
End With
Set varFileC = Workbooks.Open(varPathC)
' clear old data
With varFileC.Sheets(varSourceSheet)
varLastRow = .Range("A" & Rows.Count).End(xlUp).Row
If varLastRow = 1 Then
varLastRow = 2
End If
.Range("A2:G" & varLastRow).ClearContents
varLastRow = .Range("H" & Rows.Count).End(xlUp).Row
.Range("H3:N" & varLastRow).ClearContents
End With
Set varFileP = Workbooks.Open(Filename:=varPathP, ReadOnly:=True)
' refresh data
With varFileP.Sheets(varTargetSheet)
varFileP.RefreshAll
End With
Vielen Dank im Voraus für Eure Hilfe,
Markus

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem beim Springen zwischen Dateien (VBA)
09.10.2017 09:34:47
Daniel
Hi
wenn du mit mehreren Dateien arbeitest, musst du jeden Zellbereich immer vollständig referenzieren, dh immer mit Workbook.Worksheet.Range
Die Datei, welche den Code enthält, kannst du über THISWORKBOOK ansprechen.
Gruß Daniel
AW: Problem beim Springen zwischen Dateien (VBA)
09.10.2017 13:04:32
Markus
Hallo Daniel,
vielen Dank für Deine Nachricht.
Ich dachte, das mache ich schon oder heißt das, ich kann hier nicht mit With arbeiten ?
Kannst Du mir ein konkretes Beispiel geben ?
VG,
Markus
AW: Problem beim Springen zwischen Dateien (VBA)
09.10.2017 13:15:07
Markus
...ich hab die Lösung gefunden - trotzdem vielen Dank !
VG,
Markus
AW: Problem beim Springen zwischen Dateien (VBA)
09.10.2017 13:28:24
Daniel
Du machst es manchmal, aber nicht immer.
Gruß Daniel
Anzeige
AW: Problem beim Springen zwischen Dateien (VBA)
09.10.2017 09:37:41
Nepumuk
Hallo Markus,
in welcher Zeile bekommst du welche Fehlermeldung?
Gruß
Nepumuk
AW: Problem beim Springen zwischen Dateien (VBA)
09.10.2017 12:58:47
Markus
Hallo Nepumuk,
vielen Dank für Deine Nachricht.
Ich habe den Code jetzt noch einmal ein bisschen umstrukturiert, damit zusammen steht, was zusammen gehört (s.u.).

Mein Fehler:
"Run-time error 9: Subscript out of range."

Der Fehler erscheint in folgender Zeile, also nach dem Öffnen der beiden Dateien (was soweit funktioniert):
With varFileC.Sheets(varSourceSheet)
Mein Code (aktualisiert):
    Dim varFileC As Workbook, varFileP As Workbook, varLastRow As Long, varPathC As String,  _
varPathP As String, varRowPaste As Long, varSourceSheet As String, varTargetSheet As String
Worksheets(3).Select
With Worksheets(1)
varRowPaste = 1 'no headers
varSourceSheet = .Range("SourceSheet").Value
varTargetSheet = .Range("TargetSheet").Value
varPathC = .Range("PathC").Value  ' kompletter Dateipfad
varPathP = .Range("PathP").Value  ' kompletter Dateipfad
End With
Worksheets(3).Range("D:D").ClearContents
Worksheets(2).Cells.ClearContents
Set varFileC = Workbooks.Open(varPathC)
With varFileC.Sheets(varSourceSheet)
varLastRow = .Range("A" & Rows.Count).End(xlUp).Row
If varLastRow = 1 Then
varLastRow = 2
End If
.Range("A2:G" & varLastRow).ClearContents
varLastRow = .Range("H" & Rows.Count).End(xlUp).Row
.Range("H3:N" & varLastRow).ClearContents
End With
Set varFileP = Workbooks.Open(Filename:=varPathP, ReadOnly:=True)
With varFileP.Sheets(varTargetSheet)
varFileP.RefreshAll
End With

Anzeige
AW: Problem beim Springen zwischen Dateien (VBA)
09.10.2017 13:06:39
Nepumuk
Hallo Markus,
der Fehler sagt, du willst auf ein Objekt zugreifen das es nicht gibt. Prüfe den Namen der Tabelle und den in der Tabelle, da gibt es eine Differenz (z.B. ein Leerzeichen am Anfang oder am Ende).
Gruß
Nepumuk
AW: Problem beim Springen zwischen Dateien (VBA)
09.10.2017 13:16:02
Markus
Hallo Nepumuk,
vielen Dank - ich hab die Lösung gerade gefunden. :)
Danke für den Stoß in die richtige Richtung.
VG,
Markus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige