Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 621 Skopiuj do schowka Sprawdż i skopiuj do kolejnego wiersza
Autor Wiadomość
jarekjarek 
Exceloholic


Pomógł: 1 raz
Posty: 113
Wysłany: 06-03-2007, 18:21   Sprawdż i skopiuj do kolejnego wiersza

Witam!

Koledzy experci proszę o makro które sprawdzi każde pole w arkuszu Dane w kolumnie H ale rozpoczynając od H8 do końca i jeżeli w której z komórek kolumny H poczynając od H8 wartość jest większa niż 4 minuty i 59 sekund to skopiuje wartości z arkusza dane z komórki w kolumnie H tej która jest większa od 4 minuty i 59 sekund i komórki w kolumnie B w tym samym wierszu do arkusza opracowane w komórki w kolumnach A i B ale automatycznie do kolejnego wiersza.

Jak z tego wynika dane bedą sie zmieniać w arkuszu dane i tylko jak wartość bedzie wieksza od 4 minuty i 59 sekund to skopiuje kazdą wartość spełniającą warunek do kolejnego wiersza w arkuszu opracowane
ID posta: 3308 Skopiuj do schowka
 
 
Trebor 
Excel Expert


Pomógł: 1752 razy
Posty: 4680
Wysłany: 06-03-2007, 19:09   

Tak na początek
Kod:

Sub szukaj()
Dim ostatnia As Long
Dim wiersz As Long
Dim gdzie As Long
gdzie = 1
With Sheets("Dane")
ostatnia = .Columns(8).Find(What:="*", After:=.Cells(8, 8), _
               SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
For wiersz = 8 To ostatnia
If .Cells(wiersz, 8) > 3.46064814814815E-03 Then
gdzie = gdzie + 1
Sheets("Opracowane").Cells(gdzie, 1) = .Cells(wiersz, 8)
Sheets("Opracowane").Cells(gdzie, 2) = .Cells(wiersz, 2)
End If
Next wiersz
End With
End Sub

Pewnie należy jeszcze to czy tamto dorobić, ale zerknij czy początek jest właściwy.
Pozdrawiam
_________________
Trebbor@wp.pl
ID posta: 3313 Skopiuj do schowka
 
 
jarekjarek 
Exceloholic


Pomógł: 1 raz
Posty: 113
Wysłany: 06-03-2007, 23:35   

Dziękuję sprawdzę jutro na swoim kompie nie mam Exdela tylko oppen office
ID posta: 3344 Skopiuj do schowka
 
 
Marian 
Starszy Forumowicz


Pomógł: 1 raz
Posty: 47
Wysłany: 07-03-2007, 10:48   

A jak zmienić tę linię
Kod:
Sheets("Opracowane").Cells(gdzie, 2) = .Cells(wiersz, 2)

aby kopiowało cały wiersz z arkusza dane?
ID posta: 3359 Skopiuj do schowka
 
 
Trebor 
Excel Expert


Pomógł: 1752 razy
Posty: 4680
Wysłany: 07-03-2007, 11:29   

Np. tak
Kod:

.Rows(wiersz).Copy Sheets("Opracowane").Cells(gdzie, 1)


Pozdrawiam
_________________
Trebbor@wp.pl
ID posta: 3362 Skopiuj do schowka
 
 
Marian 
Starszy Forumowicz


Pomógł: 1 raz
Posty: 47
Wysłany: 07-03-2007, 12:52   

Dzięki, ja tę linię próbowałem zmienić ale jak to niech pozostanie... niedopowiedziane.

Pozdrawiam
ID posta: 3369 Skopiuj do schowka
 
 
jarekjarek 
Exceloholic


Pomógł: 1 raz
Posty: 113
Wysłany: 07-03-2007, 17:49   

Witam działa to makro co mi napisałeś trochę je zmieniłem na swoje potrzeby
Kod:
Sub szukaj()
Dim ostatnia As Long
Dim wiersz As Long
Dim gdzie As Long
gdzie = 10
With Sheets("Dane")
ostatnia = .Columns(8).Find(What:="*", After:=.Cells(8, 8), _
               SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
For wiersz = 8 To ostatnia
If .Cells(wiersz, 8) > 3.46064814814815E-03 Then
gdzie = gdzie + 1
Sheets("Opracowane").Cells(gdzie, 1) = .Cells(wiersz, 1)
Sheets("Opracowane").Cells(gdzie, 2) = .Cells(wiersz, 2)
Sheets("Opracowane").Cells(gdzie, 3) = .Cells(wiersz, 3)
Sheets("Opracowane").Cells(gdzie, 4) = .Cells(wiersz, 4)
Sheets("Opracowane").Cells(gdzie, 5) = .Cells(wiersz, 8)
End If
Next wiersz
End With
End Sub


a powiedz mi jeszcze co zmienić aby rozpoczynał sprawdzanie nie w komórce H8 a w H12 i zakończył sprawdzanie w komórce H164
ID posta: 3383 Skopiuj do schowka
 
 
Trebor 
Excel Expert


Pomógł: 1752 razy
Posty: 4680
Wysłany: 07-03-2007, 17:59   

Usuń linię
Kod:

ostatnia = .Columns(8).Find(What:="*", After:=.Cells(8, 8), _
               SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row


jest zbędna.
Zmień następną linię na
Kod:


For wiersz = 12 To 164

Pozdrawiam
_________________
Trebbor@wp.pl
ID posta: 3384 Skopiuj do schowka
 
 
jarekjarek 
Exceloholic


Pomógł: 1 raz
Posty: 113
Wysłany: 09-03-2007, 00:42   

Dziękuję
ID posta: 3412 Skopiuj do schowka
 
 
francuz gt
[Usunięty]

Wysłany: 10-04-2007, 07:12   

Siemka Treborku!
Faktycznie
Kod:

ostatnia = .Columns(8).Find(What:="*", After:=.Cells(8, 8), _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
- ten kod można całkowicie usunąć, gdyż jest niepotrzebny.
A wracając do mojego pytania skierowanego do Ciebie osobiście to podejżewam, że trzeba dodać (tylko co i z jakimi dod. znakami) aby sprawdzał nie tylko z kolumny 8 ale i z 6 ?
Pozdróweczka
Grzegorz T
FRANCUZ-GT
ID posta: 4620 Skopiuj do schowka
 
 
Tajan


Pomógł: 5252 razy
Posty: 11450
Wysłany: 11-04-2007, 01:11   

Jeżeli chcesz sprawdzać tylko niektóre kolumny, to możesz to zrobić np takim kodem:
Kod:
For kol = 12 To 141
   Select Case kol
       Case 12 To 19, 74 To 80, 105 To 141
          For wiersz = 1 To 100
             If Cells(wiersz, kol) = "" Then
                Cells(wiersz, kol) = kol
             End If
          Next
   End Select
Next

który pozwoli Ci sprawdzić wiersze 1-100 w kolumnach 12 - 19; 74 - 80; 105 - 141.
Ale nie wiem, czy o to chodziło :-)
ID posta: 4658 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.wip.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe