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

Code vereinfachen?

Code vereinfachen?
16.09.2013 10:19:42
Tom
Hallo,
habe folgenden Code aus verschiedenen Quellen zusammen gebastelt.
Kann man diesen irgendwie vereinfachen, damit das ganze auch schneller abläuft.
Gruß Tom
Sub CheckBox7_Click()
For Each zelle In Range("AA1:AA5000").Cells
If ActiveSheet.CheckBox7 = True Then
If zelle.Value = "Sprachreserve 7" Then
zelle.EntireRow.Hidden = False
Else
End If
Else
End If
If ActiveSheet.CheckBox7 = False Then
If zelle.Value = "Sprachreserve 7" Then
zelle.EntireRow.Hidden = True
Else
End If
Else
End If
Next
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code vereinfachen?
16.09.2013 10:25:07
Hajo_Zi
For Each zelle In Range("AA1:AA5000").Cells
If zelle.Value = "Sprachreserve 7" Then
zelle.EntireRow.Hidden = not ActiveSheet.CheckBox7
End If
End If
Next

das ist zwar einfacher,...
16.09.2013 10:34:19
Rudi
Hallo,
... aber mitnichten schneller.
damit das ganze auch schneller abläuft.
Gruß
Rudi

AW: Code vereinfachen?
16.09.2013 10:30:48
Rudi
Halo,
Sub CheckBox7_Click()
Dim rHide As Range, Zelle As Range
For Each Zelle In Range("AA1:AA5000").Cells
If CheckBox7 = False And Zelle.Value = "Sprachreserve 7" Then
If rHide Is Nothing Then
Set rHide = Zelle
Else
Set rHide = Union(rHide, Zelle)
End If
End If
Next
Rows.Hidden = False
If Not rHide Is Nothing Then rHide.EntireRow.Hidden = True
End Sub

Gruß
Rudi

Anzeige
AW: Code vereinfachen?
16.09.2013 10:43:07
Tom
Super. Danke euch.
Gruß Tom

AW: Code vereinfachen?
16.09.2013 11:14:16
Tom
Hi,
folgende Feinheit noch.
Checkbox 1-7 sind jeweils eine Sprache.
Wenn ich nun mehrere Sprachen ausblenden möchte werden die jeweils anderen Sprachen wieder aktiviert.
wie kann ich das am besten unterbinden?

AW: Code vereinfachen?
16.09.2013 11:37:13
Tom
Frage noch offen, hab ich vergessen anzuklicken. :-)

AW: Code vereinfachen?
16.09.2013 11:54:54
Hajo_Zi
du hast bestimmt keine Datei verlinkt, da Du den Code selber an Deine Bedingungen anpassen möchtest. Viel Erfolg.
Option Explicit
Sub CheckBox7_Click()
Dim rHide As Range, Zelle As Range
For Each Zelle In Range("AA1:AA5000").Cells
If CheckBox7 = False And Zelle.Value = CheckBox7.Caption Then
If rHide Is Nothing Then
Set rHide = Zelle
Else
Set rHide = Union(rHide, Zelle)
End If
End If
If Zelle.EntireRow.Hidden = True And Zelle.Value  CheckBox7.Caption Then
If rHide Is Nothing Then
Set rHide = Zelle
Else
Set rHide = Union(rHide, Zelle)
End If
End If
Next
Rows.Hidden = False
If Not rHide Is Nothing Then rHide.EntireRow.Hidden = True
End Sub
Gruß Hajo

Anzeige
Autofilter, statt Checkbox & Code wäre...
16.09.2013 12:10:54
EtoPHG
wohl wesentlich einfacher Tom,
Und wenn schon, sind das keine 'kleine Verfeinerungen', sondern grundsätzlich andere Anforderungen!
Wenn mit Checkboxen, dann in Kombi mit Autofilter, denn dass ist 100x schneller als alle Ansätze via jede einzelne Zeile, bzw. Arrays.
Also Vorschlag:
Private Sub CheckBox1_Click()
MakeFilter
End Sub
'...für jede Checkbox bis Ende wiederhole¨n!
Private Sub CheckBox7_Click()
MakeFilter
End Sub
Sub MakeFilter()
Dim strAuswahl As String, arrFilter
If CheckBox1 Then strAuswahl = "Sprachreserve 1,"
If CheckBox2 Then strAuswahl = strAuswahl & "Sprachreserve 2,"
If CheckBox3 Then strAuswahl = strAuswahl & "Sprachreserve 3,"
If CheckBox4 Then strAuswahl = strAuswahl & "Sprachreserve 4,"
If CheckBox5 Then strAuswahl = strAuswahl & "Sprachreserve 5,"
If CheckBox6 Then strAuswahl = strAuswahl & "Sprachreserve 6,"
If CheckBox7 Then strAuswahl = strAuswahl & "Sprachreserve 7,"
With ActiveSheet
If Len(strAuswahl) > 0 Then
strAuswahl = Left(strAuswahl, Len(strAuswahl) - 1)
arrFilter = Split(strAuswahl, ",")
If Not .FilterMode Then .Range("AA1").AutoFilter
.Range("$AA$1:$AA$5000").AutoFilter Field:=1, Criteria1:= _
arrFilter, Operator:=xlFilterValues
Else
If .FilterMode Then .Range("AA1").AutoFilter
End If
End With
End Sub
Gruess Hansueli
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige