Office: komplette Zeile ausblenden, wenn Tabelle1!a1=wahr

Helfe beim Thema komplette Zeile ausblenden, wenn Tabelle1!a1=wahr in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; hallo michael, danke für deine beispieldatei! mit der hat bei mir auch klick gemacht. Tabelle1 heißt nicht mehr so sondern Schichtinfo. im code... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von enzo, 18. November 2008.

  1. enzo Erfahrener User

    komplette Zeile ausblenden, wenn Tabelle1!a1=wahr


    hallo michael, danke für deine beispieldatei! mit der hat bei mir auch klick gemacht. Tabelle1 heißt nicht mehr so sondern Schichtinfo. im code geändert und schon passiert was. aber leider nicht das was sollte. jetzt erhöht der code nämlich die zeilenhöhe und blendet sie nicht aus. habe aber deinen code nochmals kopiert aber er macht nur größer.
     
  2. enzo Erfahrener User
    Michael ich bin dir zu ewigen dank verpflichtet. es funktioniert - ich habe 0 und 15 (jetzt 10) getauscht. hab vielen dank für deine geduld und deiner schnellen und vorallem gut erklärenden antworten.
     
  3. enzo Erfahrener User
    Hallo könnte mir bitte jemand (vieleicht auch wieder Michael, wenn da) weiterhelfen?

    Undzwar möchte ich mit der CheckBox1 die Zeilen 14,44,... usw. aus- bzw. einblenden. Habs schon mal probiert mit Komma undso, aber irgendwie will das nicht.
    Der Rest funtioniert nun wunderbar. Dank Michael und Peter.
     
  4. miriki Erfahrener User

    komplette Zeile ausblenden, wenn Tabelle1!a1=wahr

    Sehr schön, freut mich, wenn ich helfen konnte und es dann auch funktioniert.

    Dann leg ich jetzt noch einen nach. Du kannst Dir ja mal Folgendes ansehen:
    Code:
    Option Explicit
    
    Private Sub EinAusBlenden(c As Object)
        Const s = "Tabelle2"
        Dim i As Long
        Dim y As Long
        i = Val(Right$(c.Name, Len(c.Name) - 8))
        Select Case i
            Case 1
                y = 3
            Case 2
                y = 5
            Case 3
                y = 7
            ' ...
            Case 24
                y = 11
            Case Else
                y = 0
                MsgBox "ooops"
        End Select
        If y > 0 Then
            Select Case c.Value
                Case True
                    Worksheets(s).Rows(y).RowHeight = 0
                Case False
                    Worksheets(s).Rows(y).RowHeight = 15
                Case Else
                    ' ?
                    MsgBox "ooops"
            End Select
        End If
    End Sub
    
    Private Sub CheckBox1_Click()
        EinAusBlenden CheckBox1
    End Sub
    
    Private Sub CheckBox2_Click()
        EinAusBlenden CheckBox2
    End Sub
    
    Private Sub CheckBox3_Click()
        EinAusBlenden CheckBox3
    End Sub
    
    ' ...
    
    Private Sub CheckBox24_Click()
        EinAusBlenden CheckBox24
    End Sub
    Das ist jetzt die etwas "universellere" Variante. Hier besteht jede Routine der CheckBox-Clicks nur aus einer Zeile. Es wird die zentrale Routine "EinAusBlenden" aufgerufen und als Parameter die jeweils aktuelle CheckBox (als Referenz auf das komplette Objekt, nicht nur der Name) übergeben.

    Die zentrale Routine wiederum macht dann grob:
    - Es wird der Teil des Namens nach "CheckBox" abgetrennt und in einen Integer-Wert gewandelt. Solange Deine CheckBoxen also "CheckBox1", "CheckBox2", ... heißen, werden die alle abgefrühstückt.
    - In dem 1. "SELECT"-Block wird zu jeder Nummer (der CheckBox) eine Zeile bestimmt. CheckBox2 --> Nummer i: 2 --> Zeile y: 5.
    - Und im 2. "SELECT"-Block wird, abhängig von wahr oder falsch, die jeweilige Zeile ein- oder aus-geblendet.

    Das Erweitern mit CheckBoxen, die sich um andere Zeilen kümmen sollen, beschränkt sich jetzt also auf die einzeilige Routine im Click-Ereignis und Erweiterung des 1. "SELECT"-Blocks in der zentralen Routine.

    Beachte auch, daß der Blatt-Name in der CONST-Anweisung am Anfang steht und von daher auch leichter anpaßbar ist, wenn der sich mal ändern sollte.

    Der Vorteil dieser Variante ist ganz einfach der, daß Anpassungen der Zeilen, des Blattnamens und Erweiterungen ganz simpel an einer zentralen Stelle gemacht werden können und man nicht quer durch den Source überall einzelne Anpassungen durchführen muß.

    Gruß, Michael
     
  5. miriki Erfahrener User
    Du hast ja die Zeile
    Code:
    worksheets("blatt").rows(14).rowheight=0
    Kopiere die einfach darunter und mache aus der 14 eine 44.

    Alternativ müßte eigentlich auch gehen (jetzt nicht ausprobiert):
    Code:
    worksheets("blatt").range("14;44").rowheight=0
    ...oder vielleicht auch mit , statt ; oder so. Mit : würden auf alle Fälle alle Zeilen von 14 bis 44 ausgeblendet, was vielleicht nicht ganz so ok wäre... ;-)

    Gruß, Michael
     
  6. enzo Erfahrener User
    Hallo
    wenn ich dich jetzt sehen könnte, dann würde ich vor dir auf die knie fallen.

    Danke!

    Funktioniert super.
     
  7. miriki Erfahrener User
    Die Syntax .range("14;44") geht leider gar nicht, da sind in den paar Buchstaben schon gleich 2 Fehler drin. ;-)

    Es geht aber: .range("14:14,44:44")
    Man muß also auch bei einzeiligen Bereichen Start und Ende angeben. Außerdem ist das Trennzeichen, wie schon fast gedacht, doch das , und nicht das ;.

    Und wenn Du auf die "universelle Zentral-Routine" umbauen möchtest, dann würde die jetzt so aussehen:
    Code:
    Private Sub EinAusBlenden(c As Object)
        Const s = "Tabelle2"
        Dim i As Long
        Dim r As String
        i = Val(Right$(c.Name, Len(c.Name) - 8))
        Select Case i
            Case 1
                r = "3:3,23:23,43:43"
            Case 2
                r = "5:5,25:25,45:45"
            Case 3
                r = "7:7,27:27,47:47"
            '...
            Case 24
                r = "11:11"
            Case Else
                r = ""
                MsgBox "ooops"
        End Select
        If r <> "" Then
            Select Case c.Value
                Case True
                    Worksheets(s).Range(r).RowHeight = 0
                Case False
                    Worksheets(s).Range(r).RowHeight = 15
                Case Else
                    ' ?
                    MsgBox "ooops"
            End Select
        End If
    End Sub
    Hier wird jetzt nicht mehr der "integer" y für die Zeile, sondern der "string" r für den Bereich (mehrere Zeilen) benutzt.

    Gruß, Michael
     
  8. enzo Erfahrener User

    komplette Zeile ausblenden, wenn Tabelle1!a1=wahr

    Hallo Michael,
    danke für deinen Vorschlag, aber ich habe jede Zeile einzeln im Code kopiert und nur die Zeilennummer geändert. Ist zwar ganz schön lang geworden, aber funktioniert.
    Aber trotzdem, vielen dank.
     
Thema:

komplette Zeile ausblenden, wenn Tabelle1!a1=wahr

Die Seite wird geladen...
  1. komplette Zeile ausblenden, wenn Tabelle1!a1=wahr - Similar Threads - komplette Zeile ausblenden

  2. Wenn ein Wert ein einer Spalte, dann komplette Zeile im anderen Blatt untereinander einfügen.

    in Microsoft Excel Hilfe
    Wenn ein Wert ein einer Spalte, dann komplette Zeile im anderen Blatt untereinander einfügen.: Hallo, kann mir jemand bitte bei folgenderm Helfen. Habe etwas ähnliches gefunden was ich brauche, nur noch eine kleine Änderung ist notwendig. Aufgabe: Es wird geprüft, ob in Spalte Q ein Wert...
  3. Word 2016: Wie "Neu" Templates (Zeile) komplett von Startseite entfernen?

    in Microsoft Word Hilfe
    Word 2016: Wie "Neu" Templates (Zeile) komplett von Startseite entfernen?: Wenn ich Word 2016 aufrufen, dann wird auf der Startseite oben eine komplette Zeile mit möglichen Templates eingeblendet. Also z.B. "Leeres Dokument", "Willkommen bei Word", "Einfacher...
  4. komplette Zeile löschen, die einen bestimmten Wort NICHT beinhaltet?

    in Microsoft Word Hilfe
    komplette Zeile löschen, die einen bestimmten Wort NICHT beinhaltet?: Hallo, ich suche eine möglichkeit, mit einem Makro in Word Zeilen zu löschen, die einen bestimmten Wort NICHT beinhalten. z.b LöscheZeile, wenn Zeileninhalt NICHT "Telefonnummer" oder "E-mail"...
  5. Wiedergeben einer kompletten Zeile in der ein Suchkriterium zutrifft

    in Microsoft Excel Hilfe
    Wiedergeben einer kompletten Zeile in der ein Suchkriterium zutrifft: Hallo, ich möchte gerne meine Excel Datei folgendermaßen formatieren: Wenn ich eine entsprechende Kostenstelle innerhalb eines Arbeitsblattes angebe, soll Excel aus einem anderen Arbeitsblatt...
  6. Wenn bestimmter Wert dann komplette Zeile kopieren

    in Microsoft Excel Hilfe
    Wenn bestimmter Wert dann komplette Zeile kopieren: Hallo zusammen, ich habe ein Problem für das ich hier noch keine Lösung gefunden habe. Ich habe eine Exceldatei mit drei Tabellenblättern. Master - Tabelle 1 - Tabelle 2 Tab. 1und2 sollen im...
  7. Bei Wert in bestimmtem Bereich der Zeile komplette Zeile in neues Datenblatt kopieren

    in Microsoft Excel Hilfe
    Bei Wert in bestimmtem Bereich der Zeile komplette Zeile in neues Datenblatt kopieren: Guten Morgen, ich habe zwar schon verschiedene Threads gefunden, aber irgendwie keine passende Lösung für mich. Anbei eine Beispieltabelle ("Vorlage"), wie unsere Liste so in etwa aufgebaut...
  8. VBA Komplette Zeilen löschen mit Autofilter mit Makro

    in Microsoft Excel Hilfe
    VBA Komplette Zeilen löschen mit Autofilter mit Makro: Hallo, ich möchte einen Autofilter in der ersten Zeile anweden, dann in der 12 Spalte nach "B" filtern und anschließend die gefundenen Zeilen entfernen. Bei meinem Versuch löscht mir der Code...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden