Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA: Zellen auswählen ohne aktives Worksheet

VBA: Zellen auswählen ohne aktives Worksheet
21.01.2015 22:00:36
MICHA
Hallo,
wie kann ich eine Zelle oder einen Bereich auswählen/markieren ohne vorher das Tabellenblatt aufzurufen, also ohne Sheets("abc").Select oder .activate.
Bei Range(A1).Select muß das Tabellenblatt ausgewählt (aktiv) sein.
Bei Application.Goto ActiveWorkbook.Sheets("abc").Range("B2") wird es aktiv.
Der markierte/ausgewählte Bereich soll anschließend mittels PRINT-Befehl ausgedruckt werden.
Danke, viele Grüße
Michael

Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Zellen auswählen ohne aktives Worksheet
22.01.2015 06:32:06
Hajo_Zi
Hallo Michael,
Warum?

AW: VBA: Zellen auswählen ohne aktives Worksheet
22.01.2015 06:37:13
Oberschlumpf
Hi Hajo
Du hättest deine Frage auch nur mit "?", ohne das Wort davor beschreiben können.
Zumindest für mich beides unverständlich.
Du musst nicht mit ausreichend vielen Wörtern in einem Satz kommunizieren, aber es kann hilfreich sein.
Und es ist doch egal, was ein Fragender für Beweggründe hat.
Entweder es gibt für das gewünschte Ziel eine Lösung, und wir zeigen sie dem Fragenden, oder es gibt keine Lösung, und auch darüber informieren wir den Fragenden.
Ciao
Thorsten

Anzeige
AW: VBA: Zellen auswählen ohne aktives Worksheet
22.01.2015 06:33:13
Oberschlumpf
Hi Michael
Hier, versuhc mal (ungetestet)
Sub sbPrint()
With Sheets("Tabelle2").Range("A1:C1")
.PrintOut Copies:=1, Collate:=True
End With
End Sub
Aktive Tabelle bei mir ist "Tabelle1".
Wenn ich das Makro sbPrint starte, wird aus "Tabelle2" der Bereich A1:C1 gedruckt, ohne, dass ich vorher "Tabelle2" aktivieren/anzeigen muss.
Wenn deine Tabelle, aus der du drucken willst, nicht "Tabelle2" heißt, korrigiere im Code den Eintrag "Tabelle2".
Und korrigiere natürlich den Bereich, den du wirklich ausdrucken willst.
Hilfts?
Wenn nicht, bitte eine Bsp-Datei zeigen...per Upload.
Ciao
Thorsten

Anzeige
AW: VBA: Zellen auswählen ohne aktives Worksheet
22.01.2015 07:52:25
MICHA
Hallo Thorsten,
klasse, das hilft!!
Ist sogar noch besser als geplant, da es ohne select-Befehl auskommt.
Ich habe eben leider nur ohne Drucker testen können - läuft aber ohne Meldung durch und im Spooler liegt ein Druckauftrag... Ich bin optimistisch :-)
Vielen Dank
Michael
Zum Warum: Das Macro soll im Hintergrund mit Hilfe einer Hilfstabelle Etiketten drucken. Die Haupttabelle soll dabei sichtbar bleiben.

Anzeige
AW: VBA: Zellen auswählen ohne aktives Worksheet
22.01.2015 16:53:34
MICHA
Hallo nochmal,
jetzt stellt sich doch noch ein unerwartetes Problem ein.
Da ich die Etiketten innerhalb einer Schleife abarbeite werden für die Zeilen Variablen genutzt. Somit verwende ich im Range Befehl nicht "A1" sondern Cells(1,1).
With Sheets("Etiketten").Range("A1:B2") 'funktioniert
jedoch
With Sheets("Etiketten").Range(Cells(1, 1), Cells(2, 2)) 'funktioniert nicht
.PrintOut Copies:=1, Collate:=True 'Select
End With
woran könnte das liegen?
Viele Grüße
Michael

Anzeige
AW: VBA: Zellen auswählen ohne aktives Worksheet
22.01.2015 16:56:56
MICHA
Hallo nochmal,
jetzt stellt sich doch noch ein unerwartetes Problem ein.
Da ich die Etiketten innerhalb einer Schleife abarbeite werden für die Zeilen Variablen genutzt. Somit verwende ich im Range Befehl nicht "A1" sondern Cells(1,1).
With Sheets("Etiketten").Range("A1:B2") 'funktioniert
jedoch
With Sheets("Etiketten").Range(Cells(1, 1), Cells(2, 2)) 'funktioniert nicht
.PrintOut Copies:=1, Collate:=True 'Select
End With
woran könnte das liegen?
Viele Grüße
Michael

Anzeige
AW: VBA: Zellen auswählen ohne aktives Worksheet
22.01.2015 19:09:26
Oberschlumpf
Hi Michael
So ohne zu testen komm ich jetzt auch nicht weiter, da dein Code eigtl ok aussieht.
Und ich schrieb doch, wenn was nicht geht, dann bitte eine Bsp-Datei per Upload zeigen.
Ciao
Thorsten

AW: VBA: Zellen auswählen ohne aktives Worksheet
22.01.2015 21:14:28
MICHA
Hallo Thorsten,
danke für deine Antwort. Wenn der Code an sich ok erscheint, dann liegt es vermutlich am "drum herum".
Eine Möglichkeit könnnte ein Bild sein, das ich vorher einfüge, dieses Bild bleibt markiert, da ich nicht weiß wie ich es abwählen kann, da ein select ungültig ist (auch nicht innerhalb der With-End With-Anweisung), dann könnte ich eine beliebige Zelle markieren. Vielleicht hast du einen Tip wie ich das Bild un markiert bekomme.
Mein 2. Problem ist den Code so zu kürzen, dass ich ihn posten kann und trotzdem der Fehler auftritt.
Nachdem ich nun weiß, dass der Code an sich ok erscheint versuch ich mal per try and error und würde mich wieder melden.
Bis dahin nochmal danke
Michael

Anzeige
AW: VBA: Zellen auswählen ohne aktives Worksheet
22.01.2015 21:33:53
Oberschlumpf
Hi Michael
zwei Sachen bitte nicht falsch verstehen.
a) ...Nachdem ich nun weiß, dass der Code an sich ok erscheint...
Ich hab nur vermutet, dass dein Code VIELLEICHT ok ist.
Aber wie gesagt, ohne Testen weiß ich das nicht wirklich, ob Code ok oder nich.
b) ...den Code so zu kürzen, dass ich ihn posten kann...
Du sollst den Code BITTE NICHT nur posten, sondern zeig uns bitte eine EXCEL-BSP-DATEI per UPLOAD.
Also so, dass wir auf einen Link klicken müssen, dessen Funktion dann ist, dass wir deine Bsp-Datei downloaden können.
Hoffe, dass ich es jetzt besser/verständlicher formuliert habe.
Ciao
Thorsten

Anzeige
AW: VBA: Zellen auswählen ohne aktives Worksheet
22.01.2015 21:54:09
MICHA
Hallo Thorsten,
noch mal Danke für die Info.
Ich werde schauen wie ich das realisieren kann, da in der Datei firmeninterne Inhalte stehen.
Viele Grüße
Michael

es funtioniert...
23.01.2015 15:39:39
MICHA
... allerdings braucht man .Cells
Tabelle1 ist aktiv,
Sub sbPrint2a()
With Sheets("Tabelle2")
.Range(.Cells(1, 1), .Cells(2, 2)).PrintOut Copies:=1, Collate:=True    'iO
End With
End Sub

Nochmal vielen Dank Thorsten
Michael

Anzeige
AW: es funtioniert...
23.01.2015 16:26:45
Oberschlumpf
Hi Micha
Ja, cool, so solls sein! :-)
Schönes WE für dich.
Ciao
Thorsten
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zellen in Excel VBA auswählen ohne aktives Worksheet


Schritt-für-Schritt-Anleitung

Um in Excel VBA eine Zelle oder einen Bereich auszuwählen, ohne das aktive Worksheet zu wechseln, kannst du folgendes Vorgehen nutzen:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (ALT + F11).
  2. Erstelle ein neues Modul oder öffne ein bestehendes.
  3. Verwende den folgenden Code, um eine bestimmte Zelle oder einen Bereich auszuwählen und auszudrucken:

    Sub sbPrint()
       With Sheets("Tabelle2").Range("A1:C1")
           .PrintOut Copies:=1, Collate:=True
       End With
    End Sub

    In diesem Beispiel druckt das Makro den Bereich A1:C1 in "Tabelle2", ohne das Tabellenblatt aktivieren zu müssen.


Häufige Fehler und Lösungen

  • Fehler: Run-time error '1004': Method 'Range' of object '_Worksheet' failed.

    • Lösung: Stelle sicher, dass der Blattname korrekt ist und das Blatt existiert. Beispiel: Ändere Sheets("Tabelle2") in den tatsächlichen Namen deines Worksheets.
  • Fehler: .Cells funktioniert nicht innerhalb der With-Anweisung.

    • Lösung: Verwende den Punkt vor Cells, um auf das aktuelle Worksheet zuzugreifen, z.B.:
    With Sheets("Tabelle2")
       .Range(.Cells(1, 1), .Cells(2, 2)).PrintOut Copies:=1, Collate:=True
    End With

Alternative Methoden

Falls du eine Zelle oder einen Bereich ohne .Select oder .Activate ansprechen möchtest, kannst du auch die Application.Goto Methode verwenden:

Sub Beispiel()
    Application.Goto Sheets("Tabelle2").Range("B2")
End Sub

Diese Methode ist jedoch nicht ideal, da sie das Worksheet aktiviert. Stattdessen ist die oben beschriebene Methode bevorzugt, um die Sichtbarkeit des Hauptarbeitsblattes zu bewahren.


Praktische Beispiele

Hier sind einige nützliche Beispiele zur Verwendung von Excel VBA, um Zellen auszuwählen:

  1. Drucken eines Bereichs ohne vorherige Aktivierung:

    Sub sbPrintEtiketten()
       With Sheets("Etiketten")
           .Range(.Cells(1, 1), .Cells(2, 2)).PrintOut Copies:=1, Collate:=True
       End With
    End Sub
  2. Dynamisches Auswählen von Zellen in einer Schleife:

    Sub sbDynamischDrucken()
       Dim i As Integer
       For i = 1 To 10
           With Sheets("Etiketten")
               .Range(.Cells(i, 1), .Cells(i + 1, 2)).PrintOut Copies:=1, Collate:=True
           End With
       Next i
    End Sub

Tipps für Profis

  • Vermeide .Select und .Activate: Diese Methoden verlangsamen den Code und sind nicht notwendig. Arbeite direkt mit Objekten.

  • Nutze Option Explicit: Setze am Anfang deines Moduls Option Explicit, um sicherzustellen, dass alle Variablen deklariert werden. Das hilft, Fehler frühzeitig zu erkennen.

  • Debugging: Verwende Debug.Print um Werte in der Konsole auszugeben, sodass du den Code leichter nachvollziehen und Fehler finden kannst.


FAQ: Häufige Fragen

1. Wie kann ich eine bestimmte Zelle auswählen, ohne das Arbeitsblatt zu aktivieren? Du kannst direkt auf eine Zelle zugreifen, indem du den Namen des Arbeitsblattes und den Zellbereich angibst, z.B. Sheets("Tabelle2").Range("A1").Value.

2. Was ist der Unterschied zwischen .Select und .Activate? .Select wählt das Objekt aus, während .Activate das Objekt aktiv macht. In vielen Fällen ist es besser, beide Methoden zu vermeiden und direkt mit Objekten zu arbeiten.

3. Warum funktioniert mein Code nicht mit Cells? Stelle sicher, dass du den Punkt (.) vor Cells verwendest, um auf das aktuelle Worksheet zu verweisen. Beispiel: .Cells(1, 1) statt Cells(1, 1).

4. Wie kann ich mehrere Zellen gleichzeitig drucken? Du kannst einen Bereich über Range oder Cells angeben, z.B. Range("A1:B2").PrintOut.

5. Gibt es eine Möglichkeit, das gedruckte Ergebnis zu überprüfen, ohne einen Drucker zu verwenden? Du kannst den Druckauftrag an einen PDF-Drucker oder einen virtuellen Drucker senden, um das Ergebnis zu überprüfen, ohne physisch zu drucken.

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