Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
852to856
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
852to856
852to856
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Variable mit nicht zusammenhängendem Bereich

Variable mit nicht zusammenhängendem Bereich
14.03.2007 16:43:00
Andrew
Hallo zusammen,
kann man bei der Definition einer Variable x es erreichen, dass sie nicht nur von 5 bis 9 sondern auch von 11 bis 15 usw läuft?
Das man also in etwa so formluiert:
For x = 5 To 9 And 11 To 15 And 22 To 25
Das ganze Makro lautet wie folgt:

Sub ausblenden3()
Dim S, x
For S = 8 To 22
If Cells(2, S)  "x" And Cells(2, S)  "X" Then Columns(S).Hidden = True
Next S
ActiveSheet.Calculate
For x = 5 To 9
For S = 8 To 22
If Cells(3, S)  "y" And Cells(3, S)  "Y" Then
Cells(x, S).Interior.ColorIndex = xlNone: Cells(x, S).Locked = True
Else
Cells(x, S).Interior.ColorIndex = 4: Cells(x, S).Locked = False
End If
Next S
Next x
Range("F3").Select
End Sub
Insgesamt hätte ich 17 Bereiche in einem Tabellenblatt. Da wäre es super, wenn man das irgendwie anpassen könnte.
Hier zur Info die Datei, aus das Makro stammt:
https://www.herber.de/bbs/user/41093.xls
Für eure Hilfe wäre ich sehr dankbar.
Viele Grüße
Andrew

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable mit nicht zusammenhängendem Bereich
14.03.2007 17:18:37
Rudi
Hallo,

Sub ausblenden3()
Dim S, x, i As Integer
Dim arrStart, arrEnde
arrStart = Array(5, 11, 22)
arrEnde = Array(9, 15, 25)
If UBound(arrStart)  UBound(arrEnde) Then
MsgBox "Fehler in der Bereichsdefinition!"
Exit Sub
End If
For S = 8 To 22
If Cells(2, S)  "x" And Cells(2, S)  "X" Then Columns(S).Hidden = True
Next S
ActiveSheet.Calculate
For i = 0 To UBound(arrStart)
For x = arrStart(i) To arrEnde(i)
For S = 8 To 22
If LCase(Cells(3, S))  "y" Then
Cells(x, S).Interior.ColorIndex = xlNone: Cells(x, S).Locked = True
Else
Cells(x, S).Interior.ColorIndex = 4: Cells(x, S).Locked = False
End If
Next S
Next x
Next i
Range("F3").Select
End Sub

Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe
Anzeige
Spitzenmäßig, vielen Dank!!!
14.03.2007 17:32:58
Andrew
Hallo Rudi,
das funktioniert super, vielen vielen Dank.
Viele Grüße
Andrew

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige