Krzysiek K.

Krzysiek K. Tylko śniete ryby
płyna z
prądem...........:):
)

Temat: Ukrywanie/usuwanie wierszy zawierajacych w konkretnej...

Witam serdecznie,
Poszukuje makra, ktore bedzie w konkretnej kolumnie powiedzmy "D" wyszukiwało komorki o wartosciach np. > 1 a nastepnie ukrywało/usuwało wiersze cały wiersz spełniajacy ten warunek. Z gory bardzo dziekuj za pomoc i pozdrawiam
Grzegorz C.

Grzegorz C. Specjalista,
Uniwersytet Śląski

Temat: Ukrywanie/usuwanie wierszy zawierajacych w konkretnej...

Jeśli miałoby to być tylko ukrywanie danych wierszy to najszybciej zrobi to autofiltr


Sub AutoFltr()

Dim iLstCl%

iLstCl = Cells(1, Columns.Count).End(xlToLeft).Column

ActiveSheet.AutoFilterMode = False
ActiveSheet.Range(Cells(1, 1), Cells(1, iLstCl)).AutoFilter field:=4, Criteria1:="<=1"

End Sub


A jeśli musi to być usuwanie to np.:

Sub Hide_DeleteRows()

Dim lLstRw&
Dim i&

Application.ScreenUpdating = False

lLstRw = Cells(Rows.Count, 4).End(xlUp).Row
For i = lLstRw To 2 Step -1
If Cells(i, 4).Value > 1 Then
'usuwanie
Rows(i).EntireRow.Delete
'ukrywanie
'Rows(i).EntireRow.Hidden = True
End If
Next i

Application.ScreenUpdating = True

End Sub
Grzegorz C. edytował(a) ten post dnia 21.03.12 o godzinie 18:16
Krzysiek K.

Krzysiek K. Tylko śniete ryby
płyna z
prądem...........:):
)

Temat: Ukrywanie/usuwanie wierszy zawierajacych w konkretnej...

Bardzo dziekuj za pomoc-generalnie wszystko jest ok, ale mam jeszcze jedna prosbe czy da sie tak zrobic zeby w opisnaym przypadku-makro usuwało tylko i wyłacznie wiersze dla ktorych komorki w kolumnie "D" zawieraj tylko wartosci-pozstawialao wiersze w ktorych w konkretnych komorkach w kolumnie "D" jest tekst.
Dzieki raz jeszcze!
Grzegorz C.

Grzegorz C. Specjalista,
Uniwersytet Śląski

Temat: Ukrywanie/usuwanie wierszy zawierajacych w konkretnej...

Krzysiek K.:
Bardzo dziekuj za pomoc-generalnie wszystko jest ok, ale mam jeszcze jedna prosbe czy da sie tak zrobic zeby w opisnaym przypadku-makro usuwało tylko i wyłacznie wiersze dla ktorych komorki w kolumnie "D" zawieraj tylko wartosci-pozstawialao wiersze w ktorych w konkretnych komorkach w kolumnie "D" jest tekst.
Dzieki raz jeszcze!

Rozumiem, że warunek z pierwszego posta jest nadal aktualny, czyli usuwamy wiersze, w których występują tylko liczby większe od 1.

Zmień w kodzie linijke:
If Cells(i, 4).Value > 1 Then

na
If Cells(i, 4).Value > 1 And IsNumeric(Cells(i, 4).Value) Then
Krzysiek K.

Krzysiek K. Tylko śniete ryby
płyna z
prądem...........:):
)

Temat: Ukrywanie/usuwanie wierszy zawierajacych w konkretnej...

Super. O to mi chodziło. Bardzo dziekuje raz jeszcze.
Ireneusz Chełstowski

Ireneusz Chełstowski Production Manager,
Polish Bakery

Temat: Ukrywanie/usuwanie wierszy zawierajacych w konkretnej...

Witam i proszę o pomoc
Skorzystałem z powyższego kodu i super ukrywa wiersze =0
jednak ukrywa tylko w jednym arkuszu.

Proszę o pomoc jak zrobić aby ten kod przeszedł po wszystkich arkuszach skoroszytu?
Grzegorz C.

Grzegorz C. Specjalista,
Uniwersytet Śląski

Temat: Ukrywanie/usuwanie wierszy zawierajacych w konkretnej...

Trzeba zrobić pętlę po wszystkich arkuszach skoroszytu:
Sub Hide_DeleteRows()

Dim lLstRw&
Dim i&

Application.ScreenUpdating = False

For Each sh In ActiveWorkbook.Worksheets
With sh
lLstRw = .Cells(Rows.Count, 4).End(xlUp).Row
For i = lLstRw To 2 Step -1
If .Cells(i, 4).Value > 1 Then
'usuwanie
.Rows(i).EntireRow.Delete
'ukrywanie
'.Rows(i).EntireRow.Hidden = True
End If
Next i
Next
End With

Application.ScreenUpdating = True

End Sub
Ireneusz Chełstowski

Ireneusz Chełstowski Production Manager,
Polish Bakery

Temat: Ukrywanie/usuwanie wierszy zawierajacych w konkretnej...

Nie wiem dlaczego ale macro nie działa prawidłowo.
Jezeli uruchamiam macro w np 3 arkuszu to w tym arkuszu wszystko jest ok,
ale inne mają dokładnie takie same wiersze poukrywane a nie te, które mają wartość 0

Nie mam pojęcia dlaczego tak jest
Proszę o pomoc.

Sub Hide_DeleteRows()

Dim lLstRw&
Dim i&

Application.ScreenUpdating = False

For Each sh In ActiveWorkbook.Worksheets

With sh
lLstRw = .Cells(Rows.Count, 6).End(xlUp).Row
For i = lLstRw To 2 Step -1
If Cells(i, 1).Text <> "" Then
If Cells(i, 1).Value < 1 And IsNumeric(Cells(i, 1).Value) Then
'usuwanie
'.Rows(i).EntireRow.Delete
'ukrywanie
.Rows(i).EntireRow.Hidden = True
End If
End If
Next i
End With
Next sh

Application.ScreenUpdating = True

End Sub
Grzegorz C.

Grzegorz C. Specjalista,
Uniwersytet Śląski

Temat: Ukrywanie/usuwanie wierszy zawierajacych w konkretnej...

Powinno działać poprawnie:

Sub Hide_DeleteRows()

Dim lLstRw&
Dim i&

Application.ScreenUpdating = False

For Each sh In ActiveWorkbook.Worksheets

With sh
lLstRw = .Cells(Rows.Count, 6).End(xlUp).Row
For i = lLstRw To 2 Step -1
If .Cells(i, 1).Text <> "" Then
If .Cells(i, 1).Value < 1 And IsNumeric(.Cells(i, 1).Value) Then
'usuwanie
'.Rows(i).EntireRow.Delete
'ukrywanie
.Rows(i).EntireRow.Hidden = True
End If
End If
Next i
End With
Next sh

Application.ScreenUpdating = True

End Sub


Kilka małych kropek a ile potrafi namieszać ;)
Ireneusz Chełstowski

Ireneusz Chełstowski Production Manager,
Polish Bakery

Temat: Ukrywanie/usuwanie wierszy zawierajacych w konkretnej...

Wielkie dzięki Grześ,
wszystko działa prawidłowo.
Taka mała kropeczka a zabrała tyle czasu :)

Następna dyskusja:

usuwanie wierszy gdy dany t...




Wyślij zaproszenie do