Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
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

SUB aufteilen auf mehrere kleinere SUBs

SUB aufteilen auf mehrere kleinere SUBs
05.03.2024 11:02:11
pascaljeremyklaus
Moin , ich habe einen Code der zu lang für einen Sub ist. der code bländet Zeilen aus oder ein je nachdem Was man in einer Tabelle auswählt hat. ich hab den Code extra simpel gehalten ( Case "xxx" ; Range("XXX").EntireRow.Hidden = True ) damit er im Nachhinein auch leicht zu bearbeiten ist falls sich etwas an der auswahl ändern sollte. Wie Kann ich jetzt mein zulangen Code auf zwei oder mehrere Subs aufteilen so das alle Subs immer noch auf die gleiche auswahlTabelle(Datenüberprüfung) in A1 reagieren ?

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SUB aufteilen auf mehrere kleinere SUBs
05.03.2024 11:27:26
daniel
Hi
kann man prinzipiell machen.
allerdings weist das Problem "Sub zu klein" eher auf eine ungeschickte Programmierung hin und das Problem verschwindet, wenn die Programmiermethoden richtig verwendet werden.

beschreib mal, worum es geht und lade die Datei mit dem Code, den du bisher hast, hoch.
Gruß Daniel
AW: SUB aufteilen auf mehrere kleinere SUBs
05.03.2024 11:53:28
pascaljeremyklaus
https://www.herber.de/bbs/user/167551.xls

Ich Habe die meisten inhalte wegen Datensicherheit gelöscht. Der Code ist In Vba Tabelle 1 (auch sehr stark gekürzt ). das was dort ist widerholt sich aber sowieso nur sehr oft. Es ist Eine dokumeent um zu gucken wie weit bestimmte prüfungen sind. und das dokument soll sich je nach Prüfung ändern deshalb verstecke ich die Einzelnen zeilen oder blende sie wieder ein. Ich hätte noch alternativ die Idee dass jede einzelne Prüfung ein Modul bekommt und man mit der Datenüberprüfung zwiscchen den Modulen(prüfungen) wechselt.
Anzeige
AW: SUB aufteilen auf mehrere kleinere SUBs
05.03.2024 12:33:34
Onur
Private Sub Worksheet_Change(ByVal Target As Range)

Select Case Target.Value
Case "redpill":
bbb
Case "HV-BMW":
aaa
Case "HV-MBN":
aaa
Case "HV-VW":
bbb
End Select
End Sub

Sub aaa()

bbb
Rows("117:165").EntireRow.Hidden = True
Rows("301:480").EntireRow.Hidden = True
Range("Jackson").EntireRow.Hidden = True
Range("HV").EntireRow.Hidden = False
Range("Carter").EntireRow.Hidden = True
Range("Transim1").EntireRow.Hidden = False
Range("Tealc").EntireRow.Hidden = True
Range("Transim2").EntireRow.Hidden = False
Range("ONeill").EntireRow.Hidden = True
Range("Transim3").EntireRow.Hidden = False
Range("Hammond").EntireRow.Hidden = True
Range("Transim4").EntireRow.Hidden = False
Range("Quinn").EntireRow.Hidden = True
Range("Transim4b").EntireRow.Hidden = False
Range("Mitchell").EntireRow.Hidden = True
Range("Transim4c").EntireRow.Hidden = False
End Sub

Sub bbb()

Rows("10:650").EntireRow.Hidden = False
End Sub
Anzeige
AW: SUB aufteilen auf mehrere kleinere SUBs
05.03.2024 12:37:38
daniel
Hi
du solltest die Definition, was bei welchem Begriff ein- und ausgeblendet werden muss, nicht im Code direkt hinterlegen, sondern in einer Tabelle.
das könnte so in einem weiteren Tabellenblatt aussehen.
1. in Spalte A stehen die Begriffe, die auftauchen können, also jeder Wert, der nach einem Case steht ("redpill", "HV-BMW", "HV-MBN" usw) kommt in eine Zelle der Spalte A.
2. in die Spalte B schreibst du daneben in eine Zelle mit Komma getrennt die Namen und Adressen der Zellbereiche, die beim entsprechenden Text eingeblendet werden müssen
3. in die Spalte C schreibst du daneben in eine Zelle mit Komma getrennt die Namen und Adressen der Zellbereiche, die beim entsprechenden Text ausgeblendet werden müssen.

den Makrocode reduziert sich dann auf folgendes, es reichen diese paar Zeilen, egal wie viele Zellbereiche und ein- ausblende-Varianten es gibt.
das regelst du allein über die Definitionstabelle und da passen viele Daten rein.
Private Sub Worksheet_Change(ByVal Target As Range)
dim Zelle as range

set Zelle = Sheets("DeinDefintionsblatt").Columns(1).Find(what:=Target(1).Value, lookat:=xlwhole)
if not Zelle is Nothing then
if Zelle.Offset(0, 1).value > "" then Range(Zelle.Offset(0, 1).Value).entireRow.Hidden = false
if Zelle.Offset(0, 2).value > "" Then Range(Zelle.Offset(0, 2).Value).EntireRow.Hidden = True
end if


Gruß Daniel
Anzeige
AW: SUB aufteilen auf mehrere kleinere SUBs
05.03.2024 12:42:11
pascaljeremyklaus
Danke sehr Herr Daniel für die Hilfe. :D

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige