Anzeige
Archiv - Navigation
716to720
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
716to720
716to720
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeilen wegschalten ....

Zeilen wegschalten ....
13.01.2006 19:19:38
Joachim Röder
Hallo nochmal,
ich habe vor langer Zeit einmal eine Tabelle gehabt, die eine wunderbare Funktion hatte.
Ich konnte bestimmte Zeilen auf Knopfdruck ein- bezw ausblenden.
Wie kann ich solches machen?
Ich habe eine Tabelle mit vielen einzelnen Zeilen.
Diese Zeilen werden nur teilweise mit Daten gefüllt und mit diesen Inhalten wird dann am Ende gerechnet.
Also es gibt 35 Zeilen.
Es wird nur in -sagen wir mal 5 verschieden Zeilen etwas eingetragen-
Die Anzeige der anderen (30) Zeilen ist überflüssig.
Da ich diese Liste auch ausdrucken möchte, verwirren die (30) Zeilen ohne
relevanten Inhalt.
Schön wäre es nun, dass ich eine Möglichkeit habe, Zeilen in denen nichts zur
Berechnung steht, auf "Knopfdruck" ausgeblendet werden könnten.
Ein wiederholter Knopfdruck macht sie wieder sichtbar.
Der Druckbereich bezieht sich auch immer nur auf die sichtbaren Zeilen.
Ist soetwas machbar ohne, dass ich erst ein Studium dafür benötige?
Benötigt man dazu VB? -Dann habe ich schlechte Karten-
Grüße
Joachim

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen wegschalten ....
13.01.2006 19:39:55
Josef Ehrensberger
Hallo Joachim!
Guckst du > "Daten" > "Gruppierung und Gliederung"!
'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

AW: Zeilen wegschalten ....
13.01.2006 20:55:12
Joachim Röder
Tja, damit ist es irgendwie wohl machbar.. aber - mein Prob. ist, dass
ich die Tabelle auch weitergeben möchte und es müsste eine gaaanz einfache Fnktion sein.
- "Auf Knopfdruck wird geprüft in welchen Zellen Inhalt ist.
Kein Inhalt = Zeile ausblenden
Inhalt = Zeile bleibt
Ausdrucken - Fertig
- Erneuter "Knopfdruck" - alle Zeilen sind wieder sichtbar.
Bekommt man das hin?
Dieses Menü - Gliederung ist wohl nicht ganz so einfach - kann man diese Funktion
damit erreichen?? Vor allem so, dass JEDER die Funktion einfach benutzen kann?
Gruß
Joachim
Anzeige
AW: Zeilen wegschalten ....
13.01.2006 21:30:31
Josef Ehrensberger
Hallo Joachim!
Dann probier mal das!
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit
Dim blnShowRows As Boolean

Public Sub EinAusblenden()
Dim lngRow As Long, lngLast As Long
'Zeilen Aus-/Ein-blenden in Abhängigkeit eines Eintrages in Spalte "A"

With Application
  .ScreenUpdating = False
  .EnableEvents = False
  .DisplayAlerts = False
  .Calculation = xlCalculationManual
  .Cursor = xlWait
End With

On Error GoTo EinAusblenden_Error

lngLast = Cells(Rows.Count, 1).End(xlUp).Row

If Not blnShowRows Then
  
  For lngRow = 2 To lngLast
    Rows(lngRow).Hidden = Cells(lngRow, 1) = ""
  Next
  
  blnShowRows = True
  
Else
  
  Rows("2:" & lngLast).Hidden = False
  
  blnShowRows = False
  
End If

On Error GoTo 0

EinAusblenden_Error:

If Err.Number > 0 Then
  MsgBox "Fehler:" & vbTab & Err.Number & " (" & Err.Description & ")" & Space(45) & vbLf & vbLf & _
    vbTab & "Prozedur:" & vbTab & vbTab & "EinAusblenden" & vbLf & _
    vbTab & "Modul:" & vbTab & vbTab & "Modul1", vbExclamation, "Fehler"
  Err.Clear
End If

With Application
  .ScreenUpdating = True
  .EnableEvents = True
  .DisplayAlerts = True
  .Calculation = xlCalculationAutomatic
  .Cursor = xlDefault
End With

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Zeilen wegschalten ....
13.01.2006 23:12:43
Joachim Röder
Hallo Sepp,
vielen Dank für das Script...
aber es tut sich nichts.....
Zunächst habe ich eine vollständig leere Spalte A der Tabelle zugefügt.
Dann habe ich den VB - Editor gestartet.
Nun auf das entsprechende Tabellenblatt mit einem Doppelklick
das dazugehörige Edit-fenster geöffnet und das von dir gesandte Script dahineinkopiert.
Anschließend den Editor geschlossen und im Menü Extras - Makro - Makros das nun dort vorhandene Makro gestartet. Das wars - nichts passiert....
Habe ich etwas falsch gemacht ??? Wie gesagt mit VB kenne ich mich ganicht aus...
-------------
Ich möchte, das alle ZEILEN in denen die Zellen G8 bis G58 keinen Inhalt haben, ausgeblendet werden.
Dazu wäre ein Button oben oder unten sinnvoll um diese Aktion auszulösen.
Der selbe Button sollte die ausgeblendeten Zeilen auch wieder einblenden.
Alternativ wäre auch eine Zelle mit einer Formel die durch Abfrage einer nebenliegenden anderen Zelle auf Inhalt ja oder Nein die Aktion Zeilen ausblenden bezw. einblenden (G8 bis G58... siehe vor)ausführt.
Gibt es eine Lösung????
Gruß
Joachim
Anzeige
AW: Zeilen wegschalten ....
13.01.2006 23:26:24
Josef Ehrensberger
Hallo Joachim!
Im Kommentar des Codes stand, das sich das Makro auf Spalte "A" bezieht!
Wenn in Spalte "A" kein Eintrag vorhanden ist, dann kann der Code nicht laufen!
Hier angepasst auf Spalte "G"!
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit
Dim blnShowRows As Boolean

Public Sub EinAusblenden()
Dim lngRow As Long, lngLast As Long
'Zeilen Aus-/Ein-blenden in Abhängigkeit eines Eintrages in Spalte "G"

With Application
  .ScreenUpdating = False
  .EnableEvents = False
  .DisplayAlerts = False
  .Calculation = xlCalculationManual
  .Cursor = xlWait
End With

On Error GoTo EinAusblenden_Error

lngLast = Cells(Rows.Count, 7).End(xlUp).Row

If Not blnShowRows Then
  
  For lngRow = 2 To lngLast
    Rows(lngRow).Hidden = Cells(lngRow, 7) = ""
  Next
  
  blnShowRows = True
  
Else
  
  Rows("2:" & lngLast).Hidden = False
  
  blnShowRows = False
  
End If

On Error GoTo 0

EinAusblenden_Error:

If Err.Number > 0 Then
  MsgBox "Fehler:" & vbTab & Err.Number & " (" & Err.Description & ")" & Space(45) & vbLf & vbLf & _
    vbTab & "Prozedur:" & vbTab & vbTab & "EinAusblenden" & vbLf & _
    vbTab & "Modul:" & vbTab & vbTab & "Modul1", vbExclamation, "Fehler"
  Err.Clear
End If

With Application
  .ScreenUpdating = True
  .EnableEvents = True
  .DisplayAlerts = True
  .Calculation = xlCalculationAutomatic
  .Cursor = xlDefault
End With

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Zeilen wegschalten ....
14.01.2006 00:37:42
Joachim Röder
Hallo Sepp,
vielen Dank für den geänderten Code. Werde ihn morgen ausprobieren.
------
Habe in der Zwischenzeit die Funktion - Daten - Filter - Autofilter gefunden und ausprobiert.
Genau hier finde ich eigentlich schon das was ich möchte.
Mit einem kleinen Trick kann ich mir es so einstellen wie ich es mir gedacht habe.
(Ich habe neben meiner eigentlichen Tabelle Zellen nach meinem Belieben mit einer
Abfrage versehen und das Ergebnis "unsichtbar" gemacht. = weiße Schrift)
Die Zelle in der sich der "AbfrageButton" = Der Schalter für das PullDownMenü befindet
habe ich farbig hervorgehoben und beschriftet.
Nun habe ich noch zwei "Schönheitsopreationen" im Blick.
1.) Kann ich den Inhalt des PullDownMenüs editieren?
Die Einträge "leere - Top 10.. - Benutzerdefiniert.. - und auch das "Zellensymbol von mir (hier ist es ein X)" würde ich gerne aus dem Menü eleminieren.
Ich brauche nur "NICHT LEERE" und "ALLE". Dann wäre ich da wo ich sein möchte.
2.) Der "Knopf für das PullDownMenü ist sehr klein. Kann ich diesen vergrößern?
________________________________
Wenn ich damit arbeiten kann hat es - glaube ich den Vorteil, dass VB nicht installiert sein muss um zu funktionieren. Oder muss VB auch dafür installiert sein?
Ich hatte bis vor ein paar Tagen VB auch nicht installiert und konnte deshalb -natürlich- keine Tabellen mit VB-Code öffnen. Ausserdem wurde ich ständig gefragt ob ich Makros aktivieren möchte oder nicht.
Da ich die Tabelle auch anderen geben möchte und diese ggf. kein VB installiert haben würde es mit einem Makro nicht ans laufen kommen.
Nicht desto trotz werde ich Dein Makro morgen jedenfalls ausprobieren.
(Ich hatte die Spalte A angelegt und auch Einträge gemacht - nur es passierte nichts.)
Für heute reicht es - nochmals Danke - bis morgen
Gute nacht.
Joachim
Anzeige
AW: Zeilen wegschalten ....
14.01.2006 00:42:18
DieterB
Hallo Joachim,
in Excel handelt es sich nicht um das klassische VB (VisualBasic) sondern um
eine abgespeckte Form, VBA (Visual Basic for Application)
Das muss nicht extra installiert sein.
Wen du die Frage bekommst, ob die Makros aktiviert werden sollen,
liegt es an deiner Sicherheitseinstellungen (Extra, Makros, Sicherheit)
Bei Niedrig werden die Makros ohne Nachfrage ausgeführt, bei hoch gar nicht.
Gruß DieterB
AW: Zeilen wegschalten ....
14.01.2006 11:52:40
Joachim Röder
Hallo Sepp,
vielen dank für den geändert code. Funktioniert....
Ich habe schon letzte Nacht geschrieben, dass ich mit Hilfe des Filters...
eine Funktion -die für mich leicht- das bringt was ich eigentlich möchte,
denn ich habe nun einen Auswahl-Button.
Mir geht es nun noch darum, dass ich die kleinen Schönheitsanpassungen gerne hätte.
Ist das machbar??
---------------------
Andererseits geht es natürlich auch mit deinem Makro, welches dann noch im Detail
etwas angepasst werden müsste. Aber -und das ist der wichtige Punkt-- ich brauche einen
Button auf dem Tabellenblatt der die Funktion ein- und auch wieder ausschaltet.
Die Zellen die auf Inhalt geprüft werden sind:
F8 bis F42 - E43 - E44 - F45 bis F58 - D59
Wenn also etwas in diesen Zellen steht soll die Zeile sichtbar bleiben und die anderen
sollen ausgeblendet werden.
Der besagte Button zum Ein- und Ausschalten soll in den Zellen N5 bis N7 positioniert sein.
Wie bekannt habe ich keine Ahnung von VB und bin hier auf die Hilfe angewiesen.
Viele liebe Grüße
und danke für die vielseitige Unterstützung an alle
JOachim
Anzeige
AW: Zeilen wegschalten ....
14.01.2006 16:57:28
Josef Ehrensberger
Hallo Joachim!
Sicher geht es auch mit Autofilter, aber das Dropdown lässt sich nicht verändern!
Mann kann beim Filter aber das DropDown und die Buttons entfernen, und das ganze
über eine Schaltfläche steuern, aber dazu Braucht man wieder VBA!
Lade doch deine Tabelle mal hoch, dann ba ich dir das ein!
'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Zeilen wegschalten ....
14.01.2006 22:32:49
Joachim Röder
Hallo Sepp,
das ist sehr nett von Dir - meine Tabelle wunschgerecht zu gestalten.
Ich habe sie hochgeladen:

Die Datei https://www.herber.de/bbs/user/30050.xls wurde aus Datenschutzgründen gelöscht

Das gelbe Feld soll der Button "Leere Zeilen aus /an" sein.
Bezogen ist das Ganze auf Prüfung auf Inhalte der grauen Zellen.
Wenn also etwas in einer "grauen Zelle" steht soll diese Zeile sichtbar bleiben;
wenn nicht soll diese Zeile bei Bedarf ausgeblendet werden.
Noch etwas -- diese Tabelle soll anderen auch behilflich sein. Ich will sie also weggeben.
Kann man es so hinkriegen, dass es auch mit älteren Excelversionen keine Problem bekommt?
Vielen Dank schon mal.
Viele Grüße
Joachim
Anzeige
AW: Zeilen wegschalten ....
14.01.2006 22:44:30
Josef Ehrensberger
Hallo Joachim!
https://www.herber.de/bbs/user/30052.xls
'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

AW: Zeilen wegschalten ....
15.01.2006 22:24:42
Joachim Röder
Hallo Sepp,
vielen lieben Dank.
Nun habe ich das was ich gerne haben wollte.
Funktioniert einwandfrei.
Viele Grüße aus Düsseldorf
Joachm
Anzeige
AW: Zeilen wegschalten ....
16.01.2006 12:57:52
Joachim Röder
Hallo Sepp,
da ist doch noch etwas...
Da ich die Tabelle auch weitergeben möchte, will ich die einzelnen Blätter
schützen.
Nun habe ich:
Das Makro mit einem Passwort geschützt. OK
Wenn ich nun das Tabellenblatt schütze, bekomme ich beim Start des Makro
eine Fehlermeldung.
Erst wenn ich den Blattschutz aufheben läuft das -geschützte- Makro.
Was kann ich - muss ich tun um,
1.) das Makro zu schützen
2.) die einzelnen Tabellenblätter zu schützen
3.) das das Makro auch bei eingeschaltetem Schutz funktioniert.
4.) darüberhinaus will ich auch noch die gesamte Mappe schützen,
damit niemand ohne die Passwörter an der Mappe, dem Makro, und den einzelnen Blättern etwas ändern kann. -Ich weiss ein 100% Schutz ist nicht möglich, wenn mann entsprechende Tools verwendet- Aber für den normalen Nutzer ist es auf jedenfall umständlich-
Viele Grüße
Joachim
AW: Zeilen wegschalten ....
16.01.2006 15:47:40
Josef Ehrensberger
Hallo Joachim!
Zwei Möglichkeiten!
Erstens:
Am Anfang des Makros den Blattschutz aufheben und am Ende wieder setzen!

ActiveSheet.UnProtect Password:="deinPasswort"
ActiveSheet.Protect Password:="deinPasswort"

Oder den zugriff per Makro zulassen! Dazu musst du aber beim Öffnen der Datei
jedesmal die Option neu setzen!
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Open()
Dim objSh As Worksheet
For Each objSh In Me.Worksheets
  objSh.Protect Userinterfaceonly:=True
Next
End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige