napisał: crespiom postów: 43
umieszczony: 9 marca 2010 16:56
|
|
Sory,
Zapomniałem, że mają się wklejać tylko wartości
Dim i As Long
With Worksheets("Arkusz1")
i = 1
Do While .Cells(i, 1) <> ""
If .Cells(i, 1).Value = "Warszawa" And .Cells(i, 3).Value < 100 Then
Union(.Cells(i, 1), .Cells(i, 3), .Cells(i, 5)).Select 'wybranie określonych komórek z wiersza
Selection.Copy
Worksheets("Arkusz2").Select
Worksheets("Arkusz2").Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues
End If
i = i + 1
Loop
End With |
|
napisał: crespiom postów: 43
umieszczony: 9 marca 2010 16:26
|
|
To zrób tak
Poniższy kod kopiuje wybrane komórki z wiersza w Arkuszu1 jeżeli w tym wierszu w kolumnie pierwszej jest tekst "Warszawa" a kolumnie trzeciej jest liczba mniejsza niż 100.
Dim i As Long
With Worksheets("Arkusz1")
i = 1
Do While .Cells(i, 1) <> ""
If .Cells(i, 1).Value = "Warszawa" And .Cells(i, 3).Value < 100 Then
Union(.Cells(i, 1), .Cells(i, 3), .Cells(i, 5)).Select 'wybranie określonych komórek z wiersza
Selection.Copy Destination:=Worksheets("Arkusz2").Range("A65536").End(xlUp).Offset(1, 0)
End If
i = i + 1
Loop
End With
I powinno śmigać
Pozdrawiam |
|
napisał: tomekkepa postów: 12
umieszczony: 4 marca 2010 16:55
|
|
poradziłem sobie w ten sposób:
Dim i As Long
i = 21
Do While Worksheets("PREZZI").Cells(i, 5) <> ""
If Worksheets("PREZZI").Cells(i, 1).Value = "Polonia" Then
If Worksheets("PREZZI").Cells(i, 21).Value = "zip & mail" Then
Worksheets("PREZZI").Rows(i).Copy Destination:=Worksheets("POLONIA").Range("A65536").End(xlUp).Offset(1, 0)
End If
End If
i = i + 1
Loop
Teraz tylko kwestia zeby zamiast calego wiersza kopiowal kilka komorek i wklejal wartosci zamiast formul. |
|
napisał: tomekkepa postów: 12
umieszczony: 4 marca 2010 16:47
|
|
Cytat:Coś takiego powinno ruszyć
Sub Copy_Deals()
Dim i As Long
i = 1
Do While Worksheets("Arkusz1").Cells(i, 1) <> ""
If Worksheets("Arkusz1").Cells(i, 1).Value = "Warszawa" And .... (tu wstaw jeszcze 2 warunek) Then
Worksheets("Arkusz1").Rows(i).Copy Destination:=Worksheets("Arkusz2").Range("A65536").End(xlUp).Offset(1, 0)
End If
i = i + 1
Loop
End Sub
Zadziałało na jednym warunku,
ale gdy drugi wstawiłem: And Worksheets("Arkusz1").Cells(i, 20).Value = "zmiana"
lub: And Cells(i, 20).Value = "zmiana"
To już nie.
Może źle warunek wpisuje? |
|
napisał: tomekkepa postów: 12
umieszczony: 4 marca 2010 16:03
|
|
Działa idealnie, a jak zrobić żeby zamiast całego wiersza kopiował tylko np. 3 kolumny oraz żeby wklejał wartości a nie np. formuły? |
|
napisał: crespiom postów: 43
umieszczony: 4 marca 2010 14:02
|
|
Coś takiego powinno ruszyć
Sub Copy_Deals()
Dim i As Long
i = 1
Do While Worksheets("Arkusz1").Cells(i, 1) <> ""
If Worksheets("Arkusz1").Cells(i, 1).Value = "Warszawa" And .... (tu wstaw jeszcze 2 warunek) Then
Worksheets("Arkusz1").Rows(i).Copy Destination:=Worksheets("Arkusz2").Range("A65536").End(xlUp).Offset(1, 0)
End If
i = i + 1
Loop
End Sub |
|
napisał: tomekkepa postów: 12
umieszczony: 3 marca 2010 21:53
|
|
Nie do końca coś takiego mi pasuje, już takie rozwiązanie gdzieś widziałem, może jest coś co działa na zasadzie "if miasto and status then ...." i to powtarzać aż do ostatniego wiersza (pustego)? |
|
napisał: Rycho postów: 291
umieszczony: 3 marca 2010 15:23
|
|
Witaj,
dla danych ustawiłem odpowiednio autofiltr i zarejestrowałem makro podczas wykonywania koniecznych operacji. Po uporządkowaniu makra (praktycznie poprzez usunięcie par select selection), kod wygląda tak:
Sub Makro1()
Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
Sheets.Add
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
End Sub
czyli
-wybierz komórkę A1, wybierz region zawierający tę komórkę, wybierz tylko widoczne wiersze i kopiuj,
-wstaw nowy arkusz (będzie on automatycznie aktywny),
-wstaw dane ze schowka do nowego arkusza,
-aktywuj komórkę A1 bo aktywne są wszystkie wstawione dane,
-skasuj zaznaczenie kopiowanych komórek (obramowanie z wędrujących mrówek). |
|
napisał: tomekkepa postów: 12
umieszczony: 3 marca 2010 12:57
|
|
Witam.
Mam tabelę, załóżmy 20 kolumn, 500 wierszy.
Po wypełnieniu danych, w pierwszej kolumnie jest miasto, dalej jakieś liczby, a w ostatniej kolumnie pojawia się status WYŚLIJ, OK lub inny.
Chciałbym skopiować wszystkie wiersze do nowego zeszytu, które spełniają warunek: miasto = "Warszawa", status = "WYŚLIJ".
Z góry dziękuje za pomoc. |
|
 wstecz 1 dalej  wszystkich stron: 1
|
|