Home Office-Hilfe.com - Wir lösen Ihr Problem mit Microsoft Excel, Word, Outlook, PowerPoint, Access gratis Forum Impressum

 [Excel 2007] komplette Zeile ausblenden, wenn Tabelle1!a1=wahr
Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
enzo
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 18.11.2008
Beiträge: 29
Wohnort: Sachsen-Anhalt

BeitragVerfasst am: 20.11.2008, 20:58 Nach oben

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.

_________________
Gruß Enzo
Benutzer-Profile anzeigenPrivate Nachricht senden
enzo
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 18.11.2008
Beiträge: 29
Wohnort: Sachsen-Anhalt

BeitragVerfasst am: 20.11.2008, 21:08 Nach oben

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.

_________________
Gruß Enzo
Benutzer-Profile anzeigenPrivate Nachricht senden
enzo
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 18.11.2008
Beiträge: 29
Wohnort: Sachsen-Anhalt

BeitragVerfasst am: 21.11.2008, 09:38 Nach oben

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.

_________________
Gruß Enzo
Benutzer-Profile anzeigenPrivate Nachricht senden
miriki
Office-Hilfe.com-Profi
Office-Hilfe.com-Profi


Anmeldedatum: 05.03.2007
Beiträge: 1001
Wohnort: Kiel

BeitragVerfasst am: 21.11.2008, 09:45 Nach oben

enzo hat Folgendes geschrieben:
vielen dank für [...]

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


zeilen_ausblenden_2.xls
 Beschreibung:

Download
 Dateiname:  zeilen_ausblenden_2.xls
 Dateigröße:  32.5 KB
 Heruntergeladen:  32 mal

Benutzer-Profile anzeigenPrivate Nachricht sendenICQ-Nummer
miriki
Office-Hilfe.com-Profi
Office-Hilfe.com-Profi


Anmeldedatum: 05.03.2007
Beiträge: 1001
Wohnort: Kiel

BeitragVerfasst am: 21.11.2008, 09:52 Nach oben

enzo hat Folgendes geschrieben:
Undzwar möchte ich mit der CheckBox1 die Zeilen 14,44,... usw. aus- bzw. einblenden.

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

Gruß, Michael
Benutzer-Profile anzeigenPrivate Nachricht sendenICQ-Nummer
enzo
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 18.11.2008
Beiträge: 29
Wohnort: Sachsen-Anhalt

BeitragVerfasst am: 21.11.2008, 09:53 Nach oben

Hallo
wenn ich dich jetzt sehen könnte, dann würde ich vor dir auf die knie fallen.

Danke!

Funktioniert super.

_________________
Gruß Enzo
Benutzer-Profile anzeigenPrivate Nachricht senden
miriki
Office-Hilfe.com-Profi
Office-Hilfe.com-Profi


Anmeldedatum: 05.03.2007
Beiträge: 1001
Wohnort: Kiel

BeitragVerfasst am: 21.11.2008, 10:57 Nach oben

Die Syntax .range("14;44") geht leider gar nicht, da sind in den paar Buchstaben schon gleich 2 Fehler drin. Wink

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
Benutzer-Profile anzeigenPrivate Nachricht sendenICQ-Nummer
enzo
Office-Hilfe.com-Neuling
Office-Hilfe.com-Neuling


Anmeldedatum: 18.11.2008
Beiträge: 29
Wohnort: Sachsen-Anhalt

BeitragVerfasst am: 24.11.2008, 09:23 Nach oben

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.

_________________
Gruß Enzo
Benutzer-Profile anzeigenPrivate Nachricht senden
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


Ähnliche Beiträge
Thema Autor Forum Antworten Verfasst am
Keine neuen Beiträge Grösster Wert WENN Alfred B. Microsoft Excel Hilfe 3 30.08.2010, 03:47 Letzten Beitrag anzeigen
Keine neuen Beiträge Problem mit Wenn formel baytar Microsoft Excel Hilfe 2 28.08.2010, 13:49 Letzten Beitrag anzeigen
Keine neuen Beiträge Wenn Funktion Asmodis10 Microsoft Excel Hilfe 2 22.08.2010, 13:48 Letzten Beitrag anzeigen
Keine neuen Beiträge Entertaste nutzen um in einer Zelle e... Lutze Microsoft Excel Hilfe 2 21.08.2010, 15:02 Letzten Beitrag anzeigen
Keine neuen Beiträge WENN-Formel oder SVERWEIS oder? Bitte... Caapoo Microsoft Excel Hilfe 6 18.08.2010, 13:26 Letzten Beitrag anzeigen


 Gehe zu:   



Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen

Haftungsausschluss/Disclaimer


SMS kostenlos versenden | Tuning Forum | krankenversicherungsvergleich | Wii Modchip Xbox 360 Konsole


Ranking-Hits



Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Alle Zeiten sind GMT + 1 Stunde
Deutsche Übersetzung von phpBB.de