ID tematu: 64047
 |
Obróbka danych |
Autor |
Wiadomość |
cezaryfcb89
Starszy Forumowicz

Posty: 26
|
Wysłany: 05-02-2019, 19:05 Obróbka danych
|
|
|
Cześć,
chciałbym się dowiedzieć czy jest możliwość stworzenie makro które pobierało by dane z arkusza 1 do arkusza np: Dane. Może coś więcej w pierwszym arkuszu są dane wyeksportowane które chciałbym aby zostały obrobione jak w arkuszu dane. Mam pytanie czy jest takie makro które w sytuacji kiedy w kolumnie A3 jest Numer sprawy to kopiuje wybrane kolumny (B3, F3, D4, B5, D5, F5, B6, D6 do arkusza dane) tak jak w przykładzie. zaznaczam że numer sprawy jest zawrze co cztery wiersze. Takich Numerów spraw zawsze jest około 100 w danym arkuszu
Zeszyt1.xlsx
|
Pobierz Plik ściągnięto 4 raz(y) 10.21 KB |
|
|
 | ID posta:
362014
|
|
|
 |
|
|
|
BrunO
ExcelSpec


Pomógł: 119 razy Posty: 513
|
Wysłany: 05-02-2019, 19:25
|
|
|
Coś takiego mi wychodzi:
Kod: | Sub obrobka()
Dim wA As Long, wD As Long
Dim wsA As Worksheet, wsD As Worksheet
Set wsA = Sheets("Arkusz1")
Set wsD = Sheets("Dane")
wD = wsD.Cells(wsD.Rows.Count, "A").End(xlUp).Row + 1
For wA = 3 To wsA.Cells(wsA.Rows.Count, "A").End(xlUp).Row Step 4
wsD.Cells(wD, "A").Value = wsA.Cells(wA, "B").Value
wsD.Cells(wD, "B").Value = wsA.Cells(wA + 1, "B").Value
wsD.Cells(wD, "C").Value = wsA.Cells(wA, "F").Value
wsD.Cells(wD, "D").Value = wsA.Cells(wA + 3, "B").Value
wsD.Cells(wD, "E").Value = wsA.Cells(wA + 2, "F").Value
wsD.Cells(wD, "F").Value = wsA.Cells(wA + 1, "D").Value
wsD.Cells(wD, "G").Value = wsA.Cells(wA + 2, "D").Value
wsD.Cells(wD, "H").Value = wsA.Cells(wA, "F").Value
wD = wD + 1
Next wA
End Sub |
|
|
 | ID posta:
362015
|
|
|
 |
|
|
cezaryfcb89
Starszy Forumowicz

Posty: 26
|
Wysłany: 05-02-2019, 20:10
|
|
|
Dzięki działa mi tylko mam jeszcze pytanie czy czy da się to zmienić tak aby makro szukało w kolumnie A Numer sprawy i dopiero wtedy działało ponieważ zapomniałem napisać wcześniej że ja eksportuje dane z przelewów i w kolumnie poza tymi danymi są jeszcze np strona 1z10 i data itd a następnie dane przykładowe które zamieściłem wcześniej (i znowu strona 2z10 i dane które chciałbym aby makro pobierało itd do np 10z10) i chciałbym aby makro szukało najpierw numer sprawy a następnie kopiowało dane. Również dziękuje ponownie za wcześniejszą wersje
Zeszyt1b.xlsm
|
Pobierz Plik ściągnięto 6 raz(y) 16.16 KB |
|
|
 | ID posta:
362020
|
|
|
 |
|
|
BrunO
ExcelSpec


Pomógł: 119 razy Posty: 513
|
Wysłany: 05-02-2019, 21:08
|
|
|
No to mała przeróbka:
Kod: | Sub obrobka()
Dim wA As Long, wD As Long
Dim wsA As Worksheet, wsD As Worksheet
Set wsA = Sheets("Arkusz1")
Set wsD = Sheets("Dane")
wD = wsD.Cells(wsD.Rows.Count, "A").End(xlUp).Row + 1
For wA = 3 To wsA.Cells(wsA.Rows.Count, "A").End(xlUp).Row
If wsA.Cells(wA, "A").Value = "Numer sprawy" Then
wsD.Cells(wD, "A").Value = wsA.Cells(wA, "B").Value
wsD.Cells(wD, "B").Value = wsA.Cells(wA + 1, "B").Value
wsD.Cells(wD, "C").Value = wsA.Cells(wA, "F").Value
wsD.Cells(wD, "D").Value = wsA.Cells(wA + 3, "B").Value
wsD.Cells(wD, "E").Value = wsA.Cells(wA + 2, "F").Value
wsD.Cells(wD, "F").Value = wsA.Cells(wA + 1, "D").Value
wsD.Cells(wD, "G").Value = wsA.Cells(wA + 2, "D").Value
wsD.Cells(wD, "H").Value = wsA.Cells(wA, "F").Value
wD = wD + 1
End If
Next wA
End Sub |
Zeszyt1b.xlsm
|
Pobierz Plik ściągnięto 2 raz(y) 16.22 KB |
|
|
 | ID posta:
362024
|
|
|
 |
|
|
|
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
|
 |
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
|