Hilfe: VBA Button Zeilen ausblenden
#1
Hallo liebe Community,

ich habe mich ganz neu bei euch angemeldet und bräuchte Hilfe. Über die Suche habe ich leider keine passende Lösung gefunden.

Ich würde gerne bei einer Excelliste mit 2 Buttons mir nur bestimmte Zeilen anzeigen lassen.

Ich habe in Spalte E und Spalte F jeweils unterschiedliche € Beträge stehen (auch mit € als Währung formatiert).
Nun möchte ich per Klick auf Button 1 das nur die Zeilen angezeigt werden, die in Spalte E einen Wert haben, alle anderen Zeilen ohne Wert in Spalte F sollen ausgeblendet werden.
Button 2 soll das gleiche tun, nur eben für Zeilen mit Wert in Spalte F und alle anderen ausgeblendet.

Und es soll nur Zeilen 18 - 611 betreffen.

Dieses Makro hatte ich verwendet - dabei ist aber mein Excel abgestürtzt:

Private Sub CommandButton1_Click()
ActiveSheet.Unprotect Password:="test"

  'Zeilen ausblenden wenn 0 und einblenden wenn 1 in Spalte A steht

  Columns(1).Insert

  With Range("E18:E611" & Cells(65536, 2).End(xlUp).Row)

  'Einblenden
      .FormulaR1C1 = "=if(RC2=1,true,row())"
      .Formula = .Value
      .SpecialCells(xlCellTypeConstants, 4).EntireRow.Hidden = False

  'Ausblenden
      .FormulaR1C1 = "=if(RC2=0,true,row())"
      .Formula = .Value
      .SpecialCells(xlCellTypeConstants, 4).EntireRow.Hidden = True
      .EntireColumn.Delete
  End With
ActiveSheet.Protect Password:="test"
End Sub

Ach so, der Passwortschutz muss nicht unbedingt sein, wäre aber ganz nett. Was mache ich falsch?
Top
#2
Hi,

ich vermute, das geht so nicht:

(07.07.2016, 12:08)xeojin schrieb:   With Range("E18:E611" & Cells(65536, 2).End(xlUp).Row)

versuche mal:
With Range("E18:E" & Cells(65536, 2).End(xlUp).Row)

Du kannst aber auch ganz einfach den Filter einschalten:
Tabelle markieren, "DATEN" - "FILTERN",
dann kannst Du in jeder Spalte über das kleine Down-Dreieck die leeren ausblenden.

ocer Du machst eine intelligente Tabelle draus (STRG-L) mit Überschriften, da ist die Filtermöglichkeit schon eingebaut.
Top
#3
Funktioniert leider so auch nicht, er findet keine Zeilen und zeigt im Editor

.SpecialCells(xlCellTypeConstants, 4).EntireRow.Hidden = False

diese Zeile mit gelber markierung.

Intelligente Liste oder Filter geht nicht, weil die Werte alle unterscheidlich sind die drin stehen.
Das ganze soll später von Nutzern eingesetzt werden die davon keine Ahnung haben, daher die Buttons.
Top
#4
Hallo,

Du musst die Formeln auch in die 1. Spalte schreiben! Wink
Die Umwandlung in Werte ist nicht erforderlich.
Private Sub CommandButton1_Click()
 ActiveSheet.Unprotect Password:="test"
 
 'Zeilen ausblenden wenn 0 und einblenden wenn 1 in Spalte A steht
 Columns(1).Insert
 With Range("A18:A611")
   'Einblenden
   .FormulaR1C1 = "=if(RC2=1,true,row())"
   .SpecialCells(xlCellTypeFormulas, 4).EntireRow.Hidden = False

   'Ausblenden
   .FormulaR1C1 = "=if(RC2=0,true,row())"
   .SpecialCells(xlCellTypeFormulas, 4).EntireRow.Hidden = True
   .EntireColumn.Delete
 End With
 ActiveSheet.Protect Password:="test"
End Sub
Gruß Uwe
Top
#5
Hi,

(07.07.2016, 14:11)xeojin schrieb: Intelligente Liste oder Filter geht nicht, weil die Werte alle unterscheidlich sind die drin stehen.

und wen juckt das?
Du willst doch die leeren Zellen ausblenden. Leer ist leer, egal, wieviel andere unterschiedliche Werte in der Spalte stehen. Das ist auch nur ein Häkchen (bei "leer"), das du im Filter wegmachen oder setzen mußt.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste