Sprawdź takie makro: Cells(CC, 3).Cut zastąp linijką Cells(CC, 3).Copy . Makro działa od pierwszego wiersza, jeśli pierwszy wiersz Twojej tabeli to nagłówek, początkowe parametry CA oraz CC zmień na numer wiersza, od którego zaczynają się faktyczne dane. Makro działa do momentu napotkania pierwszej pustej komórki w kolumnie C.
tylko adres porzebny Tutaj. ;) https://obrazki.elektroda.pl/5067666000_...
Makro kopiujące wybrane komórki do nowej zakładki
[syntax=vbscript]Application.ScreenUpdat... = False If Not Sheets("Arkusz2").Visible Then Sheets("Arkusz2").Visible = True Sheets("Arkusz2").Select Range("A2:E10").Select Selection.Copy Sheets("Arkusz1").Select Range("a1").Select ActiveSheet.Paste Application.CutCopyMode = False Sheets("Arkusz2").Visible = False ActiveWorkbook.Save Application.ScreenUpdating...
Z arkusza1 robię raporty w osobnych arkuszach Efekt taki jak na zrzucie 1041538 automatycznego kopiowania wyfiltrowanych danych z arkusza1 do kilku arkuszy :idea: (z nazwami arkuszy wg filtrowanych danych :D ) można zrealizować przykładowo tak jak w załączonym pliku. 1041541 Makro można uruchomić skrótem klawiaturowym ctrl+r :!: , dla dowolnej (jeśli...
Dlaczego nie załączyłeś pliku? Przecież na obrazku niczego nie można sprawdzić. Podejrzewam, że linie obramowania, które Ci się nie kopiują są przypisane do sąsiednich komórek. Ramka rozdziela komórki, ale nie musi być przypisana do obu, może być przypisana tylko do jednej z nich. Wtedy przy kopiowaniu trzeba zadbać o to by obramowania były przypisane...
Kod wklejamy pomiędzy znaczniki (Syntax) - opcja "Listing kodu". Twój post (z racji pełnienia funkcji) poprawiłem, przy okazji łącząc oba w jedno ;)
W załączniku.
[syntax=vbscript]Sub ImportujPlikizWieluLokalizacji() Dim ZakresWejsciowy As String Application.ScreenUpdating = False Set p = Sheets("Parametry") Set i = Sheets("Import") For x = 2 To p.Cells(Rows.Count, "A").End(xlUp).Row If p.Cells(x, 5) = "x" Then Katalog = p.Cells(x, "A") If Right(Katalog, 1) <> "\" Then Katalog = Katalog & "\" On Error...
Musisz wpisać większą treść wiadomości przed wysłaniem. W przypadku wysyłania plików opisz szczegółowo plik w treści wiadomości. Niech Gulson coś w końcu z tym zrobi.
Udało się metada prób i błędów opierając się na innych makrach
Spróbuj [syntax=vb]For Each kom2 In Sheets("Arkusz2").Range("A1:A500") If kom2 <> Empty Then For Each kom1 In Sheets("Arkusz1").Range("A1:A500") If kom1.Value = kom2.Value Then kom2.Offset(0, 13) = kom1.Offset(0, 13) kom2.Offset(0, 14) = kom1.Offset(0, 14) Exit For End If Next End If Next[/syntax]
Na początku pętli [syntax=vbscript]Do While Len(ws_src.Range("E" & i)) > 0[/syntax]jest sprawdzany warunek czy długość zapisu w kolumnie E jest > 0. Eliminuje to przypadki pustych komórek i pustych tekstów. Gdybyś jeszcze chciał sprawdzać wartości zerowe to trzeba dodać nowy warunek pod spodem: [syntax=vbscript]If ws_src.Range("E" & i) = 0 Then Exit...
Teraz wszystko jasne. [syntax=vbscript]Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then Application.ScreenUpdating = False Plik = "C:\PlikiSpraw\" & Range("A" & Target.Row) & ".xlsx" If Dir(Plik) <> "" Then Rows(Target.Row).Copy Set s = Workbooks.Open(Plik) nw = s.Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row...
Możliwe, że Autor ma w Arkusz2 formularz, który ma być wypełniany z wybranego wiersza Arkusza1 i następnie drukowany. No ale to tylko Autor wie, a jakoś się nie zgłasza.
W wolnej chwili wyklikałem na klawiaturze kilka linijek. Wydaje mi się, że wygodniej będzie Ci przystosować mój krótki kod. [syntax=vb]Sub Podziel() Dim a As String, a1 As Worksheet Set a1 = Sheets("Arkusz1") ow = Cells(Rows.Count, "D").End(xlUp).Row f = True Sheets("Arkusz1").Select For x = 5 To ow a = a1.Cells(x, 16) If f Then y = x f = False End...
od O2:O17 jest Gdańsk I ten zakres kopiujemy do L23, a co mamy zrobić z kolejnym miastem, zakres O18:30? Chcesz się poduczyć, czy oczekujesz gotowca? Jak to pierwsze, to lepiej na jakimś komunikatorze, a nie tutaj.
A mógłbyś po swojemu, wspomniałeś, że nie znasz VB, napisać, jak według Ciebie taka linijka powinna wyglądać? Podpowiem, żę blisko tego: [syntax=vb] Cells(owa2, 1).Select Selection.PasteSpecial Paste:=xlPasteValues Cells(.... = .... [/syntax] Cells(1,1), to komórka A1. Cells(4,2), to komórka 4B. Proste, prawda?:)
Wysłałem Ci gotowca na 99%. niestety próby przerabiania i sklejania czegokolwiek ze znalezionych makr spaliły na panewce Weź się trochę wysil... Masz do duspozycji arkusz 'Parametry'.
coś poszło nie tak Jak widać na zrzutach :please: ja załączyłem i opisuje plik ProtUpBase.xls , a koleżanka otwiera jakiś plik (po nazwie sądzę, że też mój :D ) ProtTablica.xlsx , który żadnego makra rzeczywiście nie zawiera :cry:
Dzień dobry, Można spróbować takie makro: [syntax=vb]Sub Uzupełnij() Dim wiersz As Long, wzor As String wzor = "" wiersz = 1 Do If Cells(wiersz, 1) <> "" Then wzor = Cells(wiersz, 1) Else: Cells(wiersz, 1) = wzor End If wiersz = wiersz + 1 Loop Until wzor = "koniec" End Sub[/syntax] Powinno spełniać założenia. Pozdrawiam.
Wklej do modułu pliku z linka i uruchom. Makro w tej postaci "wydłubało" 1341 wierszy. Po wszystkim wyeksportuj, lub skopiuj arkusz "Wynik" do swojego pliku. Reszta w komentarzach.[syntax=vb]Sub Yoasia() ileArk = 2 'są dwa z danymi w pliku z linku. Zmień jeśli jest inaczej. 'tu sprawdzimy czy jest arkusz wynikowy, wstawimy jeśli nie 'nie zmieniaj kolejności...
Czy ktoś ma pomysł na to aby nie zaznaczał całych kolumn A:G tylko aby zaznaczył od komórki A4 do komórki GX Taki efekt możesz uzyskać poprzez wstawkę kodu: [syntax=vbscript]Set thisWb = ActiveWorkbook Set wksK = thisWb.Worksheets("Kosztorys") Lastrow = wksK.Cells(Rows.Count, 1).End(xlUp).Row wksK.Range("A4:G" & Lastrow).Copy[/syntax] ale efekt takiego...
Jeśli urządza Cię wynik w dodatkowym arkuszu, można formułami. W przeciwnym wypadku Np takie coś: [syntax=vbscript]Dim w As Long w = 2 With Sheets("RaportPaczek") Do While .Cells(w, 1) <> "" If IsNumeric(.Cells(w, 3)) Then .Cells(w, 4) = .Cells(w, 3) .Cells(w, 3) = .Cells(w, 2) End If w = w + 1 Loop End With[/syntax]
Dużo do wyjaśniania, więc przeanalizuj sobie taki przykład makra z pętlą[syntax=vb]Sub Ukash() Dim myPath As String, fName As String, newWkb As Workbook Dim wrs As Long, wrsDst As Long myPath = "U:\Lukasz\Raporty\" 'składasz string z zamianą daty na tekst fName = "Raport " & Str(Date) & " adamas" 'lub dowolna data pobrana z komórki Set newWkb...
Polecenie Name powinno działać poprawnie. Nie wiem jaką ma Pan strukturę plików. Możliwe przyczyny błędu: 1. Plik docelowy już istnieje 2. Folder docelowy nie istnieje 3. Plik źródłowy jest otwarty 4. Nazwa pliku zawiera znaki wieloznaczne "*" lub "?"
ma byc sh.Shapes(1).Select
Sheets("DRUKI SORTOWANIE").Select Range("A1").Select Selection.Copy Sheets("KP").Select Range("V28:W28").Select ActiveSheet.Paste Taki fragment można zapisać krócej tak: Gdzieś na początku makra: [syntax=vb]Set wsSort = Sheets("DRUKI SORTOWANIE") Set wsKp = Sheets("KP")[/syntax] a dalej: 1. jeżeli chcesz skopiować tyko wartości, bez formatów: [syntax=vb]wsKp.Range("V28:W28").Value.....
Jak Ci wierszy przybędzie do miliona, to zaczniesz myśleć, dlaczego to tak długo liczy...;) Ale jeżeli już chcesz tak, to nie sprawdzaj w każdym przejściu pętli, czy komórka jest różna od pustej, tylko wylicz wartość końcową pętli na przykład tak: [syntax=vb] For x = 2 To Cells(Rows.Count, "A").End(xlUp).Row Cells(x, 1) = "=IF(RC[1]<>"""",R[-1]C+1,"""")".....
3. nowy skoroszyt zamknąć Na sam koniec nowo utworzony skoroszyt zamyka bez zapisywania go Jakie jest więc cel tworzenia nowego skoroszytu?
Po pierwsze: z którym fragmentem nagranego kodu masz problem? Po drugie: Nagraj makro kopiowania całego arkusza do nowego pliku ze zmianą jego (pliku) nazwy. Masz 100% gwarancji zachowania formatowania. Jeśli w arkuszu jest nadmiar danych można dopisać usuwanie. Jeśli jesteś początkujący, to nagrywarka jest podstawą. Przykład: To jest nagrane makro...
Jaky format w A1? Sprobuj Sheets(Range("A1").Text).Select
Wydaje mi się, że rozwiązanie z WYSZUKAJ.PIONOWO będzie działać o wiele szybciej niż makro. Czy masz jakieś konkretne powody do zastosowania VBA?
Namęczyłeś się z nagraniem tego makra :D, ale czy mógłbyś dla ułatwienia wrzucić przykładowy plik z dokładniejszym opisem co, skąd i dokąd ma być kopiowane? A tak na przyszłość prośba. Używaj polskich literek i ubieraj kod w znaczniki Code . Trochę ułatwia czytanie. :D
Pomogę w ten sposób: Tak przypisujesz nazwę z danej komórki Nazwa_z_komorki = Worksheets("KON").Cell... 1).Value i podobnie ilość Ilosc_z_komorki = Worksheets("KON").Cell... 2).Value Do powyższego cells(nr wiersza,nr kolumny) dodanie arkusza: Sheets.Add Nadanie nazwy arkuszowi: ActiveSheet.Name...
W zakresie wierszy od 3 - 10 we wszystkich komórkach mam różne wyniki, które aktualizują się z zewnętrznej bazy automatycznie i są zmienne. Potrzebuje z tych odczytów zrobić historię w postaci listy i chciałbym aby co 5 min. wykonywany był zrzut tego zakresu wierszy w formie listy w 2 arkuszu w tym samym pliku Proszę o wsparcie
Strasznie to wszystko zakręcone, a na dodatek niepotrzebnie komplikujesz sobie życie... Tak naprawdę to by to wszystko można zrobić na funkcjach, bez użycia VBA. No, ale... Zacznijmy od tego że poprzednie makro się wywalało, bo w złym miejscu umieściłeś sprawdzanie warunku: jeżeli masz zdarzenie Change wywoływane zmianą w arkuszu, to jeżeli w tym zdarzeniu...
Dziękuje za odpowiedź. Przyznam się, że niewiele z tego rozumiem ;) a przy próbie uruchomienia pojawia się komunikat Run-time error '9' Subscript out of range. Co może być przyczyną?
Gdzie przyklad? Gdzie ma byc makro - w docelowym pliku lub w tym " innym pliku" " w roznych miejscach" - oraz roznych wierszach?
Z całym szacunkiem, forum jest po to aby pytać, jeżeli nie znalazło się rozwiązania...
Dopisuję się do pytania :) Dlaczego nie wykorzystać wbudowanych narzędzi Windowsa lub Excela? Np: zaznacz pierwszy arkusz, naciśnij i przytrzymaj klawisz [Schift], zaznacz ostatni, prawym pm w dowolną zakładkę (nazwę) arkusza, z menu wybierz [Kopiuj], w okienku wybierasz nowy lub docelowy plik, zaznaczasz opcję [utwórz kopię], klikasz [OK] i gotowe....
Chodzi o to, że w arkuszu "Rejestr" mam komórkę do której kopiuje się wartość z innego arkusza: Cells(Rows.Count, 3).End(xlUp).Offset(-NrR... + 1, -1).Select ActiveCell.Value = strNrZP I ten moment jest ok..., ale następnie chciałem aby od tej aktywnej komórki (która już ma wartość) skopiować tą komórkę o ilość razy poniżej......
Cześć, Mam taki problem że za pomocą makra kopiuje dane z drugiego pliku. Problem w tym że dane z drugiego pliku pojawiają się dopiero po wykonaniu makra uruchamiającego się przy otwarciu (nie znam nazwy tego makra). W konsekwencji kopiuje same nagłówki bo dane nie zdążyły się jeszcze odświeżyć. Miał ktoś podobny problem ?
są wiersze których nie przekopiowuje nie wiem dlaczego. Dlatego, że występują zdublowane dane :D te dubelki mogą występować w każdej części lub crossowo pomiędzy obiema częściami
Jest to do zrealizowania? [url=https://www.elektroda.pl/rtvforum/t...
Niestety Run-time error '1004': Metoda PasetSpecjal z klasy Range nie powiodła się.
Tu trzeba już więcej wiedzy z VBA i czasu (którego niestety na chwilą obecną nie mam - gdyż makra znam na poziomie podstawowym i trzeba by było szukać i nagrywać a później wnioskować i wykorzystywać to co potrzebne). Jednak przedstawię pewien tok który może ci pomoże (bo o większość rzeczy już się pytałeś na forum i powinieneś je znać - szczególnie...
Znalazłam rozwiązanie i działa tak jak powinno :). Wklejam moje rozwiązanie tak na wszelki wypadek jakby ktoś miał z tym problem (inaczej działać nie chciało) [syntax=vb]Sub Zestawienie() Dim WksZ As Worksheet Dim WksDo As Worksheet Dim ost_w As Long Dim ost_zest As Long Dim R Application.ScreenUpdating = False Set WksZ = ActiveSheet If WksZ.FilterMode...
Temat do zamknięcia. Poradziłem sobie sam. Chodziło mi dokładnie o takie coś: [syntax=vbscript]Sub Makro1() ' ' Makro1 Makro ' ' Klawisz skrótu: Ctrl+d ' ile = Int(InputBox("Ile ma się skopiować tabelek? ", "Wpisz liczbę", 3)) If ile < 1 Then Exit Sub l = 1 Range("C4:D17").Copy ActiveCell.Range("A1").Select ActiveSheet.Paste For i = 1 To ile ActiveCell.Offset(0,...
Witam Proszę o pomoc. Potrzebuję proste makro, które skopiuje określone komórki z wybranego przeze mnie wiersza do innego arkusza. Chciałbym żeby to wyglądało tak: okno dialogowe pyta: "Podaj numer wiersza do skopiowania", podaje np wiersz nr 5 i wtedy komórka np A5 B5 D5 G5 z arkusza1 są kopiowane do komórek odpowiednio A1 A2 A3 A4 arkusza2. Nie znalazłem...
makro kopiujące arkusz makro kopiujące wiersz makro kopiujące skoroszyt
ekranowanie subwoofera viessmann taktowanie pasek zawilgocenia
Filtry do kabli świec zapłonowych: rdzenie ferrytowe, rezystancja, ekranowanie Citroën Berlingo: Limit kasowania błędów i diagnostyka