Potrzebuję przekształcić dwa makra z Excela do Libre office 5.1.2.2
Pierwsza cześć makra odnosi się do ukrywania wierszy pustych w zakresie od wiersza 9 do 290. natomiast druga część makra ma za zadanie wykonywać działanie które polega na tym że jeżeli w zakresie komórek Q9:Q226 jest proces czyszczenia komórek które polega na np. mam jakieś dane w zakresie Q10:Q30 i zmienimy coś np w komórce Q10 wszystko od tej komórki w dół zostaje wyczyszczone. to samo działa na innych komórkach czyli coś zrobię w komórce Q20 wszystko jest czyszczone w dół do komórki q226.
Kod: Zaznacz cały
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect ("XXXXX")
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Dim hr As Range
Dim sr As Range
For i = 9 To 290
If Not IsError(Cells(i, "A")) Then
If Cells(i, "A").Value = "" Then
If hr Is Nothing Then
Set hr = Range("A" & i)
Else
Set hr = Union(Range("A" & i), hr)
End If
Else
If sr Is Nothing Then
Set sr = Range("A" & i)
Else
Set sr = Union(Range("A" & i), sr)
End If
End If
End If
Next
hr.EntireRow.Hidden = True
sr.EntireRow.Hidden = False
If Not Intersect(Target, Range("Q9:Q226")) Is Nothing And Target.Count = 1 Then
Application.EnableEvents = False
Range(Target.Offset(1, 0), "Q227").ClearContents
Application.EnableEvents = True
End If
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
ActiveSheet.Protect ("XXXX")
End Sub