Autor
|
Thema: [VBA] Bestimmte Zeilen ausblenden, wenn Zelle bestimmter Wert (27529 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: 24. Apr. 2009 10:44 <-- editieren / zitieren --> Unities abgeben:
Hallo, habe da ein Problem bei dem ich einfach nicht weiter komme. In Zelle B24 kann über Gültigkeit wählen, keine, links, rechts gewählt werden. Bei wählen oder keine sollen die Zeilen 25 bis 30 (wenn möglich mit Bereichsbezeichnug also Namen für diesen Bereich) ausgeblendet werden. Wenn in Zelle links oder rechts Zeilen einblenden. Code: Private Sub Worksheet_Change(ByVal Target As Excel.Range) Application.ScreenUpdating = False 'Bildschirmaktaulisierung aus If Range("B24").Value = "keine" Then 'wenn bestimmter Text in Zelle ("...") Range("Bereichsbezeichnung EntireRow.Hidden = True 'Zeilen ausblenden ElseIf Range("B24").Value = "[ wählen ]" Then 'oder wenn bestimmter Text in Zelle ("...") Range("Bereichsbezeichnung").EntireRow.Hidden = True 'Zeilen ausblenden Else 'sonst Range("Bereichsbezeichnung ").EntireRow.Hidden = False 'Zeilenbereich einblenden End If Application.ScreenUpdating = True 'Bildschirmaktaulisierung anEnd Sub
soweit funktioniert das auch. NUR soll nun gleichzeitigwenn in Zelle B28 RAL nach Wahl oder RAL-Nr RAL 1001, dann Zeile 29 (oder besser Zeile unter B28) einblende, sonst soll diese ausgeblendet bleiben. Des Weiteren wenn in Zelle B16 RAL nach Wahl oder RAL-Nr RAL 1001, dann Zeil 17 (oder besser Zeile unter B16) einblende, sonst soll diese ausgeblendet bleiben. und das funktioniert irgendwie nicht, Ich hoffe mir kann hier geholfen werden!! Gruß 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: 24. Apr. 2009 12:03 <-- 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: 24. Apr. 2009 12:50 <-- editieren / zitieren --> Unities abgeben:
@ Paulchen Zitat: mal so ins Blaue hinein: Du könntest nach dem EndIf... eine weitere If-Zeile bauen, die prüft: Code: If Range("B28") = "RAL nach Wahl" Or Range("B28") = "RAL 1001" Then Rows(29).EntireRow.Hidden = False Ungetestet!
Geht leider nicht! Wie bekomme ich es hinn das ich nicht die Zeile angeben muss sondern dies Variabel halten kann. z.B. nicht Zeile 29 sondern Zeile under der bestimmten Zelle (hier B28) Danke und Gruß 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: 26. Apr. 2009 19:57 <-- editieren / zitieren --> Unities abgeben: Nur für AndreasBo
|
Ex-Mitglied | |
AndreasBo Mitglied TZ & Konstruktion
Beiträge: 861 Registriert: 16.11.2006 ******** Wenn am Anfang alles schief geht, nenne es Version 1.0!
|
erstellt am: 29. Apr. 2009 08:03 <-- editieren / zitieren --> Unities abgeben:
Danke schon mal für die Beiträge. Zitat: Original erstellt von CADDoc: Wenn B24 = keine dann B25 = " " sons B25 = 0815 Das gehört dann mit Wenn - Funktion in die Zellen B25 bis B30 (oder welche Zellen die Daten zur Verfügung stellen), oder man erstellt in den Zellen B25 bis B30 eine bedingte Formatierung: bei B24 = keine wird die Schrift weiß.
So in der Art hatte ich es ja auch erst. Nur ist der weiße Bereich dann ziehmlich groß auf dem Blatt & die Zellen sind dan nicht vor Schaden geschützt. @Paulchen: Ich werde das mal durchtesten und dann eine Rückmeldung geben. 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: 06. Mai. 2009 08:43 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, Ich wollte mal ein Statement abgeben und mich damit für die tolle Hilfe bedanken. Die Excel-Datei findet Ihr in der ZIP mit angehängt. Hier nun einfach mal der Code der dierekt hinter der Tabelle liegt. Code: Option Explicit '************************************************************ 'Code Anfang für Zeilen einblenden oder ausblenden 'Die Zellen/Zeilen sind hier mit Namen deffiniert worden Private Sub Worksheet_Change(ByVal Target As Excel.Range)Dim t As String Dim u As String t = Range("Pan").Value u = Range("NebTFarb").Value Application.ScreenUpdating = False 'Bildschirmaktaulisierung aus 'Wenn Zellenwert Nummerisch oder ... If Range("Pan").Value = IsNumeric(Range("Pan")) Or _ IsNumeric(Right(t, 4)) Then '... die 4 Stellen rechts sind nummerisch, dann ... Range("Pan").Offset(1, 0).EntireRow.Hidden = False '... Zeile (Bestimmte Zeile+1) nicht ausblenden ElseIf Range("Pan").Value = "RAL nach Wahl" Then 'sonst wenn in Zelle Eintrag "...", dann ... Call EingabePanRAL 'Macro ausführen Else 'sonst Range("Pan").Offset(1, 0).EntireRow.Hidden = True 'Zeile (Bestimmte Zeile+1) ausblenden End If '************************ If Range("NebT").Value = "DIN rechts" Or _ Range("NebT").Value = "DIN links" Then '... bestimmter Text in Zelle ("...") Range("NebTDaten").EntireRow.Hidden = False 'Zeilenbereich nicht ausblenden Else 'sonst Range("NebTDaten").EntireRow.Hidden = True 'Zeilenbereich ausblenden End If '************************ If Range("NebTFarb").Value = IsNumeric(Range("NebTFarb")) Or _ IsNumeric(Right(u, 4)) Then '... die 4 Stellen rechts sind nummerisch, dann ... Range("NebTFarb").Offset(1, 0).EntireRow.Hidden = False '... Zeile (Bestimmte Zeile+1) nicht ausblenden ElseIf Range("NebTFarb").Value = "RAL nach Wahl" Then 'sonst wenn in Zelle Eintrag "...", dann ... Call EingabeNebTFarb 'Macro ausführen ElseIf Range("NebTFarb").Value = "RAL nach Wahl (beidseitig)" Then 'sonst wenn in Zelle Eintrag "...", dann ... Call EingabeNebTFarb 'Macro ausführen Else 'sonst Range("NebTFarb").Offset(1, 0).EntireRow.Hidden = True 'Zeile (Bestimmte Zeile+1) ausblenden End If Application.ScreenUpdating = True 'Bildschirmaktaulisierung an End Sub 'Code Ende für Zeilen einblenden oder ausblenden '************************************************************ '************************************************************ 'Code Anfang für Inputbox der RAL-Farbe Public Sub EingabePanRAL() Dim x As Variant Do 'Block Starten x = Application.InputBox(prompt:="Bitte eine 4-stellig Zahl für RAL-Farbe eingeben.", _ Title:="Eingabe RAL-Farbe", Default:="", Type:=1) 'InputBox Darstellung/Beschriftung If VarType(x) = vbBoolean Then Exit Do 'Wenn Eingabe keine Zahl, dann ende Block If x < 10000 And x >= 1000 Then 'Wenn Eingabe zwischen 1000 und 10000, dann .... ActiveSheet.Range("Pan").Value = x '... Wert aus Eingabe in Zelle übergeben Range("Pan").Offset(1, 0).EntireRow.Hidden = False 'Zeile (Bestimmte Zeile+1) nicht ausblenden Exit Do 'Ende Block End If 'Ende Wenn MsgBox "Fehler! Nur Zahlen zwischen 1000 und 9999!", 16, "Warnung" 'Fehler Ausgeben wenn Eingabe nicht >1000 <10000 Loop 'wiederhole Block End Sub '************************************************************ Public Sub EingabeNebTFarb() Dim y As Variant Do 'Block Starten y = Application.InputBox(prompt:="Bitte eine 4-stellig Zahl für RAL-Farbe eingeben.", _ Title:="Eingabe RAL-Farbe", Default:="", Type:=1) 'InputBox Darstellung/Beschriftung If VarType(y) = vbBoolean Then Exit Do 'Wenn Eingabe keine Zahl, dann ende Block If y < 10000 And y >= 1000 Then 'Wenn Eingabe zwischen 1000 und 10000, dann .... ActiveSheet.Range("NebTFarb").Value = y '... Wert aus Eingabe in Zelle übergeben Range("NebTFarb").Offset(1, 0).EntireRow.Hidden = False 'Zeile (Bestimmte Zeile+1) nicht ausblenden Exit Do 'Ende Block End If 'Ende Wenn MsgBox "Fehler! Nur Zahlen zwischen 1000 und 9999!", 16, "Warnung" 'Fehler Ausgeben wenn Eingabe nicht >1000 <10000 Loop 'wiederhole Block End Sub 'Code Ende für Inputbox der RAL-Farbe '************************************************************
Ich hoffe dies wird noch vielen nützen und bitte auch darum, dass wenn Verbesserungsvorschlage vorhanden sind, dann diese hier zu Posten. Gruß Andreas ------------------ Ich nutze Boardsuche | Google | Netiquette Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|