Hallo,
Ik ben al een tijdje aan het stoeien met een macro om het volgende voor elkaar te krijgen:
Als ik uit een lijst met namen een geselecteerde naam verwijder (bijv A1:A10 waaruit ik de waarde van A2 verwijder) dan wil ik en macro hebben die in een bepaald deel van de worksheet (bijv A12:C25) de rijen en kolommen verwijdert waar deze waarde in voor komt. Nou lukt me dat wel met een 'hard' opgegeven waarde in de macro (bijv de waarde "Jantje") maar ik wil het juist een stapje flexibeler hebben en een verwijzing naar de waarde van de cel A2.
Ik heb iets dergelijks geprobeerd maar zit nu even vast:
Sub Example1()
Dim Firstrow As Long
Dim Lastrow As Long
Dim Lrow As Long
Dim CalcMode As Long
With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
Firstrow = ActiveSheet.UsedRange.Cells(1).Row
Lastrow = ActiveSheet.UsedRange.Rows.Count + Firstrow - 1
With ActiveSheet
.DisplayPageBreaks = False
For Lrow = Lastrow To Firstrow Step -1
If Application.WorksheetFunction.CountIf(.Rows(Lrow), "1") = 0 _
Then .Rows(Lrow).Delete
Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With
End Sub
Iemand suggesties?
Ik ben al een tijdje aan het stoeien met een macro om het volgende voor elkaar te krijgen:
Als ik uit een lijst met namen een geselecteerde naam verwijder (bijv A1:A10 waaruit ik de waarde van A2 verwijder) dan wil ik en macro hebben die in een bepaald deel van de worksheet (bijv A12:C25) de rijen en kolommen verwijdert waar deze waarde in voor komt. Nou lukt me dat wel met een 'hard' opgegeven waarde in de macro (bijv de waarde "Jantje") maar ik wil het juist een stapje flexibeler hebben en een verwijzing naar de waarde van de cel A2.
Ik heb iets dergelijks geprobeerd maar zit nu even vast:
Sub Example1()
Dim Firstrow As Long
Dim Lastrow As Long
Dim Lrow As Long
Dim CalcMode As Long
With Application
CalcMode = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
Firstrow = ActiveSheet.UsedRange.Cells(1).Row
Lastrow = ActiveSheet.UsedRange.Rows.Count + Firstrow - 1
With ActiveSheet
.DisplayPageBreaks = False
For Lrow = Lastrow To Firstrow Step -1
If Application.WorksheetFunction.CountIf(.Rows(Lrow), "1") = 0 _
Then .Rows(Lrow).Delete
Next
End With
With Application
.ScreenUpdating = True
.Calculation = CalcMode
End With
End Sub
Iemand suggesties?