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

Forumthread: Nur einen bestimmten Zellbereich anzeigen

Nur einen bestimmten Zellbereich anzeigen
30.04.2014 12:27:45
Erik
Hallo Forumsmitglieder und Excel-Tüftler/-innen,
ich habe vor zwei Monaten mit einer Excel-Arbeitsmappe gearbeitet, die etwas enthielt, dass ich gern für ein anderes Projekt nutzen würde.
Ich erstelle im Moment eine Eingabemaske, die ich gern optisch etwas deutlich herausstellen will, in dem ich alle Spalten und Zeilen ringsum die Maske komplett ausblende. Es soll dann nur der Hintergrund von Excel zu sehen sein - so als würde man Excel öffnen, aber keine Arbeitsmappe.
Zur besseren Illustration habe ich einen Screenshot angehängt. Weder Google noch die Arbeitsmappe (da passwortgeschützter VBA-Bereich) selbst haben mir weitergeholfen.
Userbild
Ich benötige eigentlich nur einen Hinweis (Befehl/Objekt etc.), da es scheinbar mit "Spalten/Zeilen ausblenden" als solches wenig zu tun zu haben scheint.
Ich danke für eure Hilfe und Unterstützung!
Gruß
Erik

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Nur einen bestimmten Zellbereich anzeigen
30.04.2014 12:30:22
Hajo_Zi
Hallo Erik,
schon, blende unter Optionen noch die Spalten und Zeilenbeschriftung aus.

AW: Nur einen bestimmten Zellbereich anzeigen
30.04.2014 15:23:57
Erik
Hallo Hajo_Zi,
erst einmal vielen Dank für den Tipp - es ist zwar genau das, was ich schon gefunden habe, aber nun bin ich immerhin etwas weiter. Allerdings bin ich noch nicht am Ziel meiner Reise. :)
Folgenden Code habe ich in ein Modul eingetragen:

ActiveWindow.DisplayHeadings = False 'entfernt Zeilen- und Spaltenüberschriften
Rows("1:10").Hidden = False 'Soll eigentlich Zeile 1 bis 10 anzeigen
Columns("A:D").Hidden = False 'Soll eigentlich Spalte A bis D anzeigen
Rows.Hidden = True 'alle anderen Zeilen/Spalten sollen ausgeblendet werden, was er auch  _
prima tut
Columns.Hidden = True
Ich habe gerade noch versucht, ob es an der Reihenfolge der Befehle liegt - auch hier komme ich nicht voran.
Mein Stand ist, dass Excel alle Spalten und Zeilen ausblendet sowie die Überschriften. Aber es blendet nicht die Zeilen und Spalten ein, die ich gern angezeigt haben möchte. :(
Kannst du mir einen Tipp geben? Natürlich auch jeder, der die Antwort kennt bzw. mir reicht auch das Ende vom roten Faden. Danke!
Gruß
Erik

Anzeige
AW: Nur einen bestimmten Zellbereich anzeigen
30.04.2014 15:33:07
Hajo_Zi
Hallo Erik,
die Logik ist mir nicht klar aber Du wirst schon Deinen Grund dafür habe , warum die erst Zeilen und Spalten einblendest und hinterher alles ausblendest. Da brauchst Du es nicht vorher einblenden.
Ich hätte es wohl umgekehrt gemacht.
Gruß Hajo

Anzeige
AW: Nur einen bestimmten Zellbereich anzeigen
30.04.2014 16:35:14
Erik
Hallo Hajo_Zi,
ich habe die Nicht-Logik gewählt, weil die Logik nicht funktioniert (hat). D.h. mein erster Versuch sah so aus:

ActiveWindow.DisplayHeadings = False 'entfernt Zeilen- und Spaltenüberschriften
Rows.Hidden = True 'alle anderen Zeilen/Spalten sollen ausgeblendet werden, was er auch  _
prima tut
Columns.Hidden = True
Rows("1:10").Hidden = False 'Soll eigentlich Zeile 1 bis 10 anzeigen
Columns("A:D").Hidden = False 'Soll eigentlich Spalte A bis D anzeigen

Dieser hat leider meinen Wunsch nicht erfüllt...
Trotzdem danke für den Hinweis.
Gruß
Erik

Anzeige
AW: Nur einen bestimmten Zellbereich anzeigen
01.05.2014 13:30:18
Tino
Hallo,
hier mal eine Version für einen Zusammenhängenden Bereich.
In rngSicht den Sichtbaren Bereich angeben inklusive der Tabelle.
Sub Bereich_Maskieren()
Dim rngSicht As Range
'Sichtbarer Bereich 
Set rngSicht = Tabelle1.Range("B5:H50")

Application.ScreenUpdating = False
With rngSicht.Parent
    'activieren 
    .Select
    'Druckbereich aufheben 
    .PageSetup.PrintArea = ""
    ActiveWindow.DisplayGridlines = False
    ActiveWindow.DisplayHeadings = False
    'erst einblenden 
    .Cells.EntireRow.Hidden = False
    .Cells.EntireColumn.Hidden = False
    'Hintergrundfarbe 
    rngSicht.Interior.Color = RGB(175, 255, 255)
    'Bereich invertieren und ausblenden 
    'Zeilen oben 
    If rngSicht.Rows(1).Row > 1 Then
       .Rows(1).Resize(rngSicht.Rows(1).Row - 1).EntireRow.Hidden = True
    End If
    'Zeilen unten 
    If rngSicht.Rows(rngSicht.Rows.Count).Row < .Rows.Count Then
       .Range(.Rows(rngSicht.Rows(rngSicht.Rows.Count).Row + 1), _
              .Rows(.Rows.Count)).EntireRow.Hidden = True
    End If
    'Spalten links 
    If rngSicht.Columns(1).Column > 1 Then
       .Columns(1).Resize(rngSicht.Columns(1).Column - 1).EntireColumn.Hidden = True
    End If
    'Spalten rechts 
    If rngSicht.Columns(rngSicht.Columns.Count).Column < .Columns.Count Then
       .Range(.Columns(rngSicht.Columns(rngSicht.Columns.Count).Column + 1), _
              .Columns(.Columns.Count)).EntireColumn.Hidden = True
    End If
End With
Application.ScreenUpdating = True

End Sub
Gruß Tino

Anzeige
AW: Nur einen bestimmten Zellbereich anzeigen
01.05.2014 15:48:34
Erik
Hallo Hajo und Forum,
ich meinen Code jetzt wie folgt erweitert:

Dim MaxRows, MaxCols As Long
MaxRows = Application.Rows.Count
MaxCols = Application.Columns.Count
ActiveWindow.DisplayHeadings = False 'entfernt Zeilen- und Spaltenüberschriften
ActiveSheet.Rows("11:" & MaxRows).Hidden = True 'blendet Zeile 11 bis zur letzten Zeile aus
Active.Sheet.Columns("A:" & MaxCols).Hidden = True 'blendet Spalte E bis zur letzten Spalte aus/ _
funktioniert leider so nicht :(
Das Zeilenausblenden funktioniert, das mit der Spalte ist wieder schwierig, weil MaxCols eine Long Integer enthält und nicht den letzten verfügbaren Spaltenbuchstabe.
@Toni: Vielen Dank für den Code, ich werde ihn mir am Montag anschauen. Er klingt sehr plausibel.
Ich frage dennoch mal in die Runde, ob mein Ansatz Potential hätte, zu funktionieren.
Gruß
Erik

Anzeige
AW: Nur einen bestimmten Zellbereich anzeigen
04.05.2014 01:20:42
Ewald
Hallo,
teste mal so.
Dim rowstart As Long
Dim rowende As Long
Dim colstart As Long
Dim colende As Long
ActiveWindow.DisplayHeadings = False 'entfernt Zeilen- und Spaltenüberschriften
With ActiveSheet
.Columns.Hidden = False
.Rows.Hidden = False
colstart = 5
rowstart = 10
colende = ActiveSheet.Columns.Count
rowende = ActiveSheet.Rows.Count
Range(Columns(colstart), Columns(colende)).EntireColumn.Hidden = True
Range(Rows(rowstart), Rows(rowende)).EntireRow.Hidden = True
End With
Gruß Ewald

Anzeige
AW: Nur einen bestimmten Zellbereich anzeigen
05.05.2014 11:24:22
Erik
Hallo Tino & Ewald,
ich habe eure Codezeilen ausprobiert.
@Tino: Es ist nicht ganz das, was ich suche. Auf deinen Weg bin ich gar nicht gekommen. Deine Codezeilen färben die gewünschten Zeilen blau. Ich wollte es allerdings so haben, dass alle Zeilen/Spalten, die ich nicht benötige, tatsächlich ausgeblendet werden.
@Ewald: Dein Tipp bringt mich schon weiter. Allerdings erhalte ich den Laufzeitfehler 1004: "Die Hidden-Eigenschaft des Rangeobjektes kann nicht festgelegt werden."
Folgenden Code habe ich ein Modul geschrieben:

Private Sub ShowCertainRange()
Dim rowstart As Long
Dim rowende As Long
Dim colstart As Long
Dim colende As Long
ActiveWindow.DisplayHeadings = False 'entfernt Zeilen- und Spaltenüberschriften
Worksheets("Tabelle1").Activate
With ActiveSheet
.Columns.Hidden = False
.Rows.Hidden = False
colstart = 5
rowstart = 10
colende = ActiveSheet.Columns.Count
rowende = ActiveSheet.Rows.Count
Range(Columns(colstart), Columns(colende)).EntireColumn.Hidden = True
Range(Rows(rowstart), Rows(rowende)).EntireRow.Hidden = True
End With
End Sub
Die Fehlermeldung tritt in dieser Zeile auf:

Range(Rows(rowstart), Rows(rowende)).EntireRow.Hidden=True
Das Blatt ist nicht geschützt, ich kann Spalten manuell ausblenden. Es gibt im Sichtbereich allerdings verbundene Zellen. Diese liegen innerhalb des sichtbaren Bereiches (d.h. die ausgeblendeten Spalten/Zeilen enthalten keine verbundenen Zellen, auch nicht an den Grenzen).
Verrückterweise funktioniert der Code in einer leeren Mappe wunderbar. :(
Ich hänge die Tabelle jetzt mal dran. Ab Zeile 43 (rowstart) funktioniert es. Mit einer niedrigeren Zeilenzahl funktioniert es nicht...
https://www.herber.de/bbs/user/90489.xlsm
Das Modul heißt "MdlShowCertainRange".
Könnt ihr mir bitte nochmal helfen? Wäre toll! :) Danke.
Gruß
Erik
Anzeige
;

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

Nur einen bestimmten Zellbereich in Excel anzeigen


Schritt-für-Schritt-Anleitung

Um in Excel nur einen bestimmten Bereich anzuzeigen und den Rest auszublenden, kannst du die folgenden Schritte ausführen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11.
  2. Erstelle ein neues Modul:

    • Klicke im VBA-Editor auf Einfügen und wähle Modul.
  3. Füge den folgenden Code ein:

    Sub ShowCertainRange()
       Dim rowstart As Long
       Dim rowende As Long
       Dim colstart As Long
       Dim colende As Long
    
       ActiveWindow.DisplayHeadings = False 'entfernt Zeilen- und Spaltenüberschriften
       With ActiveSheet
           .Columns.Hidden = False
           .Rows.Hidden = False
    
           colstart = 5  ' Startspalte (z.B. E)
           rowstart = 10 ' Startzeile (z.B. 10)
           colende = .Columns.Count
           rowende = .Rows.Count
    
           ' Blende die Spalten und Zeilen aus, die nicht benötigt werden
           Range(Columns(colstart), Columns(colende)).EntireColumn.Hidden = True
           Range(Rows(rowstart), Rows(rowende)).EntireRow.Hidden = True
       End With
    End Sub
  4. Führe das Makro aus:

    • Gehe zurück zu Excel, drücke ALT + F8, wähle ShowCertainRange und klicke auf Ausführen.

Damit wird nur der spezifische Zellbereich angezeigt, während der Rest der Excel-Oberfläche grau hinterlegt wird.


Häufige Fehler und Lösungen

  • Fehler 1004: „Die Hidden-Eigenschaft des Rangeobjektes kann nicht festgelegt werden“: Dieser Fehler kann auftreten, wenn verbundene Zellen im ausgeblendeten Bereich vorhanden sind. Stelle sicher, dass keine verbundenen Zellen innerhalb des Bereichs liegen, den du ausblenden möchtest. Wenn dies der Fall ist, versuche es mit einem anderen Bereich oder entferne die verbundenen Zellen.

  • Bereich wird nicht wie gewünscht angezeigt: Überprüfe, ob die Zeilen- und Spaltenköpfe wirklich ausgeblendet sind, und ob du die richtigen Zeilen und Spalten im Code angegeben hast.


Alternative Methoden

  1. Verwende die Optionen in Excel:

    • Du kannst auch manuell Spalten und Zeilen ausblenden, indem du mit der rechten Maustaste auf die entsprechenden Überschriften klickst und „Ausblenden“ auswählst.
  2. Hintergrundfarbe ändern:

    • Anstatt nur zu blenden, kannst du auch den Hintergrund des gewünschten Bereichs ändern, um ihn hervorzuheben. Nutze dafür die Funktion Interior.Color im VBA-Code.

Praktische Beispiele

Hier ist ein Beispiel, wie du den Hintergrund nur für einen bestimmten Bereich in Excel ändern kannst:

Sub SetBackgroundColor()
    Dim rng As Range
    Set rng = Worksheets("Tabelle1").Range("B5:H50")

    rng.Interior.Color = RGB(175, 255, 175) ' Setzt die Hintergrundfarbe auf ein sanftes Grün
End Sub

Diese Methode hilft dir, den gewünschten Bereich visuell zu unterscheiden, während der Rest der Tabelle ausgeblendet bleibt.


Tipps für Profis

  • Verwende Variablen für Flexibilität: Definiere Variablen für rowstart, rowende, colstart und colende, um den Code leicht anpassen zu können, ohne ihn jedes Mal neu schreiben zu müssen.

  • Benutze Application.ScreenUpdating = False: Setze dies vor dem Ausblenden ein, um die Aktualisierung des Bildschirms während der Ausführung zu verhindern. Dies kann die Ausführungsgeschwindigkeit erhöhen.

Application.ScreenUpdating = False
' ... dein Code ...
Application.ScreenUpdating = True

FAQ: Häufige Fragen

1. Wie kann ich nur bestimmte Zellen anzeigen? Du kannst die Methode zum Ausblenden von Spalten und Zeilen verwenden, um nur die gewünschten Zellen sichtbar zu lassen. Stelle sicher, dass du die richtigen Indizes im Code angibst.

2. Kann ich mehrere Bereiche gleichzeitig anzeigen? Ja, du kannst den Code anpassen, um mehrere Bereiche zu definieren und nur diese anzuzeigen, indem du entsprechende If-Bedingungen hinzufügst.

3. Warum wird der Hintergrund nicht grau, wenn ich den Bereich ausblende? Das liegt daran, dass das Ausblenden von Zeilen und Spalten nicht den Hintergrund ändert. Du musst die Hintergrundfarbe für den gewünschten Bereich explizit einstellen, um eine graue Darstellung zu erhalten.

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