Microsoft Excel

Herbers Excel/VBA-Archiv

Tabellenblatt per Makro ein-/ ausblenden | Herbers Excel-Forum


Betrifft: Tabellenblatt per Makro ein-/ ausblenden von: Bibabutzel
Geschrieben am: 17.01.2010 00:12:22

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

  

Betrifft: Versuch's mal mit ...Hidden! Es gibt in... von: Luc:-?
Geschrieben am: 17.01.2010 00:16:55

...der VBE-Hilfe zu jedem Objekt auch einen Button Eigenschaften und einen Button Methoden, Butzel...
Gruß+schöSo, Luc :-?


  

Betrifft: AW: Tabellenblatt per Makro ein-/ ausblenden von: Josef Ehrensberger
Geschrieben am: 17.01.2010 00:17:45

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



  

Betrifft: AW: Tabellenblatt per Makro ein-/ ausblenden von: Bibabutzel
Geschrieben am: 17.01.2010 00:53:12

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... ;-)


  

Betrifft: Frage noch offen...! oT von: Bibabutzel
Geschrieben am: 17.01.2010 00:56:02




  

Betrifft: AW: Frage noch offen...! oT von: Josef Ehrensberger
Geschrieben am: 17.01.2010 01:16:08

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



  

Betrifft: AW: Frage noch offen...! oT von: Bibabutzel
Geschrieben am: 17.01.2010 01:29:39

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!


  

Betrifft: Genu das macht der Code! von: Josef Ehrensberger
Geschrieben am: 17.01.2010 01:34:38

Hallo Mirko,

ich hab genau verstanden was du willst und genau das macht der Code!


Gruß Sepp



  

Betrifft: Replace("Genu","Genau") ;-)) o.T. von: Josef Ehrensberger
Geschrieben am: 17.01.2010 01:36:36

Gruß Sepp



  

Betrifft: AW: Genu das macht der Code! von: Bibabutzel
Geschrieben am: 17.01.2010 01:51:34

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!


Beiträge aus den Excel-Beispielen zum Thema "Tabellenblatt per Makro ein-/ ausblenden"