Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  [VBA] Bestimmte Zeilen ausblenden, wenn Zelle bestimmter Wert

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   [VBA] Bestimmte Zeilen ausblenden, wenn Zelle bestimmter Wert (26265 mal gelesen)
AndreasBo
Mitglied
TZ & Konstruktion


Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

Beiträge: 855
Registriert: 16.11.2006

********
Wenn am Anfang alles schief geht,
nenne es Version 1.0!

erstellt am: 24. Apr. 2009 10:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 an

End Sub



soweit funktioniert das auch.  NUR  soll nun gleichzeitig

wenn 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


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

Hallo Andreas,

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!

Schau mal noch zu dem Befehl .Offset in die Hilfe.

HTH
Frederik

------------------
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


Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

Beiträge: 855
Registriert: 16.11.2006

********
Wenn am Anfang alles schief geht,
nenne es Version 1.0!

erstellt am: 24. Apr. 2009 12:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

@ 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


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AndreasBo 10 Unities + Antwort hilfreich

z. B. so:
Code:
Dim i As Integer
i = 28

If Cells(i, 2) = "RAL nach Wahl" Then
  Rows(i + 1).EntireRow.Hidden = False
Else: Rows(i + 1).EntireRow.Hidden = True
End If
'ODER
If Range("B28") = "RAL nach Wahl" Then
  Range("B28").Offset(1, 0).EntireRow.Hidden = False
Else: Range("B28").Offset(1, 0).EntireRow.Hidden = True
End If


------------------
DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Ex-Mitglied
AndreasBo
Mitglied
TZ & Konstruktion


Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

Beiträge: 855
Registriert: 16.11.2006

********
Wenn am Anfang alles schief geht,
nenne es Version 1.0!

erstellt am: 29. Apr. 2009 08:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von AndreasBo an!   Senden Sie eine Private Message an AndreasBo  Schreiben Sie einen Gästebucheintrag für AndreasBo

Beiträge: 855
Registriert: 16.11.2006

********
Wenn am Anfang alles schief geht,
nenne es Version 1.0!

erstellt am: 06. Mai. 2009 08:43    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Zeilen_Ausblenden.zip

 
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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2020 CAD.de | Impressum | Datenschutz