Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

zwischen mehreren Workbook wechseln

Forumthread: zwischen mehreren Workbook wechseln

zwischen mehreren Workbook wechseln
Stefan
Hallo Zusammen,
ich habe eine Tabelle mit Begriffen in Range("A"). Nun möchte ich die Werte aus der Spalte mit einer Tabelle aus einem anderen Workbook vergleichen. Dort muß ich erst das richtige Sheet auswählen und dann zeilenweise kontrollieren, ob der Wert vorkommt. Mit VBA habe ich dies alles soweit hinbekommen, das Problem ist nur, wenn ich immer das Referenz-Workbook öffne und wieder schließe, dauert es ätzend lange. Deshalb möchte ich beide Wookbooks geöffnet haben und erst zum Schluß die Referenz xls schließen.
Jetzt weiß ich nicht wie ich die Sheets().select in den unterschiedlichen Workbooks ansprechen kann, ohne das die Fehlermeldung 9 kommt.
Sheet("Referenz").select ....
Ich hoffe ihr könnt mir helfen. Schon einmal vielen Dank. Stefan
Anzeige

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

Betreff
Benutzer
Anzeige
Du musst das Workbook einfach mit Ansprechen...
03.12.2010 11:23:27
Björn
Hallo Stefan,
also so:
Workbooks("Dein Mappenname.xls").Worksheets("Referenz").Select
Wobei ich das sehr ungern schreibe, weil Du das Select zu 99% nicht brauchst und das eine - bitte nicht falsch verstehen - sehr schlechte Art der Programmierung ist, die sehr gern von Anfängern so gemacht wird, weil es der blöder Makrorekorder so aufzeichnet und man es so übernimmt, weil man es nicht besser weiß.
In den meisten Fällen kann auf .Select und .Activate verzichtet werden.
Schau Dir dazu bitte das hier an:
http://de.wikibooks.org/wiki/VBA_in_Excel_-_Grundlagen:_Selection#Selection.2C_mu.C3.9F_das_sein.3F
Gruß
Björn B.
Anzeige
AW: Du musst das Workbook einfach mit Ansprechen...
03.12.2010 11:33:52
Stefan
Vielen Dank, es hat mir shr geholfen. Hatte bei Workbooks("Referenz.xls") die Endung xls vergessen.
Vielen Dank noch mal.
Stefan
;
Anzeige
Anzeige

Infobox / Tutorial

Zwischen mehreren Workbooks wechseln in Excel mit VBA


Schritt-für-Schritt-Anleitung

  1. Workbook öffnen: Stelle sicher, dass beide Workbooks geöffnet sind, bevor du mit dem VBA-Skript arbeitest.

  2. Workbook aktivieren: Um ein bestimmtes Workbook zu aktivieren, benutze den folgenden Befehl:

    Workbooks("DeinMappenname.xls").Activate
  3. Sheet auswählen: Um ein bestimmtes Sheet innerhalb des aktivierten Workbooks auszuwählen, verwende:

    Workbooks("DeinMappenname.xls").Worksheets("Referenz").Select
  4. Werte vergleichen: Nutze eine Schleife, um zeilenweise die Werte in deiner Tabelle zu überprüfen. Ein Beispiel könnte so aussehen:

    Dim ws1 As Worksheet
    Dim ws2 As Worksheet
    Dim cell As Range
    
    Set ws1 = ThisWorkbook.Worksheets("DeinSheet1")
    Set ws2 = Workbooks("DeinMappenname.xls").Worksheets("Referenz")
    
    For Each cell In ws1.Range("A1:A100")
       If Application.WorksheetFunction.CountIf(ws2.Range("A:A"), cell.Value) > 0 Then
           ' Führe deine Aktion hier aus
       End If
    Next cell

Häufige Fehler und Lösungen

  • Fehlermeldung 9: Diese tritt häufig auf, wenn das angegebene Workbook oder Sheet nicht existiert. Überprüfe den Namen des Workbooks und der Sheets auf Tippfehler.

  • Workbook nicht gefunden: Stelle sicher, dass das Workbook, das du aktivieren möchtest, auch tatsächlich geöffnet ist. Andernfalls gibt es eine Fehlermeldung.


Alternative Methoden

  • Verwendung von Workbook-Objekten: Anstatt das Workbook zu aktivieren, kannst du direkt auf das Workbook-Objekt zugreifen, um die Performance zu verbessern. Beispiel:

    Dim wb As Workbook
    Set wb = Workbooks("DeinMappenname.xls")
    wb.Worksheets("Referenz").Range("A1").Value = "Neuer Wert"
  • Verwendung von Application-Funktionen: Du kannst auch die Application-Funktionen verwenden, um zwischen Excel Sheets zu wechseln, ohne die Workbooks zu aktivieren oder zu selektieren.


Praktische Beispiele

Hier sind einige Beispiele, wie du effizient zwischen Excel Sheets wechseln kannst:

  • Werte von einem Workbook in ein anderes übertragen:

    Dim source As Workbook
    Dim target As Workbook
    Set source = ThisWorkbook
    Set target = Workbooks("ZielMappenname.xls")
    
    target.Worksheets("ZielSheet").Range("A1").Value = source.Worksheets("QuellSheet").Range("A1").Value
  • Kombinierte Schleifen für mehrere Sheets:

    Dim ws As Worksheet
    For Each ws In Workbooks("DeinMappenname.xls").Worksheets
       ' Führe Aktionen auf jedem Worksheet aus
       ws.Range("A1").Value = "Bearbeitet"
    Next ws

Tipps für Profis

  • Vermeide .Select und .Activate: Der Verzicht auf Select und Activate kann den Code schneller und stabiler machen. Arbeite direkt mit den Objekten.

  • Nutze Option Explicit: Am Anfang deiner Module solltest du Option Explicit verwenden, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.

  • Nutze Error Handling: Implementiere Error Handling, um unerwartete Fehler abzufangen und den Workflow zu optimieren.


FAQ: Häufige Fragen

1. Wie kann ich ein Workbook aktivieren, das nicht sichtbar ist?
Du kannst ein Workbook aktivieren, indem du den Befehl Workbook.Activate verwendest, aber das Workbook muss geöffnet sein.

2. Was kann ich tun, wenn ich eine Fehlermeldung erhalte, dass das Sheet nicht gefunden wurde?
Überprüfe die Namen des Workbooks und des Sheets auf Tippfehler. Stelle sicher, dass das Workbook geöffnet ist und der Name exakt übereinstimmt.

3. Gibt es eine Möglichkeit, zwischen Excel-Sheets zu wechseln, ohne sie zu aktivieren?
Ja, du kannst direkt auf die Range oder die Zellen eines Sheets zugreifen, ohne das Sheet zu aktivieren, indem du den vollständigen Verweis verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige