Live-Forum - Die aktuellen Beiträge
Datum
Titel
03.10.2025 22:18:19
03.10.2025 18:57:58
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Einbau einer Loop Funktion in einer mehrfachen IF Funktion

Forumthread: Einbau einer Loop Funktion in einer mehrfachen IF Funktion

Einbau einer Loop Funktion in einer mehrfachen IF Funktion
29.08.2024 15:04:42
Existent
Wie genau kann ich hier einen Loop einbauen der Excel nicht direkt zum Crashen bringt?
Ich brauche eine durchgehende Überprüfung ob das X nun in den Zellen vorhanden ist oder nicht. Kann mir da irgendjemand helfen?
Ich danke im Voraus.
VG


Sub Makro1()

Sheets("Tabelle1").Activate

If Cells(6, 3).Value = "" And Cells(8, 3).Value = "" And Cells(10, 3).Value = "" Then
Rows("6:70").Hidden = False
End If

If ActiveSheet.Cells(6, 3).Value = "X" Then
Rows("7:10").Hidden = True
Rows("37:38").Hidden = True
Rows("56:57").Hidden = True
End If

If ActiveSheet.Cells(8, 3).Value = "X" Then
Rows("6:7").Hidden = True
Rows("9:10").Hidden = True
Rows("37:38").Hidden = True
Rows("56:57").Hidden = True
Rows("63").Hidden = True
End If

If ActiveSheet.Cells(10, 3).Value = "X" Then
Rows("6:9").Hidden = True
Rows("63").Hidden = True
End If

End Sub
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Einbau einer Loop Funktion in einer mehrfachen IF Funktion
29.08.2024 15:35:33
Yal
Moin,

eigentlich gar nicht: sowohl Eingang (C6, C8 und C10) als auch Ausgang (die Zeilen-Bereiche) sind diskret, spricht durch keine Regel verbunden (ausser 6 bis 10 in 2er Schritt), die eine Schleife ermöglicht oder sinnvoll macht.

Man könnte zwar es so gestalten:
Sub Makro1()

Dim Arr
Dim Reg(6 To 10)
Dim i, j

Sheets("Tabelle1").Activate

'default: alles sichtbar
Application.ScreenUpdating = False
Rows("6:70").Hidden = False
'Regeln
Arr = Array("6:7", "6:9", "7:10", "9:10", "37:38", "56:57", "63:63")
Reg(6) = Array(False, False, True, False, True, True, False)
Reg(8) = Array(True, False, False, True, True, True, True)
Reg(10) = Array(False, True, False, False, False, False, True)
'Handlung
For j = 6 To 10 Step 2
If ActiveSheet.Cells(j, 3).Value = "X" Then
For i = 1 To UBound(Arr)
If Reg(j)(i) Then Rows(Arr(i)).Hidden = True
Next
End If
Next
'Screen-updating wieder einschalten
Application.ScreenUpdating = False
End Sub


Aber ist es etwas besseres, als was Du schon hast? Wohl kaum, Lesbarkeit und Nachvollziehbarkeit sind sehr erschwert, nachträgliche Änderung schwierig.

VG
Yal
Anzeige
AW: Einbau einer Loop Funktion in einer mehrfachen IF Funktion
29.08.2024 15:47:08
Yal
so wurde es -normalerweise- auch funktionieren:

Sub Makro1()


Sheets("Tabelle1").Activate
Application.ScreenUpdating = False
Rows("6:70").Hidden = False

If Cells(6, 3).Value = "X" Then Range("7:10, 37:38, 56:57").EntireRow.Hidden = True
If Cells(8, 3).Value = "X" Then Range("6:7, 9:10, 37:38, 56:57, 63:63").EntireRow.Hidden = True
If Cells(10, 3).Value = "X" Then Range("6:9, 63:63").EntireRow.Hidden = True
Application.ScreenUpdating = True
End Sub


VG
Yal
Anzeige
AW: Einbau einer Loop Funktion in einer mehrfachen IF Funktion
29.08.2024 15:46:13
Marc
Du kannst mit

Do While Bedingung



Loop

arbeiten

dann hast du eine Schleife

hast du eine bestimmte Durchläufe kannst du mit

FOR i = 0 To MengeDurchläufe...

next i

arbeiten..

Aber bei den ganzen If sehe ich das Problem..
das hier auch mehrfach ein X vorkommen kann, was dann ?

Entweder schachtel n..

IF
Else If

Else If

(Else)

EndIf

oder du kannst auch mit Case Select arbeiten...

Anzeige
AW: Einbau einer Loop Funktion in einer mehrfachen IF Funktion
29.08.2024 16:20:31
daniel
Hi
wie kommt das "X" denn in die Zellen?
per Handeingabe oder per Formel?

hast du schon mal mit den Event-Makros experimentiert (Change-Event oder Calculate-Event)

diese "Crashen", wenn sie die Aktion ausführen, die sie selbst aufruft (also wenn das Change-Eventmakro einen Zellwert ändert), weil sich dann eine Endlosschleife an selbstaufrufen ergibt.
Die kann man mit dem Befehl Application.EnableEvents = False verhindern, weil danach keine Eventmakros mehr ausgeführt werden.
das müsste dann am Anfang eines solchen Codes stehen (spätestens, bevor die entsprechende Aktion ausgeführt wird)
allerdings muss man darauf achten, dass man die Events noch im Makro wieder aktiviert ( Application.EnableEvents = True) sonst bleiben sie aus.

Gruß Daniel
Anzeige
AW: Einbau einer Loop Funktion in einer mehrfachen IF Funktion
29.08.2024 17:43:32
GerdL
Moin
Sub Unit()


Dim reg(6 To 10) As String, i As Long

reg(6) = "7:10, 37:38, 56:57"
reg(8) = "6:7, 9:10, 37:38, 56:57, 63:63"
reg(10) = "6:9, 63:63"

Sheets("Tabelle1").Activate
Rows("6:70").Hidden = False

For i = LBound(reg) To UBound(reg) Step 2
If Cells(i, 3) = "X" Then
Range(reg(i)).EntireRow.Hidden = True
End If
Next

End Sub

Gruß Gerd
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige