Elektroda.pl
Elektroda.pl
X
Szkolenia elektronika Udemy
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Makro w excelu. Dlaczego suma nie zostaje obliczona?

Facetjanusz 11 Sty 2011 12:06 11788 66
  • #1 11 Sty 2011 12:06
    Facetjanusz
    Poziom 15  

    Witam ponownie
    Wczoraj było dosyć późno - postaram się pokrótce opisać swoje problemy i oczekiwania dotyczące tego programiku. Mimo ,że zrobiłem już kilka programów do prowadzenia Wspólnoty Mieszkaniowej (sam prezesuję) to jednak bez użycia Makra - (w tym jestem zielony). Dostałem od kolegi programik o innym zastosowaniu i próbuję (z minimalnym skutkiem zaadoptować do moich potrzeb.
    O co tu chodzi ?
    A więc w arkusz WPIS mogę wklepać dany wiersz - ale ponieważ większość nazw powtarza się , przyciskiem przechodzę do wprowadzenia danych, przy czym w wyszczególnieniu wybieram wpisaną wcześniej operację ( Uwaga za wyjątkiem pozycji pierwszej ) wpisuję sumę ogólną. Jest OK.
    Jeżeli nie ma jeszcze wpisanej operacji chcę aby można było ją dodać do listy automatycznie (wpisując ją przed wybraniem). Jak widać zostaje to przeniesione do arkusza wpis. Jest Ok.
    Jeżeli Mam wpłatę "Za urządzenie i montaż" muszę wcześniej w arkuszu Dane wprowadzić wielkości w pozycję Dane Wpłata - dla jednego klienta może być kilka pozycji (jak na przykładzie) Uwaga - każdej pozycji odpowiada wcześniej wpisana cena montażu - dla wpisywanej pozycji muszę tą cenę skopiować do kolumny Koszt montażu - robię to w ten sposób, że ustawiam kursor na w kolumnie K w danym wierszu i kopiuję Ctrl + R . W wierszu 14 otrzymuję sumy dla jednego klienta.
    Następnie przechodzę do arkusza WPIS i przyciskiem "Sprzedaż " wypełniam UserForm (nie wiem jak to nazwać) a w "Wyszczególnieniu wybieram pozycję pierwszą - wszystko zostaje przekopiowane do arkusza Wpis. Jest OK.
    W E16 i F16 nie wiem dlaczego nie zostaje obliczona suma !???
    c.d.

    [ Dodano: 2011-01-11, 11:22 ]
    Moje oczekiwania od programu.
    Zacznę od użyciu przycisku - po wybraniu pierwszej pozycji w "Wyszczególnienie" - przechodzimy na arkusz Dane i po wpisaniu danych wielkości w kolumnę I pojawiły się w kolumnie K - odpowiadające wielkości z kolumny J , a jednocześnie w kolumnie L wpisane zostały wartości wstawione uprzednio w kolumnę I i tam pozostały.
    Po zakończeniu wpisywania dla danego klienta (jakimś przyciskiem ) sumy z wiersza 14 (jak poprzednio) znajdą się w arkuszu Wpis i tam się przenosimy ! ufffff.
    Uwaga - Jednocześnie następuje skasowanie wszystkich wartości w kolumnach I oraz K - w celu przygotowania do następnego wpisu. W kolumnie L wartości powinny pozostawać !
    Przypominam o sumowaniu w arkuszu WPIS w wierszu !.
    Czy jest to możliwe do wykonania - ew. w prostszy sposób osiągnąć podobne założenia !
    Liczę na pomoc w rozwiązaniu tej łamigłówki .
    Pozdrawiam Janek.

    Z Capslockiem i tytułem oraz interpunkcją też masz.... problem - pkt 10.9, 11, 11.1 i 15 Regulaminu. [M]

    0 29
  • Szkolenia elektronika Udemy
  • Pomocny post
    #2 11 Sty 2011 13:23
    walek33
    Poziom 28  

    Nie chcę być upierdliwy. Opis piękny zakrawający na wieszcza, ale widocznie moja inteligencja jest bardziej techniczno-praktyczna i bez przykładowego arkusza nie zadziała. Jeśli więc mogę coś zasugerować to przydałby się jakiś plik (bez tajnych danych oczywiście) z dopasowanymi do niego założeniami (wtedy odwołania W1K1 będą bardziej przyswajalne). Naprawdę będzie łatwiej o pomoc.

    0
  • #3 11 Sty 2011 14:55
    Facetjanusz
    Poziom 15  

    Ha !
    dzięki za podjęcie tematu - ale jest pewne ale.
    Mianowicie aby prześledzić temat chciałem wysłać plik z arkuszami excela - niestety nie przyjmie!!.
    A bez sprawdzenia i prześledzenia tematu - a co najważniejsze napisania MAKRO - raczej nic z tego nie będzie !?
    Plik jako obrazek nie wiele da Ci ?
    .. Chyba , że jest jakiś inny sposób ???
    Pozdrawiam Janusz

    Dodano po 4 [minuty]:

    Makro w excelu. Dlaczego suma nie zostaje obliczona?

    Dodano po 1 [minuty]:

    To jest arkusz Wpis

    Dodano po 1 [minuty]:

    A to będzie arkusz Dane

    0
  • Szkolenia elektronika Udemy
  • Pomocny post
    #4 11 Sty 2011 16:37
    jankolo
    VIP Zasłużony dla elektroda

    Facetjanusz, byłeś o coś proszony.

    0
  • Pomocny post
    #5 11 Sty 2011 17:37
    tzok
    Moderator Samochody

    Pliki .xsl można dodawać, .xslx - niestety nie, ale wystarczy spakować np. ZIPem i już się będzie dało.

    Twój opis jest na tyle zawiły, że sądzę, iż lepiej nadawałby się do jego realizacji MS Access... tak czy inaczej spróbuj opisać co chcesz osiągnąć bardziej ogólnie, na wyższym poziomie abstrakcji - nie na poziomie komórek, wierszy i kolumn tylko funkcjonalności.

    0
  • Pomocny post
    #6 11 Sty 2011 18:44
    marek003
    Poziom 40  

    Po pół godzinie wczytywania się załapałem (chyba) o co chodzi.
    Po pierwsze czy aby na pewno nie będzie interesowało cię za co klient zapłacił? Bo czyszczenie danych i przygotowywanie do kolejnego "wpisu" zlikwiduje szczegóły (składowe) danej wpłaty.
    Druga rzecz związana z brakiem sumowania.
    Może jest błędna formuła (nie uwzględnia wszystkich komórek) ale wydaje mi się że błąd jest w przeniesieniu danych przez makro (jeżeli dobrze widzę że w wartości w danym wierszu jest "." zamiast "," )
    Najprawdopodobniej dane liczbowe przechodzą do textbox'a w userform a stamtąd już jako "Value" przechodzą do kolumny E i są traktowane jako tekst więc suma tekstu to 0,00
    Trzeba by było zmienić system przenoszenia danych (to bym proponował) lub wprowadzić konwersję z tekstu na liczbę.

    Ja proponuję coś bez makra.
    Oczywiście drukuje się tylko raport
    Po wprowadzeniu odpowiednich danych w tabeli WPŁATY pojawią się "odpowiednie" dane w raporcie.
    Arkusz jest chroniony (dla zasady) bez hasła.
    Można też go zmodyfikować bo nie wiadomo do czego to docelowo ma służyć i z jakich danych ma korzystać (patrząc na wartość narastająco i Saldo).

    Zaznaczam że mogłem czegoś z pierwszego postu nie zrozumieć.

    Teraz pomyślałem że jeżeli to ma być na parę miesięcy więc zmiana cen za montaż może wpływać na inne miesiące. Trzeba by było inne rozwiązanie (ceny w arkuszu miesięcznym ktOrego dotyczy raport lub rzeczywiście makro wpisujące na stałe wartości).

    0
  • #7 14 Sty 2011 16:51
    Facetjanusz
    Poziom 15  

    Pytanie do Jankolo - proszę wyjaśnić o co chodzi ??
    Pozdro

    Dodano po 4 [minuty]:

    Witam
    Marku - ale nie o to chodzi (bez makra) - chcę to usprawnić aby automatycznie to działało już po części mi działa , ale jeszcze chciałbym w/g swoich założen usprawnić.
    Natomiast jak zamienić aby przechodziły liczby a nie tekst ??


    Moderowany przez Matuzalem:

    Za ignorowanie poleceń dot. korekty tekstu oraz permanentne naruszanie norm językowych - ostrzeżenie.

    0
  • Pomocny post
    #8 14 Sty 2011 19:06
    marek003
    Poziom 40  

    Jak załączysz plik wtedy można zerknąć i poprawić makro.
    Przynajmniej wklej kod makra które ma za zadanie wkleić (przenieść) dane.

    Do zamiany tekstu w cyfrę w kodzie VBA należy wartość z okienka zamknąć w poleceniu-konwerterze VAL()
    np
    Cells.(5,i).Value = Val(Forms1.Textbox1.Value)

    Ale proponuje to na ślepo bo nie mam pojęcia jaki jest kod makra.

    0
  • #9 18 Sty 2011 23:13
    Facetjanusz
    Poziom 15  

    Witam
    Popracowałem nad moim programem i usprawniłem go trochę - ale mimo wszystko mam jeszcze problemy z uruchomieniem.
    Pierwsza sprawa to nie udaje mi się prze konwertować aby w arkuszu Wpis dane które przeniosły się z arkusza Dane miały przecinek dziesiętny a nie kropkę i przez to nie sumuje kolumn.
    A po drugie chciałbym aby po każdorazowym otworzeniu arkusza Dane cała kolumna I została wyzerowana - po poprzednim wpisie ( zostały wpisane zera 0,00)
    Pozdrawiam i dzięki za pomoc... Janusz
    Wysyłam plik spakowany.

    0
  • Pomocny post
    #10 19 Sty 2011 10:34
    marek003
    Poziom 40  

    Aby było 0 przy wchodzeniu do arkusza DANE trzeba w kodzie arkusza wpisać:

    Code:
    Private Sub Worksheet_Activate()
    
    For i = 1 To 11
    Cells(i + 2, 9).Value = 0
    Next i

    End Sub


    Co do przecinka samo Val czy CSng w tym przypadku nie wystarczy bo raz pobierasz dane z arkusza a raz wpisujesz z ręki. Można to było uzależnić od "rozbicie" ale stwierdziłem że tak najprościej. Chociaż co do prostoty makra też mam parę "ale", ale to twój twór więc nie będę sie wtrącał. Każdy musi sie nauczyć własnym trybem i tempem.

    Na szybko wprowadziłem zamianę kropki na przecinek przed wprowadzeniem danej do komórki.(Jak dobrze pamiętam jest bodajże funkcja VB na tą zamianę jednak wypadła mi z pamięci więc zastosowałem excelowską)


    Code:
    ...
    
    a = Application.WorksheetFunction.Substitute(UserForm1.TextBox4.Value, ".", ",")
    b = Application.WorksheetFunction.Substitute(UserForm1.TextBox5.Value, ".", ",")
    ...
    Cells(UserForm1.TextBox3.Value, 5).Value = a
    Cells(UserForm1.TextBox3.Value, 6).Value = b
    ...

    I jeszcze parę rzeczy:

    W Arkuszu DANE w kolumnie L masz błędne formuły gdyż odwołują się do własnych komórek a to powoduje odwołania cykliczne. Zmieniłem te formuły ale nie wiem jakie powinny być.

    Nr księgowy na dokumencie nie zgadza się z numerem księgowym w okienku.
    Przy czym jeżeli zmienisz nr księgowy w okienku by był zgodny z numeracją na dokumencie musisz poprawić wszystkie odwołania do wartości z textbox3, bo inaczej w innych/błędnych wierszach będzie sie wpisywały dane. (w makrze numer wiersza w który maja się wpisać dane jest uzależniony od wartości z okienka3 )

    0
  • #11 19 Sty 2011 14:27
    Facetjanusz
    Poziom 15  

    Dzięki Serdeczne !
    To co do tej pory chciałem działa OK .
    Jeśli chodzi o kolumnę L - w której zmieniłeś formułę ze względu na występujące cykliczne odwołanie to obecnie nie spełnia ona swojej funkcji. Mianowicie w kolumnie L wartosci powinny być skopiowane z kolumny I i nie zerować się.
    Po zakończeniu miesiąca będą zerowane ( jakoś to wykombinuję) , ale może inną formułę wstawić aby spełniała swoją funkcję , a nie występowało cykliczne odwołanie?
    Rozwijając temat dalej chciałbym aby w jeżeli w rozwiniętej Formatce nie ma jeszcze takiej pozycji można było dopisać kolejno nową pozycję - w tej chwili coś to szwankuje...Wpisuje w wierszu 16 i wywala błąd..
    Kolejne usprawnienie to : dobrze by było gdyby nie było konieczne wcześniejsze otwieranie arkusza Dane i wpisywanie wartości - a po otwarciu przyciskiem Formatki i wybraniu pierwszej pozycji otwierało Dane - i dalej jak do tej pory) , ale po wpisaniu wartości w kolumnie I został wypełniony arkusz Wpis !? - bez konieczności używania przycisku i wybierania pozycji w Formatce !?
    ...uffffff . ale komplikacje.. - ale jeśli lubisz rozwiązywanie łamigłówek to pewnie coś z tego wyjdzie.. Juz prawie 10 lat działasz i pomagasz początkującym - a ja teraz kupiłem podręcznik do Excela - "EXCEL w biurze i nie tylko" - chodzi mi głównie o programowanie Makra - ale tam nie wiele tego jest..
    Pozdro Janusz

    Dodano po 21 [minuty]:

    Kolejny poprawiony plik

    0
  • Pomocny post
    #12 20 Sty 2011 13:34
    marek003
    Poziom 40  

    W załączeniu wg mnie trochę bardziej uporządkowany kod i parę zmian.

    Też myślałem o tym by dane otwierały się kiedy trzeba. Poprawiłem ale na razie jest jedno "ale" jeżeli zaczął byś wpisywać w liście coś od litery "w" przerzuciło by cie do danych - dlatego dodałem spację do pierwszej nazwy.

    Pomyślę o innym rozwiązaniu ale na razie nie mam czasu.
    Zobacz czy ci wogóle pasuje.



    Co docelowo ma się znajdować w kolumnie L ?
    Co ma sumować? Co to za wartość i z czego docelowo ma się "składać"?

    Przed chwilą (15.05) uporządkowałem jeszcze Tab'y by się miło tablica skakało. i zabezpieczenie by nie bez wyszczególnienia nie wpisało danych

    0
  • #14 21 Sty 2011 15:13
    marek003
    Poziom 40  

    Cytat:
    Dobudowałem trochę - ale mimo kilkugodzinnych prób nie wyczaiłem gdzie w makrach są odpowiednie odnośniki aby coś pozmieniać. Pod przyciskiem OK formatki
    Świetnie działają przejścia i chciałem aby jeszcze w arkuszu WPIS w kolumnie D wpisywało cyfrę znajdującą się przy wybranej pozycji z SŁOWNIKA (kol A).
    W zależności od tej wartości wpłata będzie wpisywana w kolejnych kolumnach WPIS / J ; K ; L ; M itd.
    Pytałeś o kolumnę L - teraz Kol G w DANE - ponieważ wpis kwot w kolumnie D będzie w danym wierszu dokonany tylko raz w miesiącu - i właśnie w kolumnie G ma on pozostać do końca miesiąca ( z niego będą kopiowane wartości do innego Zeszytu !)
    Aha i jeszcze wystąpił problemik związany z powiększeniem tabeli DANE - nie przenosi sumy (szukałem gdzie to jest w makro..) - pod przyciskiem CommandButton1_Click() w kodzie arkusza DANE

    I jeszcze pytanie - czy bez problemu będzie można dodawać wiersze do tabeli w arkuszu WPIS ( musi tam być docelowo około 50.??


    ale wpadło mi do głowy aby usprawnić tabelkę DANE - jeżeli jeszcze nie zacząłeś przerabiać , to proszę uwzględnij to.
    I jeszcze pomyśl o zmianie formuły aby nie wywalało komunikatu o odwołaniu cyklicznym w kolumnie G i N.

    Ponieważ jesteś w miarę nowy na forum to tylko wspomnę że nie wyprowadzaj dyskusji poza forum (wątek) - ktoś inny może też chcieć skorzystać z tych rozwiązań i druga rzecz nie pomagam przez PW.

    Wracając do tematu:

    Jeżeli wpisywanie wartości następuje poprzez makro to nie można jak się chce zmieniać miejsca poszczególnym kolumnom i wierszom. Trzeba to uwzględnić w kodzie makra. Więc proponuje ci na przyszłość dobrze przeanalizować kod byś w każdej chwili jak coś zmienił wiedział gdzie to poprawić. Ewentualnie pytaj gdzie jest fragment kodu robiący daną rzecz.

    I nie wiem jakie dane mają przedstawiać wartości w kolumnie I arkusza WPIS. To co zrobiłeś jest wg mnie nielogiczne. Makro wypełnia tez kolumnę g w danych. Formuła tu nie zda rezultatu. Ale nie wiem czy o to do końca chodziło.



    Poprawiłem odwołania a co do 50 wierszy to założyłem 65 przy czym wprowadziłem ukrywanie wierszy niepotrzebnych aby to jakoś wyglądało.

    Jeżeli zauważysz błąd to pisz tu (na forum).

    0
  • #15 21 Sty 2011 16:54
    Facetjanusz
    Poziom 15  

    Dzięki Marku - właśnie zabrałem się do testowania - będę podglądał makro i porównywał z tym przed Twoją przeróbką co od czego zależy.Kupiłem książkę : "EXCEL w biurze i nie tylko" niestety w dziale Tworzenie Makra jest bardzo nie wiele ...
    Pozdro

    0
  • #16 21 Sty 2011 21:08
    marek003
    Poziom 40  

    Niektóre zmiany wynikają z późniejszych przemyśleń i zabezpieczeń (zmiany nie są związane wyłącznie z nowymi funkcjami ale są w niektórych przypadkach konsekwencją dodatków).

    Tworząc każdy program z przeznaczeniem dla obcych użytkowników trzeba mieć na uwadze "złośliwość" ludzi. Innymi słowy program powinien być "idioitoodporny". Kłopot jest w tym że w excelu nie można w łatwy sposób dodać masek do wprowadzania danych (ten programik nie przewiduje sprawdzania czy ktoś wprowadził cyfry czy litery), ale np. przewiduje to że ktoś najpierw wybrał wprowadzanie danych poprzez arkusz DANE lecz po powrocie do okienka zmienił zamiar i wybrał inną "wpłatę. Jeżeli teraz ktoś wciśnie OK to "programik" ma za zadanie "zapomnieć" o danych wpisanych w arkuszy Dane a tym bardziej nie dodawać ich do żółtej kolumny.
    Lecz jeżeli po zmianie wpłaty (przed wciśnięciem ok) znów się rozmyśli i wybierze pierwszą "wpłatę" to ma pokazać to co wpisał poprzednio (oczywiście w danej "sesji").
    Tam jest pare podobnych zabezpieczeń ale nie wszystko można przewidzieć więc mogą być byki. Nie mam aż tak dużo czasu by wszystko przemyśleć do końca.

    I druga rzecz książka jest jak najbardziej potrzebna, ale jeżeli nie zaczniesz sam pisać makr nigdy tego nie pojmiesz. Excel ma możliwość nagrywania makr. Poprzez to narzędzie można też poznać wiele ciekawostek i sposobów do napisania odpowiedniego kodu.
    Przyczym zacznij od najprostrzych rzeczy. Pobranie danej z danej komórki [np. poprzez "Range(AB)" lub "Cells(y,x)" - inne adresowanie komórki lub połączenie tych dwóch np Range(Cells(y,x),Cells(y,x)) ], zwrot danej do innej komórki, proste obliczenia itp

    0
  • #17 21 Sty 2011 21:51
    Facetjanusz
    Poziom 15  

    Dzięki za podpowiedz co do nauki.Teraz robię przeróbki Twojej ostatniej wersji zmieniając konkretne liczby które odnoszą się do zmienionych miejsc DANYCH - bowiem jednak tabelę z DANYMI dzielę na pól i ustawiam obok ,aby był podgląd na wszystkie dane . Robię przy tym błędy i często wracam do początku....
    pozdro

    0
  • #18 21 Sty 2011 22:24
    marek003
    Poziom 40  

    To tak na szybko.
    W tym wypadku nie wystarczy przenoszenie samych sum z tabeli do okienek (zapewne inne miejsce sum w arkuszu Dane ).
    Pamiętaj także o zerowaniu danych (pętle For przy inicjacji okienka i przy OK okienka) i wprowadzaniu danych do "żółtej" kolumny (też poprzez pętlę For pod przyciskiem OK okienka [jednoczesne z zerowaniem])

    0
  • #20 22 Sty 2011 11:44
    marek003
    Poziom 40  

    Sory że tak pouczam ale... tak jak się obawiałem
    Nie skorygowałeś pętli zerującej tak by zerowała drugą tabelę, pętli wypełniającej żółtą kolumnę w drugiej tabeli i...
    błędna formuła w sumie "dana wpłata" sumująca wszystkie wartości w drugiej tabeli.
    Tak wyglądają poprawne pętle :
    w inicjacji okna:

    Code:
    For i = 1 To 12
    
    Worksheets("DANE").Cells(i + 2, 4).Value = 0
    Worksheets("DANE").Cells(i + 2, 11).Value = 0
    Next i

    Tłumaczenie:
    Jest 12 pól w jednej i drugiej tabeli, więc robimy pętle FOR o zmiennej "i" od 1 do 12 następnie piszemy co ma robić się w tej pętli:
    w Arkuszu "dane" w [Cells(wierz,kolumna).value] cel o wierszu i+2 czyli za pierwszym obejściem pętli w wierszu 3 i kolumnie 4 wstaw 0 i w "celu" o wierszu 3 i kolumnie 11 wstaw 0
    następny i [next i] czyli i=2 i kolejna pętla
    teraz w cells (i+2,4) czyli wiersz 4 i kolumnę 4 wpisz 0 oraz w cells (4,11) też wpisz zero
    kolejne i (i=3) .... itd aż do i = 12
    I masz "wszystko" wyzerowane.


    Dla reszty poniżej ta sama zasada.

    i pod przyciskiem Ok
    Code:
    If UserForm1.ComboBox1.ListIndex = 0 Then
    
        For i = 1 To 12
            Worksheets("DANE").Cells(i + 2, 7).Value = _
                            Worksheets("DANE").Cells(i + 2, 7).Value + Worksheets("DANE").Cells(i + 2, 4).Value
            Worksheets("DANE").Cells(i + 2, 14).Value = _
                             Worksheets("DANE").Cells(i + 2, 14).Value + Worksheets("DANE").Cells(i + 2, 11).Value
        Next i
    End If

    For i = 1 To 12
        Worksheets("DANE").Cells(i + 2, 4).Value = 0
        Worksheets("DANE").Cells(i + 2, 11).Value = 0
    Next i


    Tu poprawka:

    0
  • #21 22 Sty 2011 22:22
    Facetjanusz
    Poziom 15  

    Na razie dziękuję Ci Marku -zwłaszcze za te tłumaczenia, w wolnych chwilach analizuję i przerabiam..
    Jak coś konkretnego osiągnę - zaraz powiadomię .
    Pozdro

    Dodano po 2 [godziny] 15 [minuty]:

    Nawiązując do pomocy Marka - mam pytanie - mianowicie jak edytować przyciski Anuluj i OK - chciałem je przesunąć.
    Formatkę edytuję bez problemu.
    Dodałem makro i wpisuje mi wartości w kolumnach G oraz N tak jak ma być.
    Jeśli tam należało by" poczyścić" to sprawdź. W sumie to będzie docelowe Moim zdaniem działa dobrze..
    Pozdro..

    0
  • #22 23 Sty 2011 00:18
    marek003
    Poziom 40  

    Idę już spać i się nie przyjże się temu co stworzyłeś.
    Ale "moje" przyciski są na wstępie ukryte (visable = false)
    Naciśnij w menu deweloper "tryb projektowania" wtedy je zobaczysz i będziesz mógł zarządzać miejscem i wielkością przycisków. Jak chcesz je zawsze widzieć zlikwiduj odwołania do ich ukrycia (...visable = false) i w ich właściwościach Visable wpisz true Z tym że jeżeli będą zawsze widoczne mogą wpłynąć na błędne zapisy w głównym arkuszu bo np wywołasz okno w środku procedury która nie sprawdziła wszystkiego (nie analizowałem za bardzo co się wtedy stanie).

    0
  • #23 23 Sty 2011 06:49
    Facetjanusz
    Poziom 15  

    OK Dzieki bardzo

    0
  • #24 27 Sty 2011 19:04
    Facetjanusz
    Poziom 15  

    Wydaje mi się ,że działa już poprawnie - rozbudowuję ten program bardzo. Zauważyłem ,że przy dużej ilości kolumn do których są wpisywane wartości , trwa przez chwilę wpisywanie.
    Dziękuję Markowi za pomoc i chyba zakończę już temat ?
    Pozdr:D

    0
  • #25 27 Sty 2011 21:20
    marek003
    Poziom 40  

    Jeżeli "drażni" cię to, że "widać" efekty pracy makra zanim nastąpi efekt końcowy możesz na czas pracy wyłączyć odświeżanie ekranu.

    Czyli na początku procedury (tuż pod Sub) pod przyciskiem OK okienka wpisz:

    Code:
    Application.ScreenUpdating = False

    to wyłączy odświeżanie

    a przed End Sub tej samej procedury nie zapomnij wpisać:

    Code:
    Application.ScreenUpdating = TRUE


    Wtedy nie będą widoczne poszczególne kroki procedury.

    0
  • #26 28 Sty 2011 15:43
    Facetjanusz
    Poziom 15  

    :!: I o to mi właśnie chodziło - zaraz to postaram się zrobić.
    Nie dawało mi jednak spokoju co by tu jeszcze wymyślić - i udało się...
    Myślę nad tym aby przy każdym wpisie kwoty w DANYCH - w momencie jak zostaje wpisywana w kolumnie D lub K - jest później skopiowana również w kolumnę G i N - a następnie zostanie z daty wydzielony tylko dzień , która to liczba jednocześnie zostanie wpisana w inny arkusz.
    .. Czy coś możesz mi zasugerować ?
    Ps. Jak widać przerobiłem go konkretnych potrzeb..

    Pozdr.

    0
  • #27 28 Sty 2011 22:04
    marek003
    Poziom 40  

    Powiem tak: zaproponował bym ci ale ... zapewne trzeba będzie poprawiać :) - chociaż wierze w twoje umiejętności.
    Dodałem kolumnę w danych - spowodowało to znowu konieczność przesuwania celów komórek w makro. (dane wynikowe i pętle kopiujące i zerujące)

    Dodałem do pętli kopiującej dane z "wpłaty" do "wszystkie wpłaty" dwa warunki wprowadzające pierwsze dwie cyfry z okienka data do kolumny "data wpłaty" Tam jest jeszcze zabezpieczenie że jeżeli jeszcze raz wypełnisz dane pole to następna data będzie widziana po przecinku.

    Wrzuciłem też wyłączenie odświeżania.


    Na marginesie:
    Jedno mnie zastanawia jakieś/gdzieś łącze do pliku "Raport zak 77" nie mogę go znaleźć. W pliku poniżej zerwałem to łącze, ale przyznaje że nie wiem o co chodzi w oryginale.

    0
  • #28 29 Sty 2011 09:41
    Facetjanusz
    Poziom 15  

    No SUPER dzięki posprawdzam to dokładnie, - dodam kopiowanie z drugiej tabeli w DANE do daty zapłaty w Miesięcznych.
    (coś tam nie da się wpisać formuły ?)
    Sam nie wiem co to było Zak 77 ?)
    Pozdro

    0
  • #29 29 Sty 2011 11:08
    marek003
    Poziom 40  

    Cytat:
    (coś tam nie da się wpisać formuły ?)

    Nie rozumiem. Co do daty w Miesięcznym zestawieniu możesz dać zwykłe "=" tak jak zrobiłeś z wartościami i sformatować komórki nie na liczby a na tekst.

    Cytat:
    Sam nie wiem co to było Zak 77 ?)

    Rapoty Zak 77.xlsm to nazwa jednego załącznika (spakowanego rarem) który podałeś w tym poście (jest wyżej jako twój załącznik).
    Ale to mało ważne, "problem" (by zaspokoić moją ciekawość) polega na tym że żadna formuła w arkuszach [sprawdziłem] nie odwołuje się do tego pliku a excel zgłasza powiązanie i nie mogę znaleźć miejsca gdzie jest to powiązanie wpisane (jedynie można zerwać to łącze).

    0
  • #30 29 Sty 2011 20:54
    Facetjanusz
    Poziom 15  

    Ja nie widzę problemu z odwoływaniem się.. - pewnie zerwałeś połączenie (nie wiem skąd to się wzięło ?
    W pewnym momencie jak wpisywałem formułę "=" to ta formuła autentycznie zostawała w komórce ! dopiero jak następny raz otworzyłem plik i wyczyściłem zawartości tych kilku kolumn (aby rozpocząć nowy miesiąc) udało się wpisać formuły i teraz wszystko hula .
    Przydało by się jeszcze centralnie resetować odpowiednie kolumny - ale to sobie zrobię poprzez wpisanie makra pętle zerujące (zgodnie z Twoimi wskazówkami).
    Jeszcze muszę poprawić aby przy zmianie arkusza (w nowy miesiąc) z "Styczeń" na "Luty" .. itd.. nie trzeba będzie zmieniać w Makro wpisu "Styczeń" na "Luty' czy następnie na "Marzec" - a za pomocą zmiany w Formantce .
    tak jak w tym projekcie:
    Pozdro

    0