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

Zellbereiche mit Namen in Makro ansprechen

Forumthread: Zellbereiche mit Namen in Makro ansprechen

Zellbereiche mit Namen in Makro ansprechen
16.10.2002 18:04:17
Markus
Innerhalb einer Excel-Tabelle gebe ich einer Spalte einen eigenen Namen (z.B. Spalte A - "Name").

Nun möchte ich per Makro alle Spalten ausblenden und anschließend nur bestimmte Spalten wieder einblenden (z. B. die Spalte "Name".

Wie kann ich das realisieren? Ist das möglich?

Für eure Hilfe bedanke ich mich im voraus!

Gruß

Markus

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Zellbereiche mit Namen in Makro ansprechen
16.10.2002 18:23:51
Nike
Hi,
wenn der Zellbereich z.B. Test heißt, dann so:

Es werden die ersten 10 Spalten geprüft...

Bye

Nike

Re: Zellbereiche mit Namen in Makro ansprechen
16.10.2002 18:58:35
Markus
Wow, super schnelle Antwort. Und funktionieren tut es auch noch! Vielen Dank!

Aber jetzt habe ich noch eine neue Frage:

Wie kann ich in der Zeile:
Set isect = Application.Intersect(Columns(intCol), Range("Test"))

sagen, daß ich z.B. die Spalte "Test1" und "Test29" anzeigen lassen will?

Mit Range("test1","test29")) legt er mir den gesamten Bereich zwischen test1 bis test29 fest. Ich erhalte 29 Spalten angezeigt anstatt 2!

Anzeige
Re: Zellbereiche mit Namen in Makro ansprechen
16.10.2002 19:10:00
Nike
Hi,
du hast das ein bischen falsch verstanden,
das Skript prüft, ob der Zellbereich Test die Spalten 1 bis 10
überlappt, tut er das, werden die entsprechenden Spalten nicht ausgeblendet, alle anderen werden ausgeblendet.
Um gezielt die Bereiche einzublenden schreibst du:
Range("Test1").Hidden = False
Range("Test29").Hidden = False

Bye

Nike

Anzeige
Re: Zellbereiche mit Namen in Makro ansprechen
17.10.2002 08:09:29
Markus
Nochmals danke! Werde es probieren! 1000-dank!
Re: Zellbereiche mit Namen in Makro ansprechen
17.10.2002 17:01:34
Markus
bei: Range("Test1").Hidden = False

erhalte ich die Fehlermeldung:

"Die Hidden-Eigenschaft des Range-Objektes kann nicht
festgelegt werden"

Woran liegt das? Was mache ich falsch?

Re: Zellbereiche mit Namen in Makro ansprechen
18.10.2002 05:09:24
Nike
Hi,
Du machst nix falsch, die Hilfe sagt folgendes:
"Der angegebene Bereich muss eine ganze Zeile oder Spalte umfassen. "
Also müßte man die gesamte Zeile bzw Spalte die der Bereich
Test umfaßt ausblenden...
Ist Test nur eine Zelle oder mehrere???
Wenn`s nur eine ist, könnte man die entsprechende Zeile oder Spalte auslesen und so die gesamte Zeile/Spalte ausblenden...

Worksheets(1).Columns(Worksheets(1).Range("Test").Column).Hidden = False


Bye

Nike

Anzeige
Re: Zellbereiche mit Namen in Makro ansprechen
18.10.2002 19:25:34
Markus
Ahhhhh, jetzt haben wir es! 100%-ig! Vielen Dank, Nike. Genau so wollte ich es haben! :-)

Forumthreads zu verwandten Themen

Anzeige

Infobox / Tutorial

Zellbereiche mit Namen in Excel VBA ansprechen


Schritt-für-Schritt-Anleitung

  1. Zellbereich benennen: Wähle den Bereich in deiner Excel-Tabelle aus, den du benennen möchtest, zum Beispiel die Spalte A. Gehe dazu auf das Namensfeld links von der Formelleiste und gib einen Namen ein, z.B. Name.

  2. Makro erstellen: Öffne den VBA-Editor (Alt + F11) und füge ein neues Modul ein.

  3. Makrocode eingeben: Verwende folgenden Code, um alle Spalten auszublenden und nur die benannte Spalte wieder einzublenden:

    Sub SpaltenAusblenden()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Worksheets(1) ' Arbeitsblatt auswählen
    
       ' Alle Spalten ausblenden
       ws.Columns.Hidden = True
    
       ' Bestimmte Spalten wieder einblenden
       ws.Range("Name").EntireColumn.Hidden = False
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und führe das Makro über das Menü Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Fehlermeldung "Die Hidden-Eigenschaft des Range-Objektes kann nicht festgelegt werden": Diese Meldung tritt auf, wenn der angegebene Bereich nicht korrekt definiert ist. Stelle sicher, dass der Name des Zellbereichs korrekt ist und dass du die gesamte Zeile oder Spalte ansprechen möchtest.

  • Falscher Bereich wird angezeigt: Wenn du Range("Test1", "Test29") verwendest, wird der gesamte Bereich zwischen Test1 und Test29 ausgewählt. Stattdessen solltest du die Spalten einzeln ansprechen, wie folgt:

    ws.Range("Test1").Hidden = False
    ws.Range("Test29").Hidden = False

Alternative Methoden

Eine alternative Methode besteht darin, den Namen des Zellbereichs direkt zu verwenden, um eine Zelle mit Namen in Excel VBA anzusprechen. Hier ist ein Beispiel:

Sub SpalteMitNamenEinblenden()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets(1)

    ' Spalte mit Namen einblenden
    ws.Range("Name").EntireColumn.Hidden = False
End Sub

Diese Methode erleichtert das Arbeiten mit benannten Bereichen und verbessert die Lesbarkeit des Codes.


Praktische Beispiele

  1. Einblenden mehrerer Spalten: Wenn du mehrere Spalten mit Namen hast, kannst du sie so einblenden:

    Sub MehrereSpaltenEinblenden()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Worksheets(1)
    
       ws.Range("Test1").EntireColumn.Hidden = False
       ws.Range("Test29").EntireColumn.Hidden = False
    End Sub
  2. Zellbereich prüfen: Um zu prüfen, ob ein benannter Zellbereich in einem bestimmten Bereich liegt, verwende:

    If Not Intersect(ws.Columns(intCol), ws.Range("Test")) Is Nothing Then
       ' Code zum Einblenden
    End If

Tipps für Profis

  • Nutze die Funktion Application.Names für eine dynamische Verwaltung von benannten Bereichen. Damit kannst du alle Namen in deiner Arbeitsmappe schnell auflisten und bearbeiten.

  • Verwende Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler frühzeitig zu erkennen und den Code sauberer zu halten.


FAQ: Häufige Fragen

1. Wie kann ich einen benannten Bereich in einem anderen Arbeitsblatt ansprechen?
Du kannst den Arbeitsblattnamen vor dem Bereich angeben, z.B. Worksheets("Sheet2").Range("MeinBereich").

2. Was mache ich, wenn ich mehrere Bereiche habe, die ich einblenden möchte?
Du kannst eine Schleife verwenden, um eine Liste der benannten Bereiche zu durchlaufen und sie einzublenden. Beispiel:

Dim namen As Variant
namen = Array("Test1", "Test29")

For Each name In namen
    ws.Range(name).Hidden = False
Next name

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige