witam
Próbuje napisać mały programik jednak cały czas mam jakieś błędy, a na niektóre rozwiązania brak mi pomysłów. To mój pierwszy program, dotychczasowe wypociny opieram na tym co wyczytałem w internecie.
Chciałbym stworzyć makro w Excelu, miałby to być wykaz uwzględniający wszystkie informacje z pozostałych zakładek (które edytowane są ręcznie).
Chciałbym aby nowa zakładka "wykaz" była w formie tabelki, gdzie po kliknięcie w określony nagłówek kolumny następowałoby sortowanie wszystkich wierszy względem wybranej kolumny (względem "nazwiska", "daty zlecenia", "daty realizacji" i "statusu zlecenia" patrz plik zamieszczony do postu.)
- Działanie programu musiałoby się rozpoczynać od skopiowania wszystkich WYPISANYCH wierszy z zakładek (gdy kolejny wiersz będzie pusty przejście do następnej zakładki).
tzn. domyślam sie ze musiałoby to być jakaś pętelka która działała by w opisany poniżej sposob:
1. jeżeli w komórce pierwszego wiersza pierwszej zakładki (dajmy na to warunek ze liczba porządkowa jest większą od 0) jest cokolwiek wpisane, cały wiersz zostaje kopiowany do wykazu + do pierwszej kolumny wykazu kopiowana byłaby nazwa zakładki z której skopiowano wiersz
2. jezeli kolejny wiersz jest pusty nastepuje przejście do kolejnej zakładki i kolejne kopiowanie wierszy i tak w kółko aż do skopiowania wszystkiego z wszystkich zakładek.
przydałaby się jeszcze jakieś przyciski sortowania, i wyboru miesiąca "zlecenia zadania" jaki ma być wyświetlony w wykazie
Oto moje dotychczasowe wypociny:
Public a As Integer; zmienna - liczba porządkowa na zakładce "wykaz"
Dim b As Integer; zmienna - liczba porządkowa na zakładkach z nazwiskami
Do While Sheets("nazwisko1").Cells(b+1, 1) > 0
Cells(b+1, 2).selct
Selection.Copy
Cells(a+1, 2).Select
Selection.Paste
itd kopiowanie komórek tego wiersza
a = a + 1
b = b + 1
Loop
(w tym momencie zmienna "b" powinna być zresetowana, zmienna "a" dalej naliczana)
Do While Sheets("nazwisko2").Cells(b+1, 1) > 0
Cells(b+1, 2).selct
Selection.Copy
Cells(a+1, 2).Select
Selection.Paste
itd kopiowanie komórek tego wiersza
a = a + 1
b = b + 1
Loop
itd dla kolejnej zakładki
Do postu załączam przykładowy plik Excela który obrazuje mój problem, dziękuje wszystkim za czas poświęcony na przeczytanie postu, za wszelkie porady będę wdzięczny.
Pozdrawiam
Próbuje napisać mały programik jednak cały czas mam jakieś błędy, a na niektóre rozwiązania brak mi pomysłów. To mój pierwszy program, dotychczasowe wypociny opieram na tym co wyczytałem w internecie.
Chciałbym stworzyć makro w Excelu, miałby to być wykaz uwzględniający wszystkie informacje z pozostałych zakładek (które edytowane są ręcznie).
Chciałbym aby nowa zakładka "wykaz" była w formie tabelki, gdzie po kliknięcie w określony nagłówek kolumny następowałoby sortowanie wszystkich wierszy względem wybranej kolumny (względem "nazwiska", "daty zlecenia", "daty realizacji" i "statusu zlecenia" patrz plik zamieszczony do postu.)
- Działanie programu musiałoby się rozpoczynać od skopiowania wszystkich WYPISANYCH wierszy z zakładek (gdy kolejny wiersz będzie pusty przejście do następnej zakładki).
tzn. domyślam sie ze musiałoby to być jakaś pętelka która działała by w opisany poniżej sposob:
1. jeżeli w komórce pierwszego wiersza pierwszej zakładki (dajmy na to warunek ze liczba porządkowa jest większą od 0) jest cokolwiek wpisane, cały wiersz zostaje kopiowany do wykazu + do pierwszej kolumny wykazu kopiowana byłaby nazwa zakładki z której skopiowano wiersz
2. jezeli kolejny wiersz jest pusty nastepuje przejście do kolejnej zakładki i kolejne kopiowanie wierszy i tak w kółko aż do skopiowania wszystkiego z wszystkich zakładek.
przydałaby się jeszcze jakieś przyciski sortowania, i wyboru miesiąca "zlecenia zadania" jaki ma być wyświetlony w wykazie
Oto moje dotychczasowe wypociny:
Public a As Integer; zmienna - liczba porządkowa na zakładce "wykaz"
Dim b As Integer; zmienna - liczba porządkowa na zakładkach z nazwiskami
Do While Sheets("nazwisko1").Cells(b+1, 1) > 0
Cells(b+1, 2).selct
Selection.Copy
Cells(a+1, 2).Select
Selection.Paste
itd kopiowanie komórek tego wiersza
a = a + 1
b = b + 1
Loop
(w tym momencie zmienna "b" powinna być zresetowana, zmienna "a" dalej naliczana)
Do While Sheets("nazwisko2").Cells(b+1, 1) > 0
Cells(b+1, 2).selct
Selection.Copy
Cells(a+1, 2).Select
Selection.Paste
itd kopiowanie komórek tego wiersza
a = a + 1
b = b + 1
Loop
itd dla kolejnej zakładki
Do postu załączam przykładowy plik Excela który obrazuje mój problem, dziękuje wszystkim za czas poświęcony na przeczytanie postu, za wszelkie porady będę wdzięczny.
Pozdrawiam