Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1128to1132
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tabellenblatt per Makro ein-/ ausblenden

Tabellenblatt per Makro ein-/ ausblenden
Bibabutzel
Hallo Ecxel-Gemeinde,
ich mache gerade meine ersten eigenen Gehversuche in Sachen VBA und benötige mal bitte Eure Hilfe. Das Problem ist (für die, die es können) wahrscheinlich ein relativ einfaches:
Im Bereich A20:A59 stehen Namen und zu jedem dieser Namen gibt es ein Tabellenblatt (das ebenfalls so heißt). Im Bereich B20:BA59 steht nichts. Sobald jetzt im letztgenannten Bereich ein Eintrag erfolgt, soll das Tabellenblatt ausgeblendet werden, dessen Name in der entsprechenden Zeile in Spalte A steht. Ist die gesamte Zeile des Namens dagegen leer, soll das Blatt wieder eingeblendet werden.
Weil ich von Euch nicht immer nur nehmen möchte, habe ich mal versucht selber etwas "zu stande" zu bringen (siehe unten), aber meine Kenntnisse sind offenbar noch mehr als dürftig und ich bin doch wieder auf's "nehmen" angewiesen :-( Wer kann helfen?
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sheets("Blatt2").Range("B20:BA59").Value  "" Then
Sheets(Cells(Row.Count, 1).Value).Visible = False
End If
If Sheets("Blatt2").Range("B20:BA59").Value = "" Then
Sheets(Cells(Row.Count, 1).Value).Visible = True
End If
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Versuch's mal mit ...Hidden! Es gibt in...
17.01.2010 00:16:55
Luc:-?
...der VBE-Hilfe zu jedem Objekt auch einen Button Eigenschaften und einen Button Methoden, Butzel...
Gruß+schöSo, Luc :-?
AW: Tabellenblatt per Makro ein-/ ausblenden
17.01.2010 00:17:45
Josef
Hallo ?,
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  Dim rng As Range
  
  If Not Intersect(Target, Range("B20:BA59")) Is Nothing Then
    For Each rng In Intersect(Target, Range("B20:BA59"))
      Sheets(rng.Offset(0, -1)).Visible = rng = ""
    Next
  End If
  
End Sub

Gruß Sepp

Anzeige
AW: Tabellenblatt per Makro ein-/ ausblenden
Bibabutzel
Hi Sepp,
Danke für das Makro! Leider tut sich da bei mir gar nichts. Da Du ja offenbar sowas wie der Excel-Pabst bist (oder mindestens Kardinal ;-)) wollte ich mal fragen ob mein ANSATZ so völlig daneben ist? Der Tip von Luc:? (Hidden) hat ebensfalls keinen Erfolg gebracht.
Liebe Grüsse!
p.s. zu Deinem "Hallo, ?": meinen Namen habe ich Dir aber schon verraten! Schau mal in den letzten Eintrag unseres ersten Threads... ;-)
Frage noch offen...! oT
Bibabutzel
AW: Frage noch offen...! oT
17.01.2010 01:16:08
Josef
Hallo Mirko,
hab die Frage etwas falsch verstanden.
Der Code gehört in das Modul der Tabelle in der du die Einträge vornimmst.
' **********************************************************************
' Modul: Tabelle2 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rng As Range
  
  If Not Intersect(Target, Range("B20:BA59")) Is Nothing Then
    For Each rng In Intersect(Target, Range("B20:BA59"))
      Sheets(Cells(rng.Row, 1).Text).Visible = Application.CountA(Range(Cells(rng.Row, 2), Cells(rng.Row, 53))) = 0
    Next
  End If
End Sub

Gruß Sepp

Anzeige
AW: Frage noch offen...! oT
Bibabutzel
Hi Sepp,
es passiert leider wieder nix (gar nix). Vielleicht habe ich mich auch einfach zu kompliziert ausgedrückt. Folgende Tabelle:
A B C u.s.w. bis BA
klaus
heinz
kurt
sobald jetzt in der Zeile von z. B. heinz (B2:BA2) ein "x" oder sonstwas eingetragen wird, soll das Tabellenblatt "heinz" ausgeblendet werden. nimmt man das "x" wieder raus, soll das Tabellenblatt wieder angezeigt werden. Und das ganze nicht nur für heinz, sondern für alle Namen im Bereich A20:A59.
Grüsse!
Genu das macht der Code!
17.01.2010 01:34:38
Josef
Hallo Mirko,
ich hab genau verstanden was du willst und genau das macht der Code!
Gruß Sepp

Anzeige
Replace("Genu","Genau") ;-)) o.T.
17.01.2010 01:36:36
Josef
Gruß Sepp

AW: Genu das macht der Code!
Bibabutzel
Hi Sepp,
ich hab Dein Makro jetzt nochmal in einer leeren Testdatei laufen lassen, da klappt es tatsächlich! In der Datei, in der ich's bräuchte läuft es nicht.
Da kommt mir doch ein komischer Verdacht: das letzte Makro, das Du mir geschrieben hast (zur Erzeugung der Tabellenblätter und der Namen in "Blatt2") funktionierte auch in einem "leeren" Sheet aber nicht in der Originaldatei. Vielleicht ist auch einfach meine Datei im A...? Ich werd mich mal auf Ursachenforschung begeben. Auf jeden Fall wieder einmal VIELEN DANK!
Beste Grüsse!
Anzeige

168 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige