Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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?
Antworten Top
#2
Hi,

ich vermute, das geht so nicht:

(07.07.2016, 11: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.
Antworten 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.
Antworten 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
Antworten Top
#5
Hi,

(07.07.2016, 13: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.
Antworten Top


Gehe zu:


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