Autor
|
Thema: Zeile einblenden (+) & Zeile ausblenden (-) (2806 mal gelesen)
|
AndreasBo Mitglied TZ & Konstruktion
Beiträge: 861 Registriert: 16.11.2006 ******** Wenn am Anfang alles schief geht, nenne es Version 1.0!
|
erstellt am: 19. Mai. 2009 07:57 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen, bräuchte mal einen kleinen Schubs. Ich habe einen Bereich von 5 Zeilen. In der Tabelle habe ich 2 Buttons (+ & -). Wenn ich nun auf (+) klicke soll vom Bereichbeginn jeweils eine weitere Zeile eingeblendet werden. Wenn ich nun auf (-) klicke, soll jeweils die letzte eingeblendete Zeile vom Bereich ausgeblendet werden. Das mit dem (+) funktioniert schon mal, nur mit dem (-) bekomme ich es nicht hin. Code für (+) Button
Code: Public Sub Cmd_Extr_Add_Click() Dim rng As Range Dim intZeilen As Integer Application.ScreenUpdating = False For Each rng In Range("ZeilenExtras") If intZeilen = 1 Then Exit For If rng.EntireRow.Hidden = True Then rng.EntireRow.Hidden = False intZeilen = intZeilen + 1 End If Next Application.ScreenUpdating = TrueEnd Sub
Wie also bekomme ich das mit dem (-)Button hin. THX Andreas ------------------ Ich nutze Boardsuche | Google | Netiquette Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 19. Mai. 2009 08:16 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
|
AndreasBo Mitglied TZ & Konstruktion
Beiträge: 861 Registriert: 16.11.2006 ******** Wenn am Anfang alles schief geht, nenne es Version 1.0!
|
erstellt am: 19. Mai. 2009 09:54 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Paulchen: Guten Morgen,mal so ins Blaue hinein und ungetestet: Mach aus den zwei Schaltern einen ("Toggle-Button"). Code dazu gibts z. B. im Beitrag nebenan. Die Abfrage zum ein/ausblenden wäre dann evtl. Code: rng.EntireRow.Hidden = Not rng.EntireRow.Hidden
HTH Frederik
Das finde ich nicht so Praktisch für diese Tabelle. Es soll so sein, dass wenn ich den Button(+) anklicke die eine Zeile eingeblendet wird. Klicke ich (+) nochmal soll die nächste zeile eingeblendet werde, usw. Wenn ich nun (-) anklickke, wird die letzte eingeblendete Zeile Ausgeblendet. Klicke ich nun nochmal (-), so wird nun wiederum die letzte eingebledete Zeile ausgeblendet, solange bis der gesammte Breeich ausgeblendet wird. Ich hoffe es ist so verständlich ausgedrückt!?! Gruß Andreas ------------------ Ich nutze Boardsuche | Google | Netiquette Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AndreasBo Mitglied TZ & Konstruktion
Beiträge: 861 Registriert: 16.11.2006 ******** Wenn am Anfang alles schief geht, nenne es Version 1.0!
|
erstellt am: 19. Mai. 2009 10:02 <-- editieren / zitieren --> Unities abgeben:
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 19. Mai. 2009 10:33 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
Du musst für das Ausblenden der untersten Zeile im Bereich die letzte Zeilen-Nummer im Bereich ermitteln. Code: Public Sub Cmd_Extr_Sub_Click() Dim rng As Range Application.ScreenUpdating = False Set rng = Range("B5").End(xlDown) rng.Rows(rng.Rows.Count).Hidden = True Application.ScreenUpdating = TrueEnd Sub
TakeFocusOnClick der Buttons auf False setzen?[Edit: Bevor der Meister wieder schimpft : rng.Rows(rng.Rows.Count).EntireRow.Hidden = True ohne das .EntireRow reicht völlig aus /Edit] ------------------ DIN1055.de | Lastannahmen für Anwender NEU: Foren zu DIN 1055 [Diese Nachricht wurde von Paulchen am 19. Mai. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AndreasBo Mitglied TZ & Konstruktion
Beiträge: 861 Registriert: 16.11.2006 ******** Wenn am Anfang alles schief geht, nenne es Version 1.0!
|
erstellt am: 19. Mai. 2009 10:37 <-- editieren / zitieren --> Unities abgeben:
|
AndreasBo Mitglied TZ & Konstruktion
Beiträge: 861 Registriert: 16.11.2006 ******** Wenn am Anfang alles schief geht, nenne es Version 1.0!
|
erstellt am: 19. Mai. 2009 10:56 <-- editieren / zitieren --> Unities abgeben:
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 19. Mai. 2009 11:37 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
Zitat: Wenn hier in B10 etwas drin steht, ...
Das war in Deinem Beispiel nicht der Fall :D - Einen Hinweis hast Du ja jetzt: Letzte Zeile im Bereich ermitteln und diese ausblenden. Vorschlag: Code: Public Sub Cmd_Extr_Sub_Click() Dim rng As Range Dim i As Integer Application.ScreenUpdating = False Set rng = Range("B5:B9") ' Debug.Print rng.Rows.Count 'Erste ausgeblendete Zeile von oben: For i = 1 To rng.Rows.Count If rng.Rows(i).Hidden = True Then Exit For 'Die Zeile i IST ausgeblendet... ' Debug.Print "i: " & i Next i If i > 1 Then rng.Rows(i - 1).Hidden = True '... deshalb eine OBERHALB von i ausblenden - ausser, ' es ist die erste Zeile (Spaltenbeschriftungen) Application.ScreenUpdating = TrueEnd Sub
------------------ DIN1055.de | Lastannahmen für Anwender NEU: Foren zu DIN 1055 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AndreasBo Mitglied TZ & Konstruktion
Beiträge: 861 Registriert: 16.11.2006 ******** Wenn am Anfang alles schief geht, nenne es Version 1.0!
|
erstellt am: 19. Mai. 2009 13:01 <-- editieren / zitieren --> Unities abgeben:
|