vorab gehöre ich zu den unwissenden was VBA angeht, trotzdem versuche ich soweit es meine Hirnzellen zulassen mich damit auseinander zu setzen (Smile).
Habe ein Code gemacht, der mir ermöglicht Zeilen aus und einzublenden wenn in ein bestimmten Bereich der Spalte A ein Datum eingetragen wird.
Im Grunde genommen möchte ich das die Zeilen (40:1009) ausgeblendet sind und nur wenn die Datumseinträge in der Spalte A sich unten vermehren und denn ausgeblendeten Zeilen (beisp. 10 Zeilen) nahe kommen, diese sich einblenden, so das immer die selben anzahl von Zeilen eingeblendet bleiben , die anderen Zeilen (bis 1009) sollen ausgeblendet sein.Der Code läuft zwar, doch er macht das Arbeitsblatt sehr langsam aber sehr langsam. Bei jeden Datums Eintrag in Spalte A muss immer mehrere Sekunden gewartet werden, damit erschwert es mehrere Einträge zu machen. Hat jemand eine Idee wie ich diesen Code schneller machen kann, ohne große Warteschlange bei jeden Eintrag?
--------------------------------------------------
Sub HideUnhideprocedure()
ActiveWorkbook.ActiveSheet.Unprotect ("pass1234")
Dim c As Range
Dim counter1, counter2 As Integer
Range("A20:A1009").EntireRow.Hidden = False
counter1 = 20
counter2 = 19
For Each c In Range("A20:A1009")
If c.Value = "" Then
counter2 = counter2 + 1
'c.EntireRow.Hidden = True
Else
counter1 = counter1 + 1
counter2 = counter2 + 1
'c.EntireRow.Hidden = False
End If
Next c
If counter1 counter2 Then
Range("A" & counter1 + 15 & ":A" & counter2).EntireRow.Hidden = True
End If
ActiveWorkbook.ActiveSheet.Protect ("pass1234")
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveWorkbook.ActiveSheet.Unprotect ("pass1234")
Dim c As Range
Dim counter1, counter2 As Integer
Range("A20:A1009").EntireRow.Hidden = False
counter1 = 20
counter2 = 19
For Each c In Range("A20:A1009")
If c.Value = "" Then
counter2 = counter2 + 1
'c.EntireRow.Hidden = True
Else
counter1 = counter1 + 1
counter2 = counter2 + 1
'c.EntireRow.Hidden = False
End If
Next c
If counter1 counter2 Then
Range("A" & counter1 + 25 & ":A" & counter2).EntireRow.Hidden = True
End If
filter
ActiveWorkbook.ActiveSheet.Protect ("pass1234")
End Sub
-------------------------------------------------------------
Danke im Voraus für jede Hilfe.
Niko