Anzeige
Archiv - Navigation
1424to1428
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
VBA Private Worksheets Change zusammenfügen
26.05.2015 21:31:02
Hanna
Hallo zusammen,
ich bin gerade dabei, mich ein bisschen mit Makros auseinanderzusetzen.
Konkret geht es darum, dass ich eine Excel-Tabelle habe, die verschiedene Eingabe(Listen)felder hat, insgesamt 11 Stück.
Bei der Arbeit mit der Tabelle kann es vorkommen, dass nur das erste Eingabefeld genutzt wird, oder nur 5 und dann die restlichen Felder leer sind. Die leeren Felder sollen dann optimalerweise verschwinden, sobald ich in dem auf das letzte genutzte Eingabefeld Dropdown-Menü "fertig" ausgewählt habe.
In Zeile 54-56 befindet sich dann nochmal ein verbindliches Eingabefeld, das nicht verschwinden soll.
Folgenden Code habe ich mir durch Google etc. zusammengebastelt und er funktioniert auch für das Eingabefeld 1 (d.h., wenn das leer ist, verschwindet es + alle darauffolgenden):
Private Sub Worksheet_Change(ByVal Target As Range)
Dim varAusblend As Range
Dim varSchalter As Range
Set varAusblend = ActiveSheet.Rows("10:53")
Set varSchalter = ActiveSheet.Cells(10, 1)
If varSchalter.Value = "fertig" And varAusblend.Hidden = False Then
varAusblend.Hidden = True
Else
If varSchalter.Value  "fertig" And varAusblend.Hidden = True Then
varAusblend.Hidden = False
End If
End If
End Sub
Nun habe ich das gleiche aber auch für die nachfolgenden 10 Eingabefelder.
Also Rows 14-53, Cells 14, 1 / Rows 18-53, Cells 18, 1 usw. (immer in 4er Schritten bis 50 also).
Mehrere Worksheet Changes in einem Dokument lässt mich der VBA irgendwie nicht machen, das wäre wohl zu "einfach" gewesen :)
Nun also meine Frage: Wie kann ich die 11 Codes zusammenbringen, kann mir das jemand erklären?
Das wäre wunderbar!!
Vielen Dank und liebe Grüße,
Hanna

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Private Worksheets Change zusammenfügen
26.05.2015 22:04:23
Nepumuk
Hallo,
so?
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count = 1 Then
        If Target.Row >= 10 And Target.Row <= 50 Then
            If (Target.Row - 2) Mod 4 = 0 Then
                Range(Cells(Target.Row, 1), Cells(53, Columns.Count)).Hidden = Target.Value = "fertig"
            End If
        End If
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: VBA Private Worksheets Change zusammenfügen
26.05.2015 22:06:12
Nepumuk
Da fehlt noch eine Abfrage:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count = 1 Then
        If Target.Row >= 10 And Target.Row <= 50 Then
            If Target.Column = 1 Then
                If (Target.Row - 2) Mod 4 = 0 Then
                    Range(Cells(Target.Row, 1), Cells(53, Columns.Count)).Hidden = Target.Value = "fertig"
                End If
            End If
        End If
    End If
End Sub

Anzeige
AW: VBA Private Worksheets Change zusammenfügen
26.05.2015 22:10:38
Nepumuk
Und das mag Excel auch nicht.
Range(Cells(Target.Row, 1), Cells(53, Columns.Count)).Hidden = Target.Value = "fertig"
also dann so:
Range(Cells(Target.Row, 1), Cells(53, 1)).EntireRow.Hidden = (Target.Value = "fertig")

AW: VBA Private Worksheets Change zusammenfügen
26.05.2015 22:22:14
Hanna
Das klappt wunderbar.
Vielen, vielen lieben Dank für die riesen Hilfe!! Ich hätte wahrscheinlich Stunden davor gesessen und wäre nicht einmal ansatzweise auf dem richtigen Weg gewesen.
Freut mich wirklich sehr, danke :)

AW: VBA Private Worksheets Change zusammenfügen
28.05.2015 20:08:35
Hanna
Jetzt habe ich noch eine Frage.
Falls ich aus Versehen "fertig" ausgewählt habe und nun also die nachfolgenden Zeilen ausgeblendet werden, ich sie aber wieder haben will - kann ich da auch etwas programmieren?
Es geht zwar klar mit dem manuellen Zeilen wieder einblenden, allerdings ist die erstellte Excel für meine Mutter und für sie wäre es wohl einfacher, wenn sie einfach auf einen "zurück"-Button klicken könnte.. ;)
Einen Command Button habe ich schon erstellt, jetzt ist die Frage - was kommt nur zwischen
Private Sub CommandButton1_Click()
[also hier]
End Sub
?
1000 Dank!!

Anzeige
AW: VBA Private Worksheets Change zusammenfügen
28.05.2015 20:23:54
Nepumuk
Hallo,
einfach so:
Private Sub CommandButton1_Click()
    Rows.Hidden = False
End Sub

Gruß
Nepumuk

AW: VBA Private Worksheets Change zusammenfügen
28.05.2015 20:31:02
Hanna
Ach so einfach :)
Vielen Dank es funktioniert natürlich super!
Liebe Grüße,
Hanna
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige