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


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

BeitragVerfasst am: 18.11.2008, 13:17 Nach oben

hallo zusammen,

ich bin seit genau einer Minute neu in diesem Forum und möchte gleich mal ein Lob für die sehr gute Arbeit von euch allen aussprechen, denn ihr hab mir schon oft mit euren Beiträgen weitergeholfen. Danke!

Jetzt benötige ich Hilfe beim automatischen ausblenden von Zeilen. Auch nach sehr intensiver Suche konnte ich keinen Beitrag finden der mir weiterhilft!!!

Also mein Problem:
Ich habe eine Mappe mit mehreren Blättern zur automatischen endlosen Schichtplanung. Ich möchte nun, dass wenn Tabelle1 in z.B. A1=WAHR oder FALSCH ist, das dann in Tabelle2 die Zeile2 ausgeblendet oder eingeblendet wird. Ich sitz da nun schon eine Woche dran und bin langsam am verzweifeln.

Achso ich muss noch dazusagen, dass ich absolut keine Ahnung von VBA's habe.

Für eure Hilfe wär ich euch sehr ankbar.

Liebe Grüße
Enzo

_________________
Gruß Enzo
Benutzer-Profile anzeigenPrivate Nachricht senden
miriki
Schlauberger
Schlauberger


Anmeldedatum: 05.03.2007
Beiträge: 710
Wohnort: Kiel

BeitragVerfasst am: 18.11.2008, 14:09 Nach oben

enzo hat Folgendes geschrieben:
Ich möchte nun, dass wenn Tabelle1 in z.B. A1=WAHR oder FALSCH ist, das dann in Tabelle2 die Zeile2 ausgeblendet oder eingeblendet wird.

Das kriegst Du nur mit VBA hin. Und da gibt es mehrere Ansätze. Der einfachste wäre:
    a) In tabelle1!a1 wird der Wert wahr/falsch direkt eingegeben.

Etwas schwieriger wird es, wenn:
    b) in tabelle1!a1 steht eine Formel, die wahr/falsch liefert. Das Ergebnis ist aber direkt von einer anderen, bekannten Zelle abhängig, in der eine Eingabe erfolgt.

Und schon recht haarig wird es, wenn:
    c) in tabelle1!a1 ist eine Formel, die wiederum mit ergebnissen aus anderen Formeln gefüttert wird und man kann kaum nachvollziehen, welche Eingabe (welche Zelle) zu wahr/falsch führt.

Die Frage ist nämlich, welches "Ereignis" man anzapft, um das Aus- und Ein-Blenden zu erledigen. Denkbar wäre dabei das "Change"-Ereignis, das eintritt, wenn der Inhalt einer Zelle geändert wird. Außerdem wäre da noch das "Calc"-Ereignis, das ausgelöst wird, nachdem die Werte von Formeln neu berechnet wurden. Und als letzten Notnagel könnte man auch noch "SelectionChange" nehmen, das jedesmal ausgelöst wird, nachdem der Cursor seine Position wechselt.

Bei Möglichkeit a) könnte man direkt im Change überprüfen, ob die Zelle tabelle1!a1 geändert wurde. Wenn ja, wird abhängig vom (neuen) Wert ein- oder aus-geblendet.

Für b) könnte man ebenfalls das Change benutzen, müßte aber nicht tabelle1!a1 überprüfen, sondern die Zelle, die zur Neuberechnung führt, also z.B. tabelle2!b2.

Unschön ist c), da man da eigentlich nur das Calc benutzen kann. Das bedeutet aber auch, daß bei jeder, wirklich jeder Neuberechnung jedesmal wieder das Ein- und Aus-Blenden aufgerufen wird. Das verlangsamt die Sache schon etwas.

Und richtig unschön ist es, SelectionChange zu benutzen, weil das nicht nur bei Neuberechnungen, sondern sogar bei jeder Cursor-Bewegung z.B. durch die Pfeiltasten, ausgelöst wird.

Ich denke aber mal, a) oder b) sollte fast immer möglich sein. Schau mal in Deine Tabelle, ob da was paßt, dann kann man da was hinbasteln. Sind nicht wirklich viele Code-Zeilen.

Gruß, Michael
Benutzer-Profile anzeigenPrivate Nachricht sendenICQ-Nummer
enzo
Newbie
Newbie


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

BeitragVerfasst am: 20.11.2008, 08:18 Nach oben

Hallo Michael,

vielen Dank für deine Antwort.

Nun wie schon gesagt mit VBA kenne ich überhaupt nicht aus und kann dir somit leider nur teilweise folgen. Shocked
Aber so wie ich dich verstanden habe wird das bei mir schon unschön, denn Tabelle!A1 ist ein Kontrollkästchen und in B2 wir Wahr oder Falsch ausgegeben.
Könntest du mir dafür eine Lösung empfehlen???
Ich komm damit einfach nicht weiter! Evil or Very Mad

Grüße Enzo

_________________
Gruß Enzo
Benutzer-Profile anzeigenPrivate Nachricht senden
miriki
Schlauberger
Schlauberger


Anmeldedatum: 05.03.2007
Beiträge: 710
Wohnort: Kiel

BeitragVerfasst am: 20.11.2008, 09:20 Nach oben

enzo hat Folgendes geschrieben:
Tabelle!A1 ist ein Kontrollkästchen

Ne... Tabelle1!A1 ist eine Zelle (in einem Arbeitsblatt einer Arbeitsmappe). Wink

Ähm... Also... Wird die Zelle A1 als Kontrollkästchen benutzt, indem dort z.B. ein "X" eingegeben wird? Oder ist auf A1 ein "echtes" Kontrollkästchen platziert, also so eins, das mit der Maus angeklickt wird?

Wenn Letzteres, dann die Frage: Ist es eines aus der Symbolleiste "Formular" (urks...) oder "Steuerelement-Toolbox" (hoffentlich!).

Wenn wiederum Letzteres, dann gibt es nämlich ein Ereignis "Click" für die CheckBox, das ausgelöst wird, wenn der Status der CheckBox sich ändert, also von "wahr" auf "falsch" oder umgekehrt wechselt. Genau in diesem Ereignis müßte dann das Ein-/Aus-Blenden geschehen:

Code:
Private Sub CheckBox1_Click()
    If CheckBox1.Value = True Then
        'zeilen ausblenden, wenn "wahr"
      Else
        'zeilen einblenden, wenn "falsch"
    End If
End Sub


Unterscheiden kannst Du die beiden Arten der CheckBoxen relativ simpel: Klicke das Ding mal mit der rechten Maustaste an.

Wenn es so einen dicken, schraffierten Rahmen bekommt und das Kontext-Menü (u.a. "Steuerelement formatieren...") kommt, dann ist es aus "Formular".

Wird nur der Text umrandet und sonst passiert nichts, dann ist es das aus "Steuerlement-Toolbox". Und dann haben wir in 0,nix eine Lösung für Dich, die obendrein nicht mal unnötig Ressourcen verbrät.

Gruß, Michael
Benutzer-Profile anzeigenPrivate Nachricht sendenICQ-Nummer
enzo
Newbie
Newbie


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

BeitragVerfasst am: 20.11.2008, 12:27 Nach oben

Hallo Michael,
also es kommt so ein schraffierter Rahmen mit dem Kontexmenü z.B. Steuerelement formatieren. Das habe ich aus der Menüleiste unter Entwicklertolls und dann auf Formularsteuerelemente. Aber, Recht hast du A1 ist selbstverständlich eine Zelle Laughing .
Hilf mir doch ber bitte mal auf die Sprünge was ich mit deinem Code machen soll!?!?!?

Gruß Enzo

_________________
Gruß Enzo
Benutzer-Profile anzeigenPrivate Nachricht senden
miriki
Schlauberger
Schlauberger


Anmeldedatum: 05.03.2007
Beiträge: 710
Wohnort: Kiel

BeitragVerfasst am: 20.11.2008, 13:52 Nach oben

enzo hat Folgendes geschrieben:
Das habe ich aus der Menüleiste unter Entwicklertolls und dann auf Formularsteuerelemente.

Schade... Wink

Zitat:
Hilf mir doch ber bitte mal auf die Sprünge was ich mit deinem Code machen soll!?!?!?

Leider in dem Fall gar nichts, denn mit den "Formular"-Elementen wirkt der nicht.

Ich kenne x2007 nicht, von daher kann ich Dir nicht genau sagen, wo Du es findest. Aber in x2000 gibt es das Menü "Ansicht - Symbolleisten", dort findet man u.a. "Formular", aber auch "Steuerelement-Toolbox". Deine CheckBox ist aus Ersterer, Du bräuchtest aber die aus Letzterer.

Wenn Du die 2. findest, dann kannst Du:
- die "Formular"-Checkbox löschen
- eine "Steuerelement-Toolbox"-Checkbox auf A1 setzen
- ggf. (nicht zwingend notwendig) darauf rechte Maustaste, Eigenschaften
- in dem Eigenschaften-Fenster die Eigenschaft "LinkedCell" mit einer Zelle füllen, wo "wahr" oder "falsch" erscheinen soll, zusätzlich zu dem "Häkchen"-Status der Checkbox selbst.
- das Eigenschaften-Fenster schließen.
- den "Entwurfsmodus beenden" durch Klick auf das kleine Symbol mit blauem Dreicks-Lineal und Stift in der Symbolleiste.

- Alt-F11 (oder Menü "Extras - Makro - Visual-Basic-Editor") drücken --> VBA-Editor erscheint
- falls der Projekt-Explorer nicht sichtbar ist, Strg-R (oder Menü "Ansicht - Projekt-Explorer") drücken
- im Projekt-Explorer auf "Tabelle1 (Tabelle1)" Doppelklick, wenn das das Blatt ist, auf dem die Checkbox liegt.
- in der linken Auswahlbox "(Allgemein) - Checkbox1 - Worksheet" über dem Source-Code (großes, leeres Blatt) den Eintrag "Checkbox1" auswählen.
- zwischen den neu erschienenen 2 Zeilen "private .. end", wo auch der Cursor steht, den Code aus dem vorigen Posting einfügen.

Der Code macht zunächst erstmal gar nichts, also nicht wundern. Aber wenn Du es bis hierhiun geschafft hast, obwohl ich es nur aus x2000-Sicht beschreiben kann, dann melde Dich nochmal und wir füllen das Ding endgültig mit Leben. Wink

Gruß, Michael
Benutzer-Profile anzeigenPrivate Nachricht sendenICQ-Nummer
enzo
Newbie
Newbie


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

BeitragVerfasst am: 20.11.2008, 14:00 Nach oben

Sch... ! Danke erst mal. Ich werd schauen ob ich das so hin bekomme wie in dener Anleitung. Wenn es funtzt, dann melde ich mich noch mal.

Gruß Enzo
Benutzer-Profile anzeigenPrivate Nachricht senden
< Peter >
Schlauberger
Schlauberger


Anmeldedatum: 30.08.2008
Beiträge: 580
Wohnort: Das schönste Land in Deutschlands Gaun

BeitragVerfasst am: 20.11.2008, 14:01 Nach oben

Hallo,

siehst du in XL2007 in der Multifunktionsleiste ein Register Entwicklertools? Wenn ja, dann findest du dort die Gruppe Steuerelemente. Wenn du auf Einfügen klickst dann findest du im oberen Bereich die 'Formularsteuerelemente' und im unteren Bereich die 'ActiveX-Steuerelemente' die du hier benötigst.

Wenn du dieses Register nicht siehst dann klicke auf die Office-Schaltfläche - Excel-Optionen - Häufig verwendet und setze dort einen Haken bei dem Punkt 'Entwicklerregisterkarte in der Multifunktionsleiste anzeigen'.

_________________
Gruß
Peter
Benutzer-Profile anzeigenPrivate Nachricht senden
enzo
Newbie
Newbie


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

BeitragVerfasst am: 20.11.2008, 14:16 Nach oben

Hallo Peter,
die hab ich und ich habe jetzt auch ein 'ActiveX-Steuerelement' eingefügt! Nun ab ich aber davon überhaupt keinen Plan.
Wie kann ich denn mit diesem Ding etwas steuern?
Wäre SUPER, wenn du mir weiterhelfen könntest.

Gruß Enzo

_________________
Gruß Enzo
Benutzer-Profile anzeigenPrivate Nachricht senden
< Peter >
Schlauberger
Schlauberger


Anmeldedatum: 30.08.2008
Beiträge: 580
Wohnort: Das schönste Land in Deutschlands Gaun

BeitragVerfasst am: 20.11.2008, 14:22 Nach oben

Hallo,

den Rest überlasse ich jetzt wieder Michael.

Ich habe mich nur kurz zu Wort gemeldet weil das mit der Symbolleiste in XL2007 doch etwas von den Vorgängerversionen abweicht.

In Michaels Posting geht es jetzt an dieser Stelle weiter:

Wenn Du die 2. findest, dann kannst Du:

_________________
Gruß
Peter
Benutzer-Profile anzeigenPrivate Nachricht senden
enzo
Newbie
Newbie


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

BeitragVerfasst am: 20.11.2008, 14:25 Nach oben

Peter ich danke dir trotzdem für deine Hilfe. Jetzt kenne ich doch schon mal den Unterschied der beiden Boxen Razz .

Gruß Enzo

_________________
Gruß Enzo
Benutzer-Profile anzeigenPrivate Nachricht senden
enzo
Newbie
Newbie


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

BeitragVerfasst am: 20.11.2008, 14:36 Nach oben

Hallo Michael,
ich bin ganz glücklich, denn es hat bisher alles funktioniert Laughing Razz .

Könntest du mir jetzt bitte noch mit dem "endgültig mit Leben" erfüllen helfen.

ich habe aber damit noch ein weiteres Problem, denn es soll nicht nur eine Zeile aus- bzw. eingeblendet werden. Aber ich glaub da muss ich weiter ausholen:
ich habe in der Tabelle1 von a1 bis a24 jeweils so ne Box, da ich alle Zeilen die ich nicht in meiner Kalkulation benötige ein- bzw. ausblenden möchte (Arbeitszeitkalkulation pro Tag).
Kann ich das dann auch beliebig erweitern?

Gruß Enzo

_________________
Gruß Enzo
Benutzer-Profile anzeigenPrivate Nachricht senden
miriki
Schlauberger
Schlauberger


Anmeldedatum: 05.03.2007
Beiträge: 710
Wohnort: Kiel

BeitragVerfasst am: 20.11.2008, 15:38 Nach oben

enzo hat Folgendes geschrieben:
Könntest du mir jetzt bitte noch mit dem "endgültig mit Leben" erfüllen helfen.

Jau, das ist jetzt kein wirklich großes Problem mehr.

Zitat:
ich habe in der Tabelle1 von a1 bis a24 jeweils so ne Box,

Dann gestaltet sich das zwar umfangreicher, aber nicht schwieriger. Es ist eine reine Fleiß-Arbeit.

Du bist jetzt an dem Punkt, wo Du
Code:
Private Sub CheckBox1_Click()
    If CheckBox1.Value = True Then
        'zeilen ausblenden, wenn "wahr"
      Else
        'zeilen einblenden, wenn "falsch"
    End If
End Sub

im Source-Editor stehen hast, ja?
Diese Routine ist nur, einzig und alleine für die "CheckBox1" zuständig. Fangen wir also mal mit dieser an...
ersetze mal die Zeile
Code:
'zeilen ausblenden, wenn "wahr"

mit der Zeile
Code:
worksheets("Tabelle2").rows(1).rowheight=0

und ersetze die Zeile
Code:
'zeilen einblenden, wenn "falsch"

mit der Zeile
Code:
worksheets("Tabelle2").rows(1).rowheight=15

oder ev. auch mit
Code:
worksheets("Tabelle2").rows(1).autofit


Jetzt kannst Du erstmal den Source-Editor schließen (rechts oben das [X]) und wieder zurück zu Deiner Mappe.

Wenn Du jetzt die CheckBox anklickst, sollte je nach Status der Box die Zeile 1 auf dem Blatt Tabelle2 ein- oder ausgeblendet werden.

Wenn das funktioniert, dann kannst Du dich an die nächsten CheckBoxen machen. Es folgt eine etwas stupide Arie...

Setze eine CheckBox auf das Blatt, rechte Maustaste darauf, dann "Code anzeigen" --> Du landest im Source-Editor zwischen den beiden Zeilen "private .. end", die zum Click-Ereignis der aktuellen CheckBox gehören.

Füge dort den gleichen Rumpf ein, wie in CheckBox1 schon geschehen. Passe dann allerdings .rows(1) auf .rows(2) an. Und wieder den Source-Editor schließen und die CheckBox ausprobieren.

Funktioniert die 2. CheckBox? Dann weiter mit der 3. im gleichen Stil. Du hast 24 Stück davon? Naja, nicht unbedingt schön, die Arbeit, aber wenn man es "einfach" halten möchte, vielleicht lieber so. Die 24 Ereignisse zu den 24 CheckBoxen muß man in jedem Fall erzeugen.

(In einer "schöneren" Version würde in jedem dieser Ereignisse aber nur genau eine Zeile stehen und eine Extra-Routine außerhalb würde diese Arbeit zentral für die jeweils passende CheckBox / Zeile machen.)

Aber sag erstmal Bescheid, wenn es bis hierhin funktioniert...

Gruß, Michael
Benutzer-Profile anzeigenPrivate Nachricht sendenICQ-Nummer
enzo
Newbie
Newbie


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

BeitragVerfasst am: 20.11.2008, 15:59 Nach oben

Michael, das geht nicht! Jetzt bringt er immer die Fehlermeldung:
'Laufzeitfehler '9'
Index außerhalb des gültigen Bereichs'

Der Code sieht jetzt bei mir nach deiner Aleitung so aus:
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
Worksheets("Tabelle1").Rows(14).RowHeight = 0
Else
Worksheets("Tabelle1").Rows(14).RowHeight = 15
End If
End Sub

was mache ich falsch??? hast du eine idee?

Wobei Tabelle2 bei mir Tabelle1 ist und es sich eigentlich um Zeile 14 (und 44,74,104,... bis 344) handelt, die aber alle von der einen Box gesteuert werden sollen. und das mache ich dann 24x.

_________________
Gruß Enzo
Benutzer-Profile anzeigenPrivate Nachricht senden
miriki
Schlauberger
Schlauberger


Anmeldedatum: 05.03.2007
Beiträge: 710
Wohnort: Kiel

BeitragVerfasst am: 20.11.2008, 16:24 Nach oben

enzo hat Folgendes geschrieben:
Index außerhalb des gültigen Bereichs'

Der Fehler deutet eigentlich auf einen Tippfehler in Blattname oder ähnlichem hin.

Ich häng Dir mal ein Beispiel an... Der Code funktioniert genau so, wie er soll, ich hab nur wieder auf "Tabelle2" geändert, mehr nicht.

Gruß, Michael

Nachtrag: Bist Du dir mit "Tabelle1" absolut ganz und gar völlig total sicher? Wink Oder ist da vielleicht ein Leerzeichen vor der 1, oder eines am Anfang oder Ende, was man so nicht mehr sieht? Das ist immer wieder eine fiese Falle...


zeilen_ausblenden.xls
 Beschreibung:

Download
 Dateiname:  zeilen_ausblenden.xls
 Dateigröße:  23 KB
 Heruntergeladen:  26 mal

Benutzer-Profile anzeigenPrivate Nachricht sendenICQ-Nummer
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 Wert zurückgeben, wenn MAX Ivonne Microsoft Excel Hilfe 2 02.07.2009, 11:41 Letzten Beitrag anzeigen
Keine neuen Beiträge Formel innerhalb einer Wenn Dann Stru... dlrgler Microsoft Excel Hilfe 4 27.06.2009, 10:02 Letzten Beitrag anzeigen
Keine neuen Beiträge WENN, DANN neue Formel einfügen noctis Microsoft Excel Hilfe 1 23.06.2009, 22:52 Letzten Beitrag anzeigen
Keine neuen Beiträge NEUE ZEILE ÜBER MEHRERE REGISTER - HI... Frank81 Microsoft Excel Hilfe 5 21.06.2009, 20:51 Letzten Beitrag anzeigen
Keine neuen Beiträge Wenn Dann Sonst Regel beim Serienbrief Schnipsel Microsoft Word Hilfe 1 21.06.2009, 10:31 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 | Battle-Dream | Tuning Forum | Join the YoungGeneration | krankenversicherungsvergleich | Kalorienarme Rezepte!
Versicherungsvergleich | Bürobedarf | Papier | Betten

Ranking-Hits



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