Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1612to1616
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
Zeilen ausblenden mit Bedingung in VBA
12.03.2018 13:33:57
Ralf
Hallo Forum,
ich habe das Archiv bereits durchsucht, bin aber trotzdem nicht zu einer funktionierenden Lösung gekommen.
Ich möchte eine Arbeitsmappe mehrsprachig darstellen. Funktioniert alles, jedoch soll auf einem Ergebnisblatt eine Grafik der ausgewählten Sprache angezeigt werden.
Dies möchte ich über ein-/ausblenden von Zeilen erreichen.
Beispiel:
Tabelle "Sprachauswahl" Zelle F2 kann den Zellwert 1, 2 oder 3 enthalten.
Bei "1" sollen im Tabellenblatt "Ergebnis" die Zeilen 4 bis 7, 27 und 28 ausgeblendet werden.
Bei "2" sollen im Tabellenblatt "Ergebnis" die Zeilen 2, 3, 6, 7, 26 und 28 ausgeblendet werden.
Bei "3" sollen im Tabellenblatt "Ergebnis" die Zeilen 2 bis 5, 26 und 27 ausgeblendet werden.
Das geht wahrscheinlich nur über VBA, oder?
Kann mich da jemand bitte unterstützen?
Vielen Dank im Voraus für eine Rückmeldung.
Viele Grüße
Ralf

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen ausblenden mit Bedingung in VBA
12.03.2018 13:38:39
udo
Hallo Ralf,
wie soll es ausgelöst werden, automatisch sobald du den entspr. Eintrag vornimmst, oder durch einen Button ( Schalter ) ?
Gruß udo
AW: Zeilen ausblenden mit Bedingung in VBA
12.03.2018 13:44:12
Ralf
Hallo Udo,
ich habe 3 Optionsfelder die mit der Zelle F2 im Blatt "Sprachauswahl" verbunden sind eingefügt. Das heißt durch Auswahl eines Optionsfeldes wird 1, 2 oder 3 in die Zelle geschrieben.
Die Auslösung soll also automatisch erfolgen, sobald der Eintrag vorgenommen wird (Zellüberwachung?).
Viele Grüße
Ralf
AW: Zeilen ausblenden mit Bedingung in VBA
12.03.2018 14:48:03
udo

Sub Zeilen_aus_einblenden()
[4:7,27:28].EntireRow.Hidden = True ' blendet 4-7 und 27-28 aus   [1,3,7,9-13,20,31] Aufzä _
hlungsbeispiel für gesamte jew. Zeilen
[4:7,27:28].EntireRow.Hidden = False ' blendet 4-7 und 27-28 wieder ein
End Sub
Hier mal ein Beispiel dass du deinem Schalter zufügen kannst, oder den Inhalt deinem Makro beifügst
Die Aufzählung in den Rechteckklammern musst du eben deinen Wünschen nach noch entspr. anführen..
Solltest du mit einem Schalter ein und ausblenden Wollen , musst noch eine If ... Else ... End if
Bedingung mit einbauen ...
kommst du damit schon klar oder brauchst du mehr
Gruß udo
Anzeige
AW: Zeilen ausblenden mit Bedingung in VBA
12.03.2018 14:56:42
Ralf
Hallo Udo,
zu Deiner Frage: kommst du damit schon klar oder brauchst du mehr
Ich habe keinen Plan von VBA, kann max. kleine logische Anpassungen vornehmen.
Mir fehlt schon der Hinweis, wo der Code hinkopiert werden muss. Dann fehlt mir irgendwie die "Wenn" Abfrage: Wenn in F2 "1, 2 oder 3" dann sollen die Zeilen xyz ausgeblendet werden.
Ich würde das eher als "Zellüberwachung" sehen, oder täusche ich mich?
Viele Grüße
Ralf
AW: meinst du in etwa so ?
12.03.2018 15:18:26
Ralf
Hallo Udo,
muss ich morgen mal schauen, ob ich das angepasst bekomme.
Was mir aufgefallen ist an Deinem Code: Du beziehst alles auf ein Tabellenblatt, was bei mir anders ist.
Die Sprachauswahl findet mittels Optionsfeldern in dem Tabellenblatt "Sprachauswahl", die Zeilen sollen aber im Tabellenblatt "Ergebnis" ein- bzw. ausgeblendet werden.
Das fehlt mir jetzt irgendwie noch im Code.
Viele Grüße und bis morgen
Ralf
Anzeige
AW: Hier noch ein Bsp. mit entspr. Schaltern ...
13.03.2018 14:16:51
Ralf
Hallo Udo,
Dein Beispiel kann ich nachvollziehen, das funktioniert wunderbar.
In meinem vorliegendem Projekt ist es allerdings so, dass die abzufragende Zelle F2 im Blatt "Sprachauswahl" liegt und die Zeilen, die aus- bzw. eingeblendet werden sollen im Blatt "Ergebnis".
Mit der Anpassung von Deinem Code bin ich jetzt etwas überfordert. Der Code muss dann wahrscheinlich in ein Modul, oder?
Viele Grüße
Ralf
Ok, dann so ? ...
13.03.2018 16:03:50
udo
Du solltest allerdings solche Infos zukünftig gleich mitliefern mit den 2 Tab.Blättern, oder hab ich es überlesen ?
Schau dir den CODE des rechten Schalters an ... der bezieht sich nun auf die direkt
bezeichneten Tab.Blätter ...
Die Codes der linken 4 Schalter sind noch in Rechteckklammer ( ohne Sheets("...") ) damit wirken die
immer auf das gerade aktive Fenster in dem der Code greift und das jew. aktive Fenster
https://www.herber.de/bbs/user/120387.xlsm
;-)
LG Udo
Anzeige
noch ein wenig schneller ...
13.03.2018 16:07:47
udo

Sub Sprachen_im_Wechselschalter()
'------------------------------------------------------------------------------------------- _
Application.ScreenUpdating = False
Sheets("Ergebnis").Range("4:29").EntireRow.Hidden = True ' blendet erst mal alle Zeilen aus
If Sheets("Sprachauswahl").Range("F2") = "" Or Sheets("Sprachauswahl").Range("F2") = 4 Then  _
' prüft Eintrag in F2 ... wenn F2 = .... dann
Sheets("Sprachauswahl").Range("F2") = 1  ' schreibt die Bedingung in F2
Sheets("Ergebnis").Range("9:10,13:14").EntireRow.Hidden = False ' und blendet die  _
zugeordneten Zeilen wieder ein ...
Sheets("Ergebnis").Shapes.Range(Array("Rectangle 5")).TextFrame2.TextRange.Characters. _
Text = "deutsch" ' schreibt auf Rechteck 5 entspr. Text
Application.ScreenUpdating = True
Exit 

Sub ' beendet gesamte Wechselschalterprozedur damit
End If
If Sheets("Sprachauswahl").Range("F2") = 1 Then
Sheets("Sprachauswahl").Range("F2") = 2
Sheets("Ergebnis").Range("4:8,11:12").EntireRow.Hidden = False
Sheets("Ergebnis").Shapes.Range(Array("Rectangle 5")).TextFrame2.TextRange.Characters. _
Text = "englisch"
Application.ScreenUpdating = True
Exit Sub
End If
If Sheets("Sprachauswahl").Range("F2") = 2 Then
Sheets("Sprachauswahl").Range("F2") = 3
Sheets("Ergebnis").Range("15:20,23:23").EntireRow.Hidden = False
Sheets("Ergebnis").Shapes.Range(Array("Rectangle 5")).TextFrame2.TextRange.Characters. _
Text = "französisch"
Application.ScreenUpdating = True
Exit Sub
End If
If Sheets("Sprachauswahl").Range("F2") = 3 Then
Sheets("Sprachauswahl").Range("F2") = 4
Sheets("Ergebnis").Range("21:22,24:29").EntireRow.Hidden = False
Sheets("Ergebnis").Shapes.Range(Array("Rectangle 5")).TextFrame2.TextRange.Characters. _
Text = "italienisch"
Application.ScreenUpdating = True
Exit Sub
End If
End Sub

Anzeige
AW: noch ein wenig schneller ...
14.03.2018 08:12:36
Ralf
Hallo Udo,
scheinbar habe ich mich unglücklich / undeutlich ausgedrückt. Die 2 Tabellenblätter hatte ich erwähnt, als ich das Thema eröffnet habe.
Ich benötige etwas nach diesem Schema:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Sheets("Sprachauswahl").Range("F2") = 1 Then
Sheets("Ergebnis").Range("2:3,26:26").EntireRow.Hidden = False And _
Sheets("Ergebnis").Range("4:7,27:28").EntireRow.Hidden = True
ElseIf Sheets("Sprachauswahl").Range("F2") = 2 Then
Sheets("Ergebnis").Range("4:5,27:27").EntireRow.Hidden = False And _
Sheets("Ergebnis").Range("2:3,6:7,26:26,28:28").EntireRow.Hidden = True
ElseIf Sheets("Sprachauswahl").Range("F2") = 3 Then
Sheets("Ergebnis").Range("6:7,28:28").EntireRow.Hidden = False And _
Sheets("Ergebnis").Range("2:5,26:27").EntireRow.Hidden = True
End If
Application.ScreenUpdating = True
End Sub

Die Zelle F2 im Blatt "Sprachauswahl" soll überwacht werden, und je nach Ergebnis "1", "2" oder "3" die entsprechenden Zeilen ein- bzw. ausblenden.
Der o. g. Code wird aber leider nach Sprachauswahl nicht ausgeführt.
Kannst Du den Code so anpassen, dass er die Zelle F2 im Blatt "Sprachauswahl" überwacht und im Blatt "Ergebnis" die Zeilen aus- und eingeblendet werden?
Vielen Dank im Voraus.
Viele Grüße
Ralf
Anzeige
wenn du ...
12.03.2018 15:15:22
udo
unten im Tabellenreiter dein entspr. TabBlatt per Rechtklick anklickst, kannst du per - Code anzeigen - gleich auf den Code vom Tabellenblatt Einblick nehmen.
Du solltest im VBA Editor links oben deine Tabellenblätter gelistet sehen, da kanst du jeweils per
Doppelklick drauf dann das entspr. Editorblatt anzeigen lassen zu den jew. Tab.Blättern ...
Dort gehören da Anweisungen ( Makros ) rein , die direkt im Tab. Blatt nach irgend einem Ereignis stattfinden sollen ... Über dem rechten großen Feld im Editor sind 2 Zeilen mit Dropdown, links wählst du Worksheet, und rechts dann das entspr. Ereignis bei dem etwas passieren soll, dann erscheint der Anfang gleich im Editor und du musst nur noch zwischen rein deine Codezeilen platzieren ....
Private Sub ...
deine Codes
End Sub
soweit wenn du direkt im Tab. Blatt verankern willst ..
Willst du deine Code unabhängig platzieren dann erstelle ein Modul ( rechtsklick im Editor auf ein Tab.Blatt und dann über Einfügen-Modul ...
Es sollte sich dann links ein Ordner erstellen " Module " den anklicken findest du das erste modul da drinne ( quasi auch ein Editorfenster rechts - nur eben frei und nicht an das TAb.Blatt gebunden )
Hier kannst du dann Makros reinschreiben und diese dann entspr. Schaltflächen in deinem
Tab.Blatt ( in Excel ) dann ebenfalls per Rechtsklcik - Makro zuweisen , dann zuweisen ...
In einem Modul sieht dass dann so aus
Sub Test_Einblenden()
...
... dein Code
.....
.....
End SSub
Anzeige

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige