Masz racje może faktycznie ciężko i spaprałem opis, postaram się to sprawdzić po weekendzie. Jeszcze raz opisuje o co mi chodzi , mam 200 plikow w folderze "dane", w folderze "WZOR" jest plik wzorcowy wzor.xls oraz folder "CEL" czyli jest tak skrypt z folderu "dane" pobiera pierwszy plik to jest otwiera plik np g35.xls kopiuje odpowiednie zakresy komorek...
Przetestuj kod: [syntax=vb]Sub uzupelnij() Dim shSrc As Excel.Worksheet Dim shDest As Excel.Worksheet Dim lLstRwSrc& Dim rngTmp As Excel.Range Dim colUniq As Collection Dim vBox As Variant Set colUniq = New Collection Set shSrc = Sheets("baza") Set shDest = Sheets("PRE-ALERT") With shSrc lLstRwSrc = .Cells(Rows.Count, 1).End(xlUp).Row Set rngTmp = Range(.Cells(2,...
Makra włączone? Może problem z nazwa/indeks. Spróbuj Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo byk If Target.Column = 1 Then Sheets(Trim(Str(Target.Row&#... = Target.Value End If Exit Sub byk: If Target.Value <> "" Then MsgBox "Brak arkusza o...
Prototyp. Chcemy aby, po wpisaniu danych w dowolną komórkę pustego skoroszytu, excel sprawdził, czy w skoroszycie pierwszym To nie jest dobry pomysł, żeby za każdą zmianą w jakiejkolwiek komórce przeszukiwać arkusz z pliku z danymi. No chyba, że plik otworzymy przy otwieraniu pliku głównego.
Napisanie takiego makra nie jest czymś szczególnie trudnym, tylko ono będzie się dość długo wykonywać. Moja propozycja zmierzała do przyspieszenia tego. [syntax=vbnet]Sub kopiowanie2() ' ' kopiowanie Makro ' Dim r As Range Dim wkcalc As Worksheet Application.ScreenUpdating = False ' Workbooks.Open Filename:= _ "U:\Nowy folder\Arkusz B.xlsx" Set wkcalc...
Cześć, od kilku dni próbuję zaktualizować kod VBA tak aby dane z zakładki KWERENDA (tylko z kolumn od A do H) wklejały się do zakładki REJESTR PROTOKOŁÓW w pierwszy wolny wiersz w kolumnach A:H . Dodatkowo przed kopiowaniem nakładam filtr tak aby skopiowały się tylko konkretne wiersze. Jak w zakres destynacji wprowadzam np Range("A1", "H1") to kopiuje...
Tabelkę wstawisz [syntax=vbscript]ActiveDocument.Tables.A... Range:=Selection.Range, NumRows:=2, NumColumns:=2, DefaultTableBehavior:=wdWord9TableBehavi... możesz bezpośrednio z excela skopiować jakiś zakres i wkleić do worda, też otrzymasz tabelkę. Kolor słów/liter łatwo zmienisz w excelu (zastosuj to do komórki z tekstem "KolorTest") [syntax=vbscript]Cells(x,...
Wstawiłem tabelę, włączyłem rejestrator makr, zmieniłem nazwę w 'Narzędzia tabel'. Nagrało się m/in: https://obrazki.elektroda.pl/2689543600_... Odpowiedź: Tak, można
Niestety, nie zobaczę Twojego pliku - pozabezpieczany służbowy komp. Trochę nie rozumiem. Jeżeli PMI to robimy dokładnie to samo co dla SO? Czy zatem trzeba to rozdzielać? Jeżeli już trzeba to czy zamiast różnej liczby znaków możemy brać pod uwagę zawsze 2? Będzie łatwiej wydzielić. Zastosowałbym taki schemat: Dodano po 3 Chyba mam "deja vie", gdzieś...
Nie bardzo rozumiem, o co konkretnie chodzi. Przydałby się jakiś przykład w pliku, pokazujący jakie masz dane i co z nimi chcesz robić. Generalnie do testowania liczb można wykorzystać w VBA funkcję IsNumeric, albo zapożyczoną z Excela funkcję WorksheetFunction.IsNumber. Ich działanie różni się w szczegółach, na przykład funkcja IsNumeric traktuje puste...
Jakiś czas temu stworzyłem sobie taki plik wysyłający kombinacje klawiszy przez SendKeys, zobaczy, czy ci wystarczy. Podajesz adres strony, wpisujesz dane oddzielone kodami klawiszy specjalnych (druga zakładka) i uruchamiasz wpisywanie - wszystkiego automatycznie lub krok po kroku. Jako że u mnie nie chciało to działać na stronie w Intranecie, jest...
Np filedialog: .Filters.Add "Pliki Excel", "*.xls" Można i bez otwierania. Spróbuj coś z makr Excel4 arg = "'" & p & "[" & f & "]" & s & "'!" & Range(r).Range("A1"... , xlR1C1) ExecuteExcel4Macro(arg) Gdzie p to ścieżka do pliku, f nazwa...
[syntax=vbscript]Sub DodajDoBazy() Warunek = 123 owv = Cells(Rows.Count, "V").End(xlUp).Row nwa = Cells(Rows.Count, "A").End(xlUp).Row + 1 For x = 1 To owv If Cells(x, 22) = Warunek Then Range(Cells(x, 22), Cells(x, 26)).Copy Range("A" & nwa) nwa = nwa + 1 End If Next End Sub [/syntax]
Może wykorzystaj wklejanie przez schowek? Coś w s tylu: [syntax=vb]Sub Makro2() Dim WordApp As Object Dim ostwiersz As Integer Worksheets("arkusz1").Range("A1:E8").Cop... Set WordApp = CreateObject("Word.Application") ' otwórz worda Set wdDoc = WordApp.Documents.Add WordApp.Visible = True ' widoczny wdDoc.Paragraphs(wdDoc.Paragraphs.Count)...
Podałeś zdecydowanie za mało informacji. Jeśli Twoje dane robocze liczą ok. 10 tys. wierszy, to przykład powinien obejmować ok. 50 wierszy w reprezentatywnym układzie. Należy to pokazać w załączonym pliku wraz z oczekiwanym wynikiem. Z przykładu, który pokazałeś nie wynika m.in. 1) czy wszystkie wartości w kolumnie A występują parami, czy mogą też być...
[syntax=vbscript]Sub MW() Sheets("Arkuszgłówny").Select ow = Cells(Rows.Count, "F").End(xlUp).Row m = 19 w = 19 For x = 16 To ow a = Cells(x, "F") Select Case a Case "M" m = m + 1 Range(Cells(x, "H"), Cells(x, "I")).Copy Sheets("Tylko M").Cells(m, 1) Case "W" w = w + 1 Range(Cells(x, "H"), Cells(x, "I")).Copy Sheets("Tylko W").Cells(w, 1) End Select...
początku dla $A$1 B2 z obrazka ELEKTRODA.jpg wynika, ze dla $A$1 C2 Poniewaz nie ma zalacznika, patrz przyklad(karta i baza w jednom skoroszycie) Wiersz dla druku - wartosc w C1(za ramami PrintArea) B1:B19 - funkcja tablicowa Ctrl+Shift+Enter
Włącz w wordzie ikonę "pokaż wszystko" (ikonka podobna do Π)pokaże znaki niedrukowane (użyłeś tego w nazwie: Breszka ze stopką "enter" małą - dł.900 mm). Zobaczysz gdzie masz wstawiony "enter" w wordzie (przeniesienie części nazwy do drugiej linii). Nie całkiem poprawne to jest, nie używaj tej metody. Skasuj te "entery" i spróbuj przenieść tabelę...
Wystarczy np. taka prosta przeróbka: [syntax=vb]strPlik = Application.GetOpenFilename("Pliki Excela (*.xlsx),*.xlsx", 2) sFileName = Split(strPlik, "\")(UBound(Split(strPlik, "\"))) If strPlik = "False" Or UCase(Left(sFileName, 3)) <> "KWS" Then Exit Sub End If[/syntax]
Przetestuj poniższy kod. Założenia: - dane wejściowe są analizowane od drugiego wiersza kolumny A - dane wyjściowe będą od pierwszego wiersza kolumny C - szukamy ciągu FKxxxx (gdzie: xxxx - cyfry) bez spacji. Jeżeli pomiędzy FK a cyframi wystąpi spacja to taki ciąg nie będzie brany pod uwagę. [syntax=vb]Sub kody_RegEXP() Dim lLstRw& Dim i& 'od...
Przy tablicach nie używa się select. A co chcesz potem robić z tą tablicą? Zawsze możesz odwoływać się do komórek arkusza jak do tablicy: For i = 1 To 5 for j = 1 to 5 MsgBox i & ", " & j & " = " & Worksheets("Arkusz1").... j) next j Next i Ewentualnie możesz zapisać dane do zmiennej typu RANGE, do...
Proponuję takie proste makro:[syntax=vbscript]Sub Przenoszenie() Dim ws1 As Worksheet: Set ws1 = ThisWorkbook.Worksheets("Arkusz1") Dim ws2 As Worksheet: Set ws2 = ThisWorkbook.Worksheets("Arkusz2") Dim tbl As Variant Dim lr As Long tbl = ws1.[e5:z5] With ws2 lr = .Cells(.Rows.Count, 3).End(xlUp).Row + 1 .Cells(lr, 3) = .Cells(lr - 1, 3).Value + 1 .Cells(lr,...
W Excelu nie ma sensu deklarować obiektu typu "Excel.Application". Wystarczy "Open". Próba nałożenia filtru na jeden wiersz zakończy się błędem, dlatego należałoby określić ostatni w tabeli. Pamiętaj o usuwaniu zmiennych obiektowych z pamięci. Spróbuj[syntax=vb]Private Sub CommandButton1_Click() Dim xl As Workbook Set xl = Workbooks.Open("C:\Documents...
Spróbuj z formatowaniem [syntax=vb]Selection.TypeText Format(exl.Sheets("Arkusz1").Cells(1, 1), "00.00")[/syntax]Na końcu makra zamknij instancję Excela (będzie w pamięci jako proces).[syntax=vb]objExcel.Quit[/syntax...
Ostatni wiersz i ostatnią kolumnę trzeba określić osobno dla każdego arkusza źródłowego. Ale można wykorzystać te same zmienne, bo raz użyte dane nie będą już więcej potrzebne. Coś takiego: [syntax=vbscript]Dim Workbook1 As Workbook Dim lRow As Long Dim lCol As Long With Workbook1 With .Sheets("A") lRow = .Cells(Rows.Count, 1).End.(xlUp).Row lCol =...
ActiveSheet.Range("A2:E300").Copy Destination:=.Cells(LastRow + 1, 1) Podmień na [syntax=vbscript] ActiveSheet.Range("A2:E300").Copy .Cells(LastRow + 1, 1).PasteSpecial xlValues Application.CutCopyMode = False[/syntax]
Zerknij wpierw tutaj, czy cokolwiek by ci się nadało do adaptacji pod twoje potrzeby: https://www.elektroda.pl/rtvforum/topic3... https://www.elektroda.pl/rtvforum/topic3...
No nie mów, że nie wiesz... [syntax=vbscript]Y.Sheets("Arkusz1").Ran... = X.Sheets("Arkusz1").Range("A1")[/syntax] Zamień A1 na właściwą komórkę.
Obawiam się, że nijak...
Spójrz na to, może to być przydatne
Ma ktoś jakiś pomysł? Teraz chyba będzie jasne :) https://obrazki.elektroda.pl/1782827600_...
Zamiast If Left(LTrim(.Cells(i, 11)), 4) = tekst Then podstaw If InStr(.Cells(i, 11), tekst) > 0 Then i analogicznie w drugim przypadku. p.s. Zdaje się, że w pliku nie postawiłem kropek przed przed Cells. Z drugiej strony aktywnym jest arkusz ostatnio otwarty, ale dla porządku...
Spróbuj takiego makra. [syntax=vbscript] Sub Kopiowanie() Dim arkA As Worksheet, arkB As Worksheet, arkZest As Worksheet Dim OstA&, OstB&, GdzieWkleic&, PierwszyWiersz%, IleKolumn% Set arkA = ThisWorkbook.Worksheets("aaa") Set arkB = ThisWorkbook.Worksheets("bbb") Set arkZest = ThisWorkbook.Worksheets("Zestawienie") OstA = arkA.Cells(Rows.Count,...
Funkcja wyszukaj.pionowo działa wyszukując (szukanej wartości :!: ) jedynie w jednej - pierwszej kolumnie z tabeli wyszukiwania :idea: i na dodatek taki wektor przeszukiwanych wartości (przeszukiwana kolumna) nie może zawierać zdublowanych wartości. :cry:
A dlaczego nie dać szansy Excelowi, tylko go wyręczać? [syntax=vbscript]Sub Zapis_do_CSV() ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\baza test2.csv", _ FileFormat:= xlCSV, CreateBackup:=False, Local:=True End Sub[/syntax] Nie zwróciłem uwagi, że to ma być bez pierwszego wiersza, ale ten zawsze można usunąć później. Najważniejsze, żeby Excel...
Użyj WYSZUKAJ.PIONOWO()
[syntax=vb]wiersz = 6 Sheets(1).Activate While Cells(wiersz, 1) <> "" Cells(wiersz, 2).Copy Sheets(Cells(wiersz, 1).Text).Range("C8") wiersz = wiersz + 1 Wend [/syntax]
Wyszło mi coś takiego[syntax=vb]Sub Pobierz() Dim nazwa As String Dim ark As Worksheet Dim wrs As Long, j As Integer, i As Long nazwa = "Arkusz2" 'nazwa arkusza docelowego 'tutaj 2 dla porównania z 1 ThisWorkbook.Activate 'gdyby nie był Sheets(nazwa).Range("A2:H65536").ClearCo... 'czyścimy wrs = 2 '1-szy wiersz docelowy j = 3 '1-sza kolumna źródłowa...
[syntax=vbscript]Sub NowaKolumna() nk = Cells(60, Columns.Count).End(xlToLeft).Column + 1 Range("H60:H80").Copy Cells(60, nk) Application.CutCopyMode = False End Sub [/syntax]
Witaj Dodano po 9 albo w arkusz X column B =JEŻELI(LICZ.JEŻELI(Y!A:A;A1)>0;WYSZUKAJ...
Wpisz np w F1 =wyszukaj.pionowo(A1;$I$1:$J$22;2;0) i skopiuj w dół
A nie wystarczy wyłączyć obsługę zdarzeń przed otwarciem tego "innego" pliku? Zdarzenie Workbook_Open nie powinno się wykonać.
Mam nadzieję, że się zrozumieliśmy.
Poproś kogoś innego.
Kolego ten twój cały kod można skrócić do [syntax=vbnet]With Sheets("Arkusz1") .Columns("C:C").AdvancedFilter Action:=xlFilterInPlace, Unique:=True .Range("C2:C" & Cells(Rows.Count, "C").End(xlUp).Row).SpecialCells(xlCellT... .Range("E19") .ShowAllData .Range("E19").End(xlDown).Offset(1).Sele... End With[/syntax] ps. jak co to na dziś już...
Witaj [syntax=vb] Dim Sh As Worksheet Dim intName As Integer Dim shName As String Dim strNazwa As String ActiveWorkbook.Sheets("Template").Copy After:=ActiveWorkbook.Sheets("Template") strNazwa = "projekt" ' tutaj ustawiamy jak ma wyglądać początek nazwy arkusza intName = 0 For Each Sh In ActiveWorkbook.Worksheets shName = Sh.Name If Left(shName, Len(strNazwa))...
[syntax=vbscript]Next a.AutoFilterMode = False End Sub [/syntax]
Bo jesli dodasz dwie kolumny do każdego działu, to w makrze Kopiuj() musisz poprawić krok wyszukiwania z 4 na 6: [syntax=vb]For kol = 1 To 255 Step 6[/syntax] i, ewentualnie, tam gdzie teraz kopiujesz komórki od C do E zwiększyć od C do G i kol+5: [syntax=vb]Worksheets("Arkusz1").Range("... & Selection.Row & ":G" & Selection.Row).Copy .Range(.Cells(wiersz,...
Nowy kod był niedokładnie przepisany, zostały 2 linie ze starego kodu, które należało usunąć. Poza tym została zmieniona struktura logiczna kodu. [syntax=vbscript]Else If[/syntax]to nie jest to samo co [syntax=vbscript]ElseIf[/syntax] Poprawiłem pierwszy blok, tak jak pisałeś, dalej już nie sprawdzałem. Myślę, że to powtarzanie kodu w tej formie jest...
Dla przykładu No właśnie dla przykładu, to przydałby się przykładowy plik. Dodano po 4 Nie pisz na PW proszę, skoro plik dotyczy tematu.
Możliwe, że pytanie banalne, ale nie sformułowane w jasny sposób. Co rozumiesz pod pojęciami "menu arkusza" i "aktywować tylko nazwę"? Jeżeli chodzi o przechodzenie między arkuszami to Ctrl+PGUp lub Ctrl+PgDn
[syntax=vbscript]Sub Kopiuj() Sheets("Arkusz1").Select ow = Cells(Rows.Count, "A").End(xlUp).Row y = 1 For x = 1 To ow If Cells(x, "C") > 30 Then Range("A" & x & ":D" & x).Copy Sheets("Arkusz2").Range("A" & y) y = y + 1 End If Next End Sub [/syntax]
Witaj Funkcja WYSZUKAJ.PIONOWO
Makro w Twoim pliku jest b.dobrze zaszyfrowane. No, może tylko mi nie udało się odszyfrować ;) Żeby nie tracić czasu napisałem od nowa (module2). Wszystko oparłem o w/w funkcję 'Find' Zrozumiałem, że pkt2. w kolejnych miesiącach dotyczy sprawdzania poprzedniego i tak zrobiłem. Sprawdź (nie testowałem wiele), w razie czego dostosuj do własnych potrzeb....
Zeby tworzyla sie historia/baza danych rzeczy zeskanowanych danego dnia To nienajlepszy pomysł.
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...
Witaj [syntax=vbnet]Sub CellToComment() Dim Rng As Range Dim WorkRng As Range On Error Resume Next xTitleId = "KutoolsforExcel" Set WorkRng = Application.Selection For Each Rng In WorkRng koment = koment & Rng.Value & vbLf Next WorkRng(1).Offset(WorkRng.Count).NoteTex... Text:=koment End Sub [/syntax]
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...
Brak załącznika to poważny mankament! Nie wiadomo, jakie dane są w kolumnie "O". W kodzie PRL jest sprawdzany warunek: [syntax=vbscript]Sheets(x).Cells(y, "O") >= -30[/syntax]Otóż warunek ten spełniają nie tylko liczby >= -30, ale również puste komórki, dowolne teksty, w tym teksty puste, wartości logiczne. A jeśli w komórce jest wartość błędu, to program...
W załączniku.
Spróbuj z "=" w FormulaLocal nie tu: YTD(i,j) = TemplateYTD.Cells(i,j) a tutaj cCellYTD.FormulaR1C1Local = "=" & YTD Ale przydałby się arkusz z przykładem...
W załączniku.
[syntax=vbscript]For y = 1 To ile - 1[/syntax]
Pozwala uzyskać kolejne liczby przy kopiowaniu formuły w dół. Tutaj jako argument funkcji DATA. W tym przypadku zmiana roku (w kolumnie A) zaktualizuje tabelkę. W Twoim arkuszu można jeszcze prościej. W pierwszej komórce wpisujesz datę (wg. ustawień systemowych): 1-1-2011, w drugiej: 1-2-2011, zaznaczasz obydwie i przeciągasz w dół...
zobacz zestawienie miesiąca, jeśli chodzi o rok to jeszcze coś pokombinuje
chodzi mi ... tylko o nagłówek w stylach formatowania Jeśli tak to proponuję po wprowadzeniu całej treści raportu do Worda - przeprowadzić modyfikację stylów przy pomocy VBA w samym Wordzie :D Przykładowo jeśli będziesz miał wprowadzoną w treści raportu trzystopniowe numerowanie działów, rozdziałów i podrozdziałów (typu 1. ; 1.1. ; 3.1.5. ) to można...
gdy ilość znaków wynosi 14 Proponuje np. [syntax=vbscript]Private Sub TextBox1_Change() Lr = Range("A" & Rows.Count).End(xlUp).Row + 1 If Len(TextBox1.Value) = 14 Then Cells(Lr, "A") = TextBox1.Value End If End Sub[/syntax] Jeśli chcesz 14 znaków lub więcej to oczywiście zmień zapis warunku na => 14 :D
Sposób reakcji Excela i VBA na różne sytuacje nietypowe różni się w szczegółach, wynika to częściowo z innych koncepcji, częściowo z tego, że VBA operuje na wersji angielskiej, a użytkownikowi ma wyświetlać wersję zlokalizowaną (narodową). Niestety to przechodzenie między wersjami nie zawsze jest do końca dopracowane. Poza tym twórcy Excela mają manierę...
Dlaczego zmienna 'l' jest nadawana z wartości ostatniego wiersza (+1) z pliku 'b', a nie z 'a'?[/quote]
szablon.SaveAs Filename:=sciezka Proponuję użyć SaveCopyAs. Ale nie wiadomo, czy makro (jego nazwa sugeruje tworzenie arkuszy), czy też ma tworzyć nowe pliki.
Dodano po 19 Excel / VBA / wstawianie i kopiowanie wierszy z rozdzieleniem wartości
nowe rekordy muszą się wklejać po kolei w te tabele obok (A1:D1, A8:D8 itd.) :?: :?: :?: Czy to ma znaczyć, że nowe rekordy mają być dopisywane do poszczególnych tabelek z tym samym ID ??? Jeśli istnieją jakiekolwiek racjonalne przesłanki, że poszczególne segmenty tabeli nie mogą być dziesięcio-wierszowe :cry: to w kodzie te dane mają kopiować się...
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)...
Witam To jest makro wyszukane w jakiejś książce nie pamiętam. Tworzy nowe skoroszyty dla filtra z tabeli przestawnej. Zmień fragment aby tworzyło nowe arkusze Dodano po 6 Proponuję stronę helion.pl Tam do książek są przykłady na FTP. Skarbnica przykładów ;-)
zmień na [syntax=vb]Sheets("Filtr").Range("C" & x).PasteSpecial Paste:=xlPasteValues[/syntax]
Po skopiowaniu: Zakładka "Data -> Edit Links -> Change source" i trzeba wybrać plik w którym się aktualnie pracuje. Mam niestety angielskiego Excela http://obrazki.elektroda.pl/2271428100_1...
Przeczytaj w pomocy funkcje WYSZUKAJ.PIONOWO
"Zabawa" ciągami się kłania.
Jak masz tak ładnie popisane "stare:xxxxxxx" i "nowe:yyyyyy" we wszystkich wierszach to nawet nie musisz sięgać ani do wyrażeń regularnych, ani do VBA :please: Wystarczy zrobić odpowiednią formułę (na bazie fragment.tekstu) w kolumnach C i D i przeciągnąć ją na dół kolumny :idea: :idea:
Zobacz takie rozwiązanie.
Proponuję: 1) Zamiast formuły z funkcją JEŻELI zastosować formułę z funkcją MAX. Uniknie się w ten sposób dwukrotnego odwołania do tych samych danych. 2) Jeżeli będziesz przestrzegał zasady, że nowe arkusze są dodawane zawsze na początku (a nie na końcu, jak robi się zazwyczaj), to będziesz potrzebować zawsze odwołań do następnego arkusza w kolejności....
To 2020 ACTUAL jest w kolumnie B, nie H - może stąd problem? [syntax=vbscript]w = Application.Match("2020 ACTUAL", Range("H1:H" & ow), 0) - 1[/syntax] Zmień H na B.
Cóż, taka już natura Excela... Pewnie wklejają się wszystkie odfiltrowywane wiersze, tylko jeden pod drugim, począwszy od pierwszego widocznego. Jak po tej operacji zdejmiesz filtr, to wszystkie odfiltrowywane wartości z kolumny A powinny być w kolumnie C, tylko jedna pod drugą. Nic na to nie poradzisz, trzeba po prostu być ostrożnym przy używaniu filtra...
Jesli tak: [syntax=vb]Arkusz1.Cells(w, kol).Copy Arkusz21.Cells(poz, kol_doc)[/syntax] Ponadto czy istnieje Arkusz21 ? Nie nazwa wkladki, tylko kodowa nazwa(widoczna w edytorze VBA)
Musiałem dodać fragmenty kodu odpowiedzialne za zróżnicowaną numerację kopiowanych przycisków, a następnie identyfikację przycisku "Clear", który został użyty. Wszystkie przyciski "Copy" działają identycznie - kopiują zawsze pierwszą tablicę na pierwsze wolne miejsce. Możesz tej pierwszej tablicy nie wypełniać, potraktować ją jako szablon, unikniesz...
[syntax=vbscript]Sub Makro() Sheets("Arkusz1").Select a = Application.Match("W", Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row), 0) nw = Sheets("Arkusz2").Cells(Rows.Count, "A").End(xlUp).Row + 1 If Not IsError(a) Then Sheets("Arkusz2").Range("A" & nw) = Range("B" & a) Rows(a).Delete End If End Sub [/syntax]
[syntax=vb] If ostatniwiersz <> 24 Then MsgBox "W arkuszu jest " & ostatniwiersz & " wierszy" [/syntax]
Zbliżone działanie do pożądanego :D tj. przenoszenie danych z katalogu do oferty przy pomocy dwukliku (makro działa pojedynczymi wierszami - oczekując na wpis ilości do oferty :ok: patrz na zrzut ) 978389 Drugie makro w "ofercie" usuwa wybrane wpisy (wybrany indeks :!: ,a przy okazji ilość :D ) 978391
Dla Twojego przykladu [syntax=vb] Sub kopie() Dim i As Long For i = 1 To 4 Sheets("Output").Shapes("Rectangle " & i).TextFrame.Characters.Caption = Sheets("Output").Range("B" & i * 7 - 3) Next End Sub [/syntax]
Jeśli masz otwarte oba pliki i w nich są wszystkie wymienione arkusze :!: to spróbuj takiego kodu: [syntax=vbscript]Workbooks("cale.xls").A... Sheets("WAC").Select Range("P3").Select Selection.Copy Workbooks("Daily production meeting report.xlsm").Activate Range("B15").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks...
Wybor spolki - lista lub kursor na skrocona nazwe
[syntax=vbscript]Sub Zawiera() Sheets("Arkusz1").Select a = InputBox("Podaj tekst do szukania: ", "Wyszukaj") ow = Cells(Rows.Count, "A").End(xlUp).Row y = 1 For x = 1 To ow If InStr(1, Cells(x, 2), a) > 0 Then Range(Cells(x, 1), Cells(x, 2)).Copy Sheets("Arkusz2").Range("A" & y) y = y + 1 End If Next End Sub [/syntax] Poniżej bez rozróżniania wielkości...
Witaj Range(B1:B6).Insert Shift:=xlToRight
Poprawiłem makra. Kod przycisku uprościłem dla jasności. Przeanalizuj zapis dot. co dokąd jest kopiowane, zawsze będziesz mógł sobie zmienić...
W Excelu 2003 kopiowanie danych spod filtra kopiuje także dane ukryte, a nie tylko widoczne rekordy. Nie chcę w tej chwili sprawdzać, ale chyba / być może ten problem nie występuje w Excelu 2007 (albo myli mi się z Open Office - tam na pewno kopiują się tylko widoczne rekordy przy autofiltrze). Aby uniknąć tego kopiowania ukrytych rekordów wchodzi się...
Sformatowałeś dane jako tabela, nazwy w nagłówku tabeli muszą być unikalne...
Wypróbuj: [syntax=vbscript] Sub xyz() Const pathSrc As String = "C:\test1\" ' folder źródłowy Const pathDest As String = "C:\test2\" ' folder docelowy Dim StrFile$, WbkSrc As Workbook, WbkDest As Workbook StrFile = Dir(pathSrc & "*.xls") Application.ScreenUpdating = False Do While Len(StrFile) > 0 Name pathDest & StrFile As pathDest &...
Poprawiłem błąd.
Witaj Odpal to makro [syntax=vb] Sub popraw() Dim bs As Range, r As Long Set bs = Sheets(1).Range("A:C").Cells r = 2 While bs(r, 1) <> Empty If (bs(r, 1) = bs(r + 1, 1)) And (Month(bs(r + 1, 2)) - Month(bs(r, 2)) > 1) Then bs.Rows(r).Copy bs.Rows(r + 1).Insert Application.CutCopyMode = False bs(r + 1, 2) = DateSerial(Year(bs(r, 1)), Month(bs(r,...
OK. Teraz mam pilne zadanie, w godzinach wieczornych coś do rozwiązania. ... Tu to jest [syntax=vb]Sub copyNumKs() Dim bd As Range, bs As Range, r& With Sheets(1) Set bd = .Cells(1, 5).Resize(.Cells(Rows.Count, 1).End(xlUp).Row, 1) End With With Sheets("wydruk") Set bs = .Cells(1, 2).Resize(.Cells(Rows.Count, 1).End(xlUp).Row, 2) End With For r = 2...
wsadowy kopiowa autocad kopiowa kopiowa commander
łączenie odległych komputerów schneider electro sterownik ft232r
minikoparka sterowanie uszkodzony rezystor dmuchawy
Sony STR-11L vs STR-414L – różnice, moc, funkcje, parametry, tuner, wejścia Kruger & Matz Live 11 – jak znaleźć zgubiony telefon przez Google Find My Device?