Mówią, że deklarowanie zmiennych, to dobra cecha programisty. Są języki, gdzie bez deklaracji się nie da. W VBA nie jest _wymagane_ deklarowanie, ale jak chcesz, to używaj 'Dim'.;) P.S. Wykorzystałeś makro 'Kopiuj2'?
Dane - Filter nie dziala ?
Odpal takie makro [syntax=vb]Sub koko() r = 2 While Cells(r, 1) <> "" If Cells(r, 1) = Cells(r + 1, 1) Then Cells(r, 2) = Cells(r, 2) & vbLf & Cells(r + 1, 2) Rows(r + 1).Delete r = r - 1 End If r = r + 1 Wend End Sub [/syntax]
Ja również dziękuje.
Już w poprzednim wątku zwracałem uwagę, że dane mają być reprezentatywne. Tam nie było nic o tym, że numery bloków mogą się powtarzać i wobec tego w kodzie była wykorzystana zmiana numeru bloku w stosunku do poprzedniej. Teraz przyjąłem, że jeśli blok jest złożony z kilku elementów, to numeracja po / zaczyna się od 1. Trzeba te bloki jakoś rozróżniać....
[syntax=vbnet]Sub Kopiuj5() Application.ScreenUpdating = False Sheets("Arkusz1").Select ow = Cells(Rows.Count, "A").End(xlUp).Row nw = ow + 1 For x = 2 To ow If Cells(x, "C") > 1 Then Range(Cells(x, "A"), Cells(x, "C")).Copy Range(Cells(nw, "A"), Cells(nw + 4, "C")).Select ActiveSheet.Paste Range(Cells(nw, "C"), Cells(nw + 4, "C")) = 1 nw = nw + 5 End...
Bardzo rozwlekle to napisałeś, a sprawa sprowadza się chyba do prostej pętli. Do kopiowania wartości nie należy używać Copy-Paste, tylko zwykłe przypisanie. Przypuszczam, że chodzi o taki kod: [syntax=vbscript]Sub Makro1() Dim n As Long For n = 4 To 8 Range("C16:C19").Value = Range(Cells(16, n), Cells(19, n)).Value Application.Run "'koszt.xls'!Makro2"...
(Baza Zielone) 1 - nie do końca wiem czy o to Ci chodzi (próbowałem zrozumieć co chcesz osiągnąć - możliwe, że właśnie to co w załączonym pliku). Najprościej będzie posortować po pierwszej kolumnie tak aby puste wartości (matki) zostały na końcu i wówczas do kopiowania danych używasz formuły: 1060144 (Baza Niebieskie) 2 - już napisałem powyżej. Robisz...
Zmodyfikuj ten kod np tak :spoko: : [syntax=vbscript]Sub filtr() a = Range("C3") b = Range("C4") i = 7 c = 0 Do While Cells(i, 3) <> "" If (Cells(i, 3) >= a) And (Cells(i, 3) <= b) Then Rows(i).EntireRow.Hidden = False c = c + 1 Else Rows(i).EntireRow.Hidden = True End If i = i + 1 Loop [A1] = c End Sub[/syntax]
Powinno działać.
... JEŻELI(B9&C9&D9&E9&F9&am... ...
Jeżeli wprowadzisz odpowiednią kolumnę pomocniczą w arkuszu głównym :spoko: to pożądany efekt można uzyskać formułami jak na zrzucie 927750 Całość w załączniku. 927751
W kodzie arkusza [syntax=vbscript]Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 1 Then Target.Resize(, 2).Interior.Color = vbRed Sheets("Arkusz2").Cells(Rows.Count, 1).End(xlUp).Resize(, 2).Offset(1) = Target.Resize(, 2).Value Cancel = True End If End Sub[/syntax]
Bez makra, wpisz numer do F1 - Druk
Dzień dobry, To jest chyba najbardziej typowe zastosowanie funkcji LICZ.WARUNKI. Funkcja LICZ.WARUNKI będzie liczyć od Excela 2007 wzwyż, funkcja SUMA.ILOCZYNÓW we wszystkich wersjach. Użycie funkcji SUMA.ILOCZYNÓW w ten sposób jest trochę sztuczne. Powinna być użyta funkcja SUMA, ale wtedy należałoby to wprowadzić przez Ctrl+Shift+Enter jako formułę...
Bez zbędnych selectów [syntax=vb]Sheets("Arkusz1").Range("G20"... Destination:=Sheets("Arkusz2").Range("G2...
Poproś kogoś innego.
Na tą chwilę nie bardzo wiem, jak to poprawić. A przecież specjalnie Ci podpowiadałem :D możesz łatwo uchwycić obszar do aktualnego czyszczenia :arrow: jako obiekt Selection :D tzn. trzeba to zrobić raczej tak :spoko: [syntax=vbscript]Sub dodaj() Dim ile_w As Long Dim kom As Range Application.ScreenUpdating = False With ThisWorkbook.Sheets(ar_kusz)...
Zobacz, czy o to chodziło. Starałem się jak najmniej zmieniać w Twoim kodzie, ale nie bardzo wiedziałem, czy chcesz szukać całych komórek z podaną zawartością, czy fragmentów. W tej chwili wyszukuje fragmentów. Nie jest ten kod za bardzo optymalny, bo wykorzystuje Find tylko do wyszukania arkusza, a potem szukanie wystąpień w arkuszu, to już porównania...
[url=https://www.youtube.com/watch?v=ywS... coś znajdziesz.
Niestety na służbowym kompie nie zobaczę Twojego pliku, więc tylko kilka wskazówek. 1. Proponuję przygotować szablon do kopiowania w oddzielnym arkuszu, nieużywanym przez kontrolerów. Można tam zapisać w razie potrzeby coś jeszcze, a docelowo można go będzie ukryć. 2. Żeby skopiować obszar (tabelkę), musisz wiedzieć gdzie to trzeba skopiować. Możesz...
W przykładowym pliku pokazałeś już dane posortowane, więc nie zobaczysz tak łatwo efektu, chyba że sobie posortujesz odwrotnie. Sposób postępowania, który najprościej zastosować: Rozdzielić listy pustymi kolumnami. Wartości z listy wzorcowej ponumerować od 1 do N w dodanej kolumnie. Do listy sortowanej dołączyć kolumnę z wyliczonymi numerami wg listy...
[syntax=vbscript]Sub Kopiuj() Set a = Sheets("Arkusz1") owa = a.Cells(Rows.Count, "B").End(xlUp).Row Sheets("Arkusz3").Select ow = Cells(Rows.Count, "B").End(xlUp).Row y = 2 For x = 2 To ow s = Application.Match(Cells(x, 2), a.Range("B1:B" & owa), 0) If Not IsError(s) Then a.Rows(s).Copy Sheets("Arkusz2").Range("A" & y) y = y + 1 End If Next End Sub...
[syntax=vbscript]For y = 1 To ile - 1[/syntax]
Myślę, że najlepsze wyniki czy nie od końca, ale od początku [syntax=vb]Sub Wstawianie_wierszy() Dim i As Long, r As Long, c As Long Application.ScreenUpdating = False i = 2 r = i While Cells(i, 11) <> Empty If Cells(i, 11) <> Cells(i + 1, 11) Then Rows(i + 1).Insert For c = 5 To 7 Cells(i + 1, c + 3) = Application.WorksheetFunction.Sum(Range(...
Usuń duplikaty ani tabela przestawna tu się nie przyda bo dochodzi warunek że usuń gdy puste ale nie gdy puste w Re_3 Stworzyłem w sumie proste makro (ono tylko tak wygląda) Pierwsza część kodu przepisuje wszystkie linie mające to samo zlecenie. Później następuje sortowanie. Następnie warunek sprawdza czy (w moim przypadku coś1) się powtarza jeżeli...
Spróbuj [syntax=text]=SUMA.JEŻELI(A1:I1;">0")[/s...
Wyszła mi taka formuła: [syntax=text]=ADR.POŚR("'[01 Par. -Styczeń 2017.xlsx]"&TEKST(WYSZUKAJ(100;B$7:B7);"... wykorzystuje liczby wpisane w kolumnie B. Wyniki muszą być wpisywane od siódmego wiersza. W kolumnie W jest formuła wyliczająca numer wiersza...
[syntax=vbscript]Cells(n, "B")[/syntax] [url=http://vb.amc24.pl/iso2/zmienne/typ...
Zobacz, czy o to chodziło. Makro do kopiowania: [syntax=vbscript]Sub Kopiuj() Dim b As Worksheet Dim ow As Long Set b = Sheets(ActiveSheet.Index - 1) ow = b.Cells(Rows.Count, "A").End(xlUp).Row - 1 Dim CopyRng As Range, PasteRng As Range b.Range("A4:B" & ow).Copy ActiveSheet.Range("A4").PasteSpecial Paste:=xlPasteValues b.Range("N4:O" & ow).Copy ActiveSheet.Range("N4").PasteSpecial...
1. Wyrzuć "górne" r=r+1, ustaw (u góry) r=2 jeśli... sam już nie wiem. Wypróbuj. 2. Nie ta metoda. Musiałbyś copy-paste i wybierając (select) wiersz (zakres) docelowy. P.S. Zmykam. Dobranoc ;)
Jednak wtedy kopiowanie danych różniących się do "pustych miejsc" trzeba będzie dokonać "na piechotę" Jeśli w kolumnie "title" nie będą występowały powtórzenia danych (duplikaty) to całą robotę wykona proponowana formuła przeciągnięta do dołu wynikowej tabeli :-)
Żaden kłopot. Jeśli chodzi o zera, to najprościej wyłączyć wyświetlanie w opcjach: http://obrazki.elektroda.pl/6240352000_1... W komórkach G34:G40 zrób podobnie jak w G41 =JEŻELI(SUMA(G2;G10;G18;G26)...
Zakładając, że makro uruchamiasz przy aktywnym arkuszu wynikowym, konstrukcja powinna wyglądać mniej więcej tak ostWrs = tu szukamy ostatniej niepustej komórki w arkuszu wynikowym For Each sht In ThisWorkbook.Worksheets If sht.Name <> "tu nazwa arkusza wynikowego" Then ostWrsArk = tu szukamy ostatniej niepustej komórki w arkuszu źródłowym...
[syntax=vb]Sub numery() Dim wz As Worksheet, rs&, re&, i&, j& Dim bs As Range, bd As Range Set bs = ThisWorkbook.Sheets("baza").Range("B1:C1... 'platform, tara Set bd = ThisWorkbook.Sheets("start").Range("B1:C... 'wagony Set wz = ThisWorkbook.Sheets("wykaz_zdawczy") wz.Activate rs = 17 'wiersz poczatkowy re = wz.Cells.Find("podpis").Row...
[syntax=vbscript]Sub UkryjOdkryj() If [ZZ1] = 0 Then For x = 32 To 52 If Cells(x, "B") <> "" And Cells(x, "B") = 0 Then Rows(x).Hidden = True Next [ZZ1] = 1 Else For x = 32 To 52 If Rows(x).Hidden Then Rows(x).Hidden = False Next [ZZ1] = 0 End If End Sub [/syntax]
Da się to zrobić w ten sposób: 1. wpisać dane kwota netto w kilka wierszy np od 2 do 5, 2. przeciągnąć formułę przeliczenia euro od wiersza 2 poza wiersz 5 o kilka (np 5) wierszy w dół. w miejscach gdzie nie było w wierszach danych kwot netto w kolumnie przeliczników pojawi się 0. 3. zaznaczyć obszar komórek z zerami i nacisnąć "del", nie poprzez usuń...
Zrób taką formułę, która sprawdzi ci czy w pierwszej kolumnie jest liczba całkowita, jeśli tak to skopiuje dane z kolumn X,Y1 i Y2 do nowego arkusza lub nawet w następne puste kolumny. A dalej to już sobie poradzisz.
[syntax=vbscript]Sub AF() Sheets("A").Range("A4:R200").Clear For x = 2 To Sheets.Count For y = 4 To 300 If Sheets(x).Cells(y, "O") >= -30 Then nw = Sheets("A").Cells(Rows.Count, "O").End(xlUp).Row + 1 Sheets(x).Rows(y).Copy Sheets("A").Range("A" & nw) End If Next Next End Sub [/syntax]
Zazwyczaj funkcja powinna zwrócić wartośc Spójrz w pomocy VBA przykład funkcji(Help - Writing a Function Procedure) Twoja funkcja nie zwraca żadnej wartości.
to mi nic nie pomaga Oczywiście jeśli używany tylko w pogotowiu [syntax=vb]Private Sub ListBox1_Change() ListBox2.ListIndex = ListBox1.ListIndex End Sub [/syntax]
lub [syntax=vb]Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 7 And Target > 0 Then Rows(Target.Row).Hidden = True End Sub [/syntax] lub odpalic dla aktywnego arkusza [syntax=vb]Sub ukryj() For r = 2 To Application.CountA(Columns(1)) - 1 Rows(r).Hidden = Cells(r, 7) > 0 Next End Sub [/syntax]
[syntax=vb] If ostatniwiersz <> 24 Then MsgBox "W arkuszu jest " & ostatniwiersz & " wierszy" [/syntax]
Trzeba było od razu właściwie napisać. [syntax=vbscript]Sub Porownaj() Application.ScreenUpdating = False Set a = ThisWorkbook.Sheets("Output") Set b = Workbooks.Open(ThisWorkbook.Path & "\1 671 913 2.xlsx") owb = b.Sheets(1).Cells(Rows.Count, "D").End(xlUp).Row For x = 2 To owb s = b.Sheets(1).Cells(x, "D") y = x + 151 k = a.Cells(2, y) If k <>...
A zaznaczenie wierszy 2-5 a następnie menu Dane -> grupy i konspekt -> grupuj nie działa? P.S. UPS, spóźniłem się :/
O rety, ale mam zaskok :) W załączniku rozwiązanie z kolumną pomocniczą.
Opisane trochę niejasne, ale funkcja PODAJ.POZYCJĘ a INDEKS może pomóc
Czy jest taka możliwość w Excelu 2010? Tak. Kolumna pomocnicza z max()+1 i formuła "na boku" z INDEKS(PODAJ POZYCJĘ Zobacz [url=http://www.elektroda.pl/rtvforum/to... załacznik #2
Dodano po 19 Excel / VBA / wstawianie i kopiowanie wierszy z rozdzieleniem wartości
Użyj funkcji sumy.częściowe() (w argumencie funkcja zliczając np. ilość komórek liczbowych).
wstawianie wierszy excel ukrywanie wierszy excel excel usuwanie wierszy
subwoofera tda1562 vestel 17ips72 ustawienia dialog router
frequency mixers frequency mixers
Wydajność kompresora 50l: parametry i modele Triumph-Adler Gabriele 110 DS: Data produkcji i funkcje