Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Datei im Hintergrund öffnen

Forumthread: VBA Datei im Hintergrund öffnen

VBA Datei im Hintergrund öffnen
04.05.2020 12:34:15
KathrinBo
Hallo liebes Forum,
aktuell arbeite ich an einem Code, der aus einer anderen Datei, alle nicht-leeren Zellen einer Spalte, eines variablen Datenblatts kopiert. Das funktioniert auch soweit.
Was aktuell passiert ist, dass ich jedes Mal beim Ausführen des Makros im Dialogfenster die richtige Datei aussuchen muss. Gibt es da einen Weg drum herum? Ich möchte also praktisch, dass Excel die Datei eigenständig öffnet und schließt ohne, dass ich das mitbekomme. Ich habe mich bereits an der getObject Methode versucht und bin kläglich gescheitert. Das hier ist mein Code bisher:
Sub Kopieren()
Dim variable As String, wb As String
variable = ActiveSheet.Range("B2").Text
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Dialogs(xlDialogOpen).Show
'C:\\Laufwerk\Ursprungsdatei.xlsm'
wb = ActiveWorkbook.Name
Workbooks(wb).Sheets(variable).Range("A10:A200").SpecialCells(xlCellTypeFormulas, 1).Copy
ThisWorkbook.Sheets("Arbeitsdatei").Range("X5").PasteSpecial Paste:=xlValues, Operation:=xlNone, _
_
SkipBlanks:= _
True, Transpose:=False
Application.CutCopyMode = False
Workbooks(wb).Close savechanges:=False
Application.DisplayAlerts = True
End Sub

Über Vorschläge würde ich mich sehr freuen!
Viele Grüße
Kathrin
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Datei im Hintergrund öffnen
04.05.2020 13:23:40
Nepumuk
Hallo Kathrin,
teste mal:
Public Sub Kopieren()
    
    Dim variable As String, wb As Workbook
    
    variable = ActiveSheet.Range("B2").Text
    
    Application.ScreenUpdating = False
    
    Set wb = GetObject(PathName:="C:\Laufwerk\Ursprungsdatei.xlsm")
    
    wb.Worksheets(variable).Range("A10:A200").SpecialCells(xlCellTypeFormulas, xlNumbers).Copy
    
    ThisWorkbook.Worksheets("Arbeitsdatei").Range("X5").PasteSpecial _
        Paste:=xlPasteValues, SkipBlanks:=True
    
    Application.CutCopyMode = False
    
    wb.Close SaveChanges:=False
    
    Application.ScreenUpdating = True
    
End Sub

Gruß
Nepumuk
Anzeige
AW: VBA Datei im Hintergrund öffnen
07.05.2020 13:26:37
KathrinBo
Hallo Nepumuk,
erstmal vielen Dank für deine Antwort! Leider erhalte ich einen Laufzeitfehler 432 wenn ich das ganze versuche. Die Datei befindet sich in einem Netzwerkpfad, also habe ich es mit einer Datei versucht, die bei mir auf dem Computer ist - Fehlanzeige. Hast du eine Idee woran das liegen könnte? (Beim Debuggen wird mir die Zeile mit dem Dateipfad gelb hinterlegt)
Viele Grüße
Kathrin
Anzeige
AW: VBA Datei im Hintergrund öffnen
07.05.2020 14:03:27
Nepumuk
Hallo Kathrin,
kann ich nicht nachvollziehen. Die Fehlernummer sagt, dass der Pfad nicht passt.
Gruß
Nepumuk
;
Anzeige
Anzeige

Infobox / Tutorial

VBA Datei im Hintergrund öffnen


Schritt-für-Schritt-Anleitung

Um eine Excel-Datei im Hintergrund zu öffnen und zu schließen, ohne dass ein Dialogfenster erscheint, kannst du den folgenden VBA-Code verwenden. Stelle sicher, dass du den richtigen Pfad zur Datei angibst.

  1. Öffne den VBA-Editor in Excel (Alt + F11).
  2. Füge ein neues Modul hinzu (Rechtsklick auf „VBAProject“ > Einfügen > Modul).
  3. Kopiere den folgenden Code in das Modul:
Public Sub Kopieren()
    Dim variable As String, wb As Workbook
    variable = ActiveSheet.Range("B2").Text
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set wb = GetObject(PathName:="C:\Laufwerk\Ursprungsdatei.xlsm")
    wb.Worksheets(variable).Range("A10:A200").SpecialCells(xlCellTypeFormulas, xlNumbers).Copy
    ThisWorkbook.Worksheets("Arbeitsdatei").Range("X5").PasteSpecial _
        Paste:=xlPasteValues, SkipBlanks:=True
    Application.CutCopyMode = False
    wb.Close SaveChanges:=False
    Application.ScreenUpdating = True
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus.

Häufige Fehler und Lösungen

  • Laufzeitfehler 432: Dieser Fehler tritt auf, wenn der Pfad zur Datei nicht korrekt ist. Überprüfe, ob der angegebene Pfad zur Ursprungsdatei stimmt und dass die Datei auch tatsächlich existiert.
  • Excel Seitenzahl im Hintergrund: Wenn du Probleme hast, die Excel-Seitenzahl im Hintergrund zu verwalten, achte darauf, dass du die Sichtbarkeit der Arbeitsblätter nicht beeinflusst. Du kannst die Funktion Application.ScreenUpdating = False verwenden, um die Bildschirmaktualisierung zu deaktivieren, während das Makro läuft.
  • Excel Seitenzahl im Hintergrund ausblenden: Um die Seitenzahlen im Hintergrund nicht anzuzeigen, kannst du diese Option in den Seiteneinstellungen deaktivieren. Dies ist jedoch nicht direkt durch VBA steuerbar.

Alternative Methoden

Wenn du die Datei nicht über GetObject öffnen möchtest, kannst du auch die Workbooks.Open Methode verwenden. Hier ein Beispiel:

Set wb = Workbooks.Open("C:\Laufwerk\Ursprungsdatei.xlsm", ReadOnly:=True)

Dies öffnet die Datei, ohne sie im Vordergrund anzuzeigen, solange du die Bildschirmaktualisierung deaktivierst.


Praktische Beispiele

Angenommen, du hast eine Excel-Datei namens „Daten.xlsm“, aus der du Daten kopieren möchtest. Stelle sicher, dass du den Pfad in deinem Code entsprechend anpasst:

Set wb = GetObject(PathName:="C:\Pfad\Zu\Deiner\Daten.xlsm")

Das Beispiel oben kopiert bestimmte Zellen und fügt sie in eine Zelle in deiner aktuellen Arbeitsmappe ein.


Tipps für Profis

  • Verwende Application.DisplayAlerts = False, um Dialogfenster zu unterdrücken, die während des Kopiervorgangs erscheinen könnten.
  • Nutze SkipBlanks:=True in der PasteSpecial Methode, um leere Zellen beim Einfügen zu überspringen.
  • Teste deinen Code in einer sicheren Umgebung, bevor du ihn in kritischen Dateien einsetzt, um unerwünschte Datenverluste zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass die Datei im Hintergrund bleibt? Um sicherzustellen, dass die Datei im Hintergrund bleibt, benutze Application.ScreenUpdating = False vor dem Öffnen der Datei. Dadurch wird die Bildschirmaktualisierung deaktiviert.

2. Was kann ich tun, wenn ich keine Berechtigung zum Öffnen der Datei habe? Überprüfe die Berechtigungen für die Datei und stelle sicher, dass du die nötigen Zugriffsrechte hast. Andernfalls kontaktiere den Administrator des Netzwerks.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige