Office - Word, Excel und Co. 9.759 Themen, 41.747 Beiträge

Excel - Zellbereich abhängig von Werten ausblenden

winzard / 5 Antworten / Baumansicht Nickles

Ich möchte einen Bereich in Excel ausblenden, abhängig von der Stellung von 2 Kombinationslisten (drop down menu) (Auswahl Unternehmen und Berichtsmonat), für eine zelle klappt das über den Holzweg mit
=WENN(UND(A14=1;ODER(B14=3;B14=6;B14=9;B14=12));" weitere Details(Quartalsdaten)";" ")


jetzt handelt es sich aber um einen großen bereich, leider hab ich keine formel "hide" gefunden, ein makro würde bei änderung des kombinationsfeldes wohl nicht rückgängig gemacht und von VBA hab ich keine Ahnung.


Hat jemand einen Rat für mich ?


LG Dennis

bei Antwort benachrichtigen
S.F.T.I. winzard „Excel - Zellbereich abhängig von Werten ausblenden“
Optionen

Hallo winzard,

versuch es mal mit bedingter Formatierung welches du unter Format finden kannst.
Die entsprechenden Zellen markieren und dann vielleicht die Schrift auf Weiß, das Problem ist dann nur der Text den du möchtest.
Schau mal ob du damit etwas anfangen kannst.

Gruß

bei Antwort benachrichtigen
winzard S.F.T.I. „Hallo winzard, versuch es mal mit bedingter Formatierung welches du unter Format...“
Optionen

Mein Problem ist, das es sich bei den Zellen (die ausgeblendet werden sollen) nur um Text handelt und (wie Du schon richtig sagtest) die bedingte Formatierung nur Werte oder Formeln als Argumente zulässt.

Kann man denn die Ausführung eines Makros abhängig machen von
einer "Wenn-Formel" (If command) ?

etwa in dem stil: =wenn(A1=0;Makro ausführen;" ")


Freue mich über jeden Tip !!!
bei Antwort benachrichtigen
crust winzard „Excel - Zellbereich abhängig von Werten ausblenden“
Optionen

Hmmm wenn ich das alles Richtig verstanden habe, wird ein Makro ausgeführt was vom Benutzer eine Auswahl abfragt. Je nachdem was ausgewählt wurde sollen die inhalte einiger Zellen ausgeblendet sein...

Du könntest im ausgeführten Makro vielleicht einen Wert in eine Andere (Villeicht ausgeblendete) Zelle schreiben. Jetzt in jede Zelle die ausgeblendet werden soll wenn(ZA1=1;" ";....)

Vielleicht hilft Dir das weiter. Aber ich muss zugeben das ich die Problemstellung noch nicht 100% versatanden habe.

Gruß
crust

bei Antwort benachrichtigen
Uli M winzard „Excel - Zellbereich abhängig von Werten ausblenden“
Optionen

Zu "Kann man denn die Ausführung eines Makros abhängig machen von einer "Wenn-Formel" (If command) ?": Das ist hier gar nicht nötig, da das Makro selbst je nach Bedingung(en) entscheidet, ob und was es tut.
Vermutlich geht's aber nur mit VBA. Das Problem mit dem Rückgängig besteht (in Excel) darin, dass nach Ausführung von VBA-Aktionen, die Änderungen an der Arbeitsmappe durchführen, die Rückgängig-Liste nicht mehr verfügbar ist.
Du reagierst am besten mit einer Ereignisprozedur, die sich in dem Tabellenblatt befindet, wo die Änderungen (Auswahl) vorgenommen werden können. Der Zielbereich kann theoretisch in einem anderen Blatt sein. Und zwar verwendest du das Worksheet_Change-Ereignis. Probiere folgendes Mini-Bsp.:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim oRg1 As Range, oRg2 As Range
Dim oAuszublenden As Range
' Die 2 Bereiche, auf deren Änderung reagiert werden soll
Set oRg1 = ActiveSheet.Cells(1, 4)
Set oRg2 = ActiveSheet.Cells(2, 5)
' Ist die Änderung relevant? _
etwas aufwändiger, wenn Mehrfach-Markierung / Änderung, _
eine "Nicht-Zelle" betroffen, ... _
nicht getestet mit einem Formularfeld
If Target oRg1 And Target oRg2 Then Exit Sub
Set oAuszublenden = ActiveSheet.Range("F2:G10")
' Jetzt deine Bedingungen, die ich natürlich nicht nachvollziehen kann, z.B.
If oRg1.Value = "Wert 1" Or oRg1.Value = "Wert 17" Then
If oRg2.Value = "Wert 2" Then
oAuszublenden.EntireColumn.Hidden = True ' für Zeilen wäre es EntireRow
End If
Else
oAuszublenden.EntireColumn.Hidden = False
End If
End Sub

bei Antwort benachrichtigen
Uli M winzard „Excel - Zellbereich abhängig von Werten ausblenden“
Optionen

Ich mach normalerweise nicht viel mit Excel und schon gar nicht mit Formularfeldern. Habe erst jetzt (wieder?) entdeckt, dass man dem Formularfeld (ich gehe mal davon aus, dass du von solchen sprichst) selbst ein Makro ("Ereignisprozedur") zuweisen kann. Ausserdem wird in diesen Fällen wohl das Worksheet_Change-Ereignis nicht ausgelöst. Das macht die Sache aber wohl nicht wesentlich anders. Nun musst du wohl 2 Routinen erstellen (lassen), die beide die gleiche Unterroutine (im Prinzip ähnlich wie zuvor gepostet) aufrufen:

Sub Dropdown1_BeiÄnderung()
EinAusblenden
End Sub

Sub Dropdown2_BeiÄnderung()
EinAusblenden
End Sub

Private Sub EinAusblenden()
Dim oRg1 As Range, org2 As Range
Dim oAuszublenden As Range
' Die 2 Bereiche, auf deren Änderung reagiert werden soll
Set oRg1 = ActiveSheet.Cells(1, 4)
Set org2 = ActiveSheet.Cells(2, 5)
Set oAuszublenden = ActiveSheet.Range("F2:G10")
' Jetzt deine Bedingungen, die ich natürlich nicht nachvollziehen kann, z.B.
If oRg1.Value = "1" Or oRg1.Value = "3" Then
If org2.Value = "2" Then
oAuszublenden.EntireColumn.Hidden = True ' für Zeilen wäre es EntireRow
End If
Else
oAuszublenden.EntireColumn.Hidden = False
End If
End Sub

bei Antwort benachrichtigen