Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1468to1472
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilen abhängig aus/einblenden

Zeilen abhängig aus/einblenden
20.01.2016 10:35:08
Martin
Hallo Forum,
ich habe ein Excel-„Antragsformular“, das von Kollegen ausgefüllt werden soll – siehe bitte angehängte Datei https://www.herber.de/bbs/user/102898.xlsm
Im Tabellenblatt „Formular max 10“ kann in Zelle C48 über ein Pull Down-Menü eine Begründung für den Antrag gewählt werden.
Wird hier NICHT „Sonderwunsch Käufer vor Kaufvertrag“ ausgewählt (sondern eine der drei anderen Möglichkeiten), sollen die Zeilen 51 bis 56 ausgeblendet werden (grau hinterlegt).
Oder anderes herum: Nur wenn „Sonderwunsch Käufer vor Kaufvertrag“ ausgewählt wird, sollen die Zeilen 51 bis 56 sichtbar sein.
Ich möchte also, dass sich die Zeilen 51 bis 56 in der beschriebenen Abhängigkeit der Auswahl in Zelle C48 aus- und einblenden lassen.
Beim Schließen der Datei sollten die Zeilen 51 bis 56 wieder eingeblendet werden, damit sie beim nächsten Öffnen der Datei wieder sichtbar sind.
Diese Funktion brauche ich auch für das Tabellenblatt „Formular max 4“. Die Zelle mit dem Pull Down-Menü ist hier C30 und die auszublendenden Zeilen sind hier 33 bis 39 (grau hinterlegt).
Wäre Euch für Eure Hilfe sehr dankbar!
Herzliche Grüße
Martin

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen abhängig aus/einblenden
20.01.2016 13:26:56
Michael
Hi Martin,
ich sehe weder hier noch dort ein PullDown-Menü.
Macht aber nix. Diesen Code fügst Du zum Tabellenblatt "Formular max 10" ein:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Const nurdann = "Sonderwunsch Käufer vor Kaufvertrag"
If Target.Address = "$C$48" Then
If Target.Value = nurdann Then
Rows("51:57").Hidden = False
Else
Rows("51:57").Hidden = True
End If
End If
End Sub
Das gleiche Ding kommt dann mit Anpassung der Target.Address in weitere Tabellenblätter.
Unter "Diese Arbeitsmappe" kannst Du theoretisch ein Ereignis wie "BeforeClose" oder so verwenden, einfacher ist es aber, die Zeilen beim Öffnen wieder einzublenden, z.B. so:
Private Sub Workbook_Open()
Sheets("Formular max 10").Rows("51:57").Hidden = False
' usw.
End Sub
auch wenn ich mich frage, ob das wirklich sinnvoll ist.
Zwei Anmerkungen:
a) das Ausblenden bringt das "Design" des Formulars beim Ausdruck "durcheinander". Anstatt die Info auszublenden, könnte man auch die Schriftfarbe auf die Hintergrundfarbe setzen.
b) es gibt in Excel "benutzerdefinierte Ansichten", die eigentlich variabler einsetzbar sind als die "hart kodierten" ZeilenNummern, d.h. Du kannst die Definition der Ansicht (also die betreffenden Zeilen) direkt in Excel ändern, ohne den VBA-Code ändern zu müssen.
Hmm, ich hab's grad mal getestet, das ist spürbar lahm, also kannst b) gedanklich wieder streichen.
Schöne Grüße,
Michael

Anzeige
AW: Zeilen abhängig aus/einblenden
20.01.2016 13:42:04
Werner
Hallo Martin,
Versuch mal
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Address(0, 0) = "C48" Then
Rows("51:56").Hidden = False
Select Case .Value
Case "Sonderwunsch Käufer vor Kaufvertrag"
Rows("51:56").Hidden = False
Case Else
Rows("51:56").Hidden = True
End Select
End If
End With
End Sub
Der Code muss ins Modul des Tabellenblattes.
Gruß Werner

AW: Zeilen abhängig aus/einblenden
20.01.2016 15:03:30
Martin
Hallo Werner,
vielen kollegialen Dank - läuft! ;-)
Noch eine Restfrage:
Da das Formular immer wieder verwendet wird, sollten alle Zeilen beim Öffnen der Datei automatisch wieder eingeblendet werden ("Ursprungszustand"). Hast Du noch einen Tip dafür?
Danke. Danke. Danke.
Herzliche Grüße
Martin

Anzeige
hab ich Dir doch geschrieben owT
20.01.2016 15:37:09
Michael

AW: Zeilen abhängig aus/einblenden
20.01.2016 15:56:25
Martin
Hallo Michael,
auch Dir vielen Dank!
Den Hinweis habe ich gesehen, komme damit aber nicht klar.
Den Code habe ich in ein Model der Arbeitsmappe kopiert, die Zeilen werden aber nciht eingeblendet beim Öffnen der Datei.
Private Sub Workbook_Open()
Sheets("Formular max 4").Rows("33:38").Hidden = False
Sheets("Formular max 10").Rows("51:56").Hidden = False
End Sub
Was ist da nicht richtig?
Herzliche Grüße
Martin

bitte genau lesen
20.01.2016 16:03:20
Michael
Hi Martin,
den Code nicht in irgend- "ein Modul" kopieren, sondern unter "Diese Arbeitsmappe".
(das oberste Modul des Projekts, VOR den Tabellenblättern)
Schöne Grüße,
Michael

Anzeige
AW: bitte genau lesen
20.01.2016 16:14:03
Martin
Danke, Michael!
So funktioniert es :-))
Und beim nächsten Mal lese ich GANZ GENAU!
Herzliche Grüße
Martin

dann freut es mich, ebenfalls Dank f.d. Rückm.
21.01.2016 15:10:46
Michael
Gruß zurück,
Michael

AW: Danke für die Rückmeldung. Nachfrage ja erledi
20.01.2016 16:16:48
Werner

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige