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: 61806 Skopiuj do schowka formularz makro
Autor Wiadomość
Artik 



Wersja: Win Office 365
Pomógł: 2613 razy
Posty: 8614
Wysłany: 09-01-2019, 01:31   

Nie śledzę wątku, więc odpowiem tylko na problem opisany w tym poście.

Zamiast
Kod:
ActiveWindow.SmallScroll Down:=ile - 1
użyj
Kod:
ActiveWindow.ScrollRow = ost + ile - 1

Do testów użyłem pliku REJESTR_złe dodanie.xlsm.

W tymże pliku widzę też wyłączenie zdarzeń na poziomie aplikacji
Kod:
Application.EnableEvents = False
gdy sprawdzasz wypełnienie TextBox-ów. Nie wiem jaki jest cel użycia, bo nie widać byś do momentu włączenia zdarzeń grzebał coś w arkuszach. Mogę się tylko domyślać, choć nie wiem czy właściwie, że ma być to zabezpieczenie przed wzbudzaniem się zdarzeń na poziomie otwartego formularza. Jeśli tak, to od razu powiem, że cytowane polecenie NIE działa w formularzach. Robi się to nieco inaczej. Tak więc możesz to śmiało wyrzucić (wy- i włączenie).

Artik
_________________
Persistence is a virtue in the world of programming.
ID posta: 360043 Skopiuj do schowka
 
 
RafiG41
Stały bywalec Excelforum


Posty: 402
Wysłany: 09-01-2019, 07:15   

Artik dziękuję - po zmianie wspomnianej przez Ciebie części kodu problem o który mi chodziło został rozwiązany.
ID posta: 360048 Skopiuj do schowka
 
 
RafiG41
Stały bywalec Excelforum


Posty: 402
Wysłany: 09-01-2019, 19:22   

Chciałbym jeszcze poprosić o jedną zmianę pod przyciskiem DODAJ ZLECENIE, a mianowicie gdy mamy już dodane w bazie zlecenie np o numerze 111111 w ilości 5 palet, po tym zleceniu mamy dodane zlecenia o innych numerach i ponownie chce dodać dalsze palety ze zlecenia numer 111111 w ilości 3 palety, to te palety się dodają do bazy na końcu listy.
Czy jest możliwość zmodyfikowania kodu tak, aby w takiej sytuacji te nowo dodane palety wpisywały się do bazy bezpośrednio pod wcześniej dodanymi paletami z tego zlecenia (czyli, żeby całe zlecenie o numerze 111111 było po sobie)?

REJESTR.xlsm
Pobierz Plik ściągnięto 13 raz(y) 458.47 KB

ID posta: 360123 Skopiuj do schowka
 
 
Artik 



Wersja: Win Office 365
Pomógł: 2613 razy
Posty: 8614
Wysłany: 10-01-2019, 04:13   

Przemyśl, może wystarczy odpowiednio sortować tabelę po jej aktualizacji.

Artik
_________________
Persistence is a virtue in the world of programming.
ID posta: 360164 Skopiuj do schowka
 
 
RafiG41
Stały bywalec Excelforum


Posty: 402
Wysłany: 10-01-2019, 06:59   

No właśnie o tym pomyślałem, żeby po dodaniu odbywało się sortowanie po numerze zlecenia i numerze palety. Czy mogę prosić o dopisanie takiej części kodu?
ID posta: 360165 Skopiuj do schowka
 
 
RafiG41
Stały bywalec Excelforum


Posty: 402
Wysłany: 10-01-2019, 18:28   

Do sortowania chciałem użyć poniższego makra, ale zwraca błąd. Czy mogę prosić o pomoc w poprawie kodu?
Kod:
Sub Sort()
    Range("A6:BF100000").Select

    Selection.Sort Key1:=Range("A:A"), Order1:=xlAscending, Key2:=Range("G:G") _
            , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
            False, Orientation:=xlTopToBottom
End Sub
ID posta: 360198 Skopiuj do schowka
 
 
ąćęłńóś
ExcelSpec


Pomógł: 186 razy
Posty: 847
Wysłany: 10-01-2019, 19:45   

Arkusz jest zabezpieczony, a poza tym, to dlaczego ... kukuryku ... akurat "BF100.000" ?!
Kod:
    ActiveSheet.Range("a5").CurrentRegion.Sort ... itd
ID posta: 360200 Skopiuj do schowka
 
 
RafiG41
Stały bywalec Excelforum


Posty: 402
Wysłany: 11-01-2019, 07:12   

Dziękuję za podpowiedź, ale po zamianie pierwszej linijki kodu na podany przez Ciebie fragment też nie działa. Zakres dałem bardzo duży, żeby sortowane było na pewno wszystko, oczywiście najlepszym rozwiązaniem byłoby sortowanie tylko wierszy, w których znajdują się jakiekolwiek dane. Załączam plik i czy możecie mi pomóc z tym tematem i zmodyfikować odpowiednio kod?

REJESTR.xlsm
Pobierz Plik ściągnięto 14 raz(y) 462.34 KB

ID posta: 360210 Skopiuj do schowka
 
 
Tadek
Excel Expert


Pomógł: 1483 razy
Posty: 4768
Wysłany: 11-01-2019, 11:13   

Spróbuj tak:
Kod:
Sub sortuj_baze()
Dim ostW, ostK&
With Worksheets("Baza")
    .Unprotect "natalka"
    ostW = .Cells(Rows.count, "A").End(xlUp).Row
    ostK = .Cells(5, Columns.count).End(xlToLeft).Column
    If ostW > 5 Then
        .Range(.Cells(5, 1), .Cells(ostW, ostK)).Sort Key1:=.Range("A5"), _
        Order1:=xlAscending, Header:=xlYes, Orientation:=xlTopToBottom, _
        Key2:=.Range("H5"), Order2:=xlAscending, Header:=xlYes, Orientation:=xlTopToBottom
    End If
    .Protect "natalka"
End With
End Sub
ID posta: 360226 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.marketingNET.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