Może Pan użyć instrukcji With: [syntax=vb]With XlApp.Worksheets(1) .Range("Q5,R5,V5,Z5,AD5,AH5,AL5,AP5,AT5,... .Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False End With XlApp.Workbooks("Book1").Close savechanges:=True [/syntax]
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 ;)
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.
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.
Skoro Kolega chce VBA, to proszę. Kod dla modułu 'Arkusz3': [syntax=vb]Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row = 2 And Target.Column = 2 Then If Target.Cells = "XYZ" Then Call Kopiuj End If End Sub[/syntax] Kod modułu skoroszytu: [syntax=vb]Sub Kopiuj() s = Sheets("Arkusz3").Range("B2") Sheets("Arkusz1").Select ow = Cells(Rows.Count,...
1. Załóż filtr w oryginalnej tabeli (niepuste) -> zaznacz całą tabelę i wtedy dopiero kopiuj dane . Może nawet lepiej wklejać "tylko wartości" niż dane z pełnym formatem każdej kopiowanej komórki. Zrobisz to w jednym ruchu zamiast korzystać z pętli (2000 razy). Po nagraniu makra można edytować zaznaczony zakres tak, żeby najlepiej nam odpowiadał. 2....
No działa, ale tak nie prościej? [syntax=vbnet] Sub Kopiuj(Dst As Range) Range("A2:B" & Range("A" & Rows.Count).End(xlUp).Row).Copy Destination:=Dst End Sub Sub TestKopiowania() Kopiuj (Sheets(3).Range("A" & Rows.Count).End(xlUp).Offset(1, 0)) End Sub [/syntax]
Jeśli adresy w podglądzie są prawidłowe, to podstaw kopiowanie. [syntax=vbscript]Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("Arkusz2") wdst = 3 With ws For w = 2 To 812 Step 6 For k = 11 To 24 Step 3 'podgl = Range(Cells(w, k), Cells(w, k + 2)).Address(0, 0) & " kopiuj do " & Cells(wdst, 8).Address(0, 0) .Range(.Cells(w, k), .Cells(w, k +...
[syntax=vbscript]Sub Etykiety() Sheets(1).Select Set a = Sheets(2) ow = Cells(Rows.Count, "A").End(xlUp).Row For x = 1 To ow nw = a.Cells(Rows.Count, "A").End(xlUp).Row + 1 For y = 1 To Range("H" & x) Range("A" & x & ":C" & x).Copy a.Range("A" & nw) Range("F" & x).Copy a.Range("F" & nw) nw = nw + 1 Next Next End Sub [/syntax]
Witam, dzieki bystrosci uzytkownika PRL mam makro ktore kopiuje dane z zakladek. Chcialbym jednak ograniczyc zakres kopiowanie i nie kopiowac wierszy pustych. Czy tos mi pomoze? Dziekuje[/table]
Witam. Prosiłbym o pomoc, mianowicie do poniższego makra potrzebuje wstawić warunek, jeżeli w pliku są puste arkusze, to ma ich nie kopiować. Z góry dzięki za pomoc.
Witam, próbuję napisać makro które, będzie kopiowało na raz z kilku arkuszy dane do jednego. Obecnie wkleja mi się nazmiane raz z jednego a później pyta o zezwolenie na wklejenie nowych danych z innego arkusza. A potrzebuję aby dane były jedne pod drugim i aby się sortowały po nazwisku. Próbowałam z pętlą ale przeładowywało się i plik się wyłączał....
Makro kopiujące wybrane komórki do nowej zakładki
Witam, mam taki kod makra, i chciałbym żeby zawartość komórek kopiowała się do innego pliku. Gdzie powinienem wstawić ścieżkę dostępu? Sub save() Dim cokopiujemy As String Dim linia As Integer ' jesli jest puste, wyswietl komunikat "UZUPEŁNIJ POLA" If (Range("F6") = "") Then Range("N8")...
Dzień dobry. Poszukuję rozwiązania za pomocą Vba . Dane są zawarte w 6 kolumnach ok 2000 linii posiadają duplikaty i nie tylko-są też pojedyncze linie w liście. Makro powinno wycinać i wklejać do Arkusza2 w oparciu o duplikaty lub pojedyncze elementy Arkusza1 z kol"A" w zakresie linii do kolumny "E" . ( w całej liście w większości to duplikat choć występują...
Witam. Próbuję napisać makro, które kopiuje pewien zakres danych z jednego arkusza do innego arkusza w zestawieniu. Problem polega na tym, że dane w zestawieniu z każdego arkusza powinny się pojawiać, bez względu na to ile jest arkuszy w zeszycie. Proszę o pomoc.
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...
Witam, interesuje mnie kopiowanie duplikatów wartości z kolumny A (usunięcie tych wartości w kolumnie A) oraz przekopiowanie tylko wartości zdublowanych do kolumny E. Szczegóły w załączniku. Z góry dziękuję za pomoc.[/quote]
W temacie co innego niż w treści ... :) ... ale spróbuj: Moduł 1 [syntax=vba]Sub obraz_wykresu() Sheets("Arkusz1").ChartObjects("Wykres 1").Chart.CopyPicture Appearance:=xlScreen, Format:=xlPicture Sheets("Arkusz2").Select ActiveSheet.Pictures.Paste.Select Selection.Name = "DoWykasowania" Application.EnableEvents = False Range("A1").Select Application.EnableEvents...
Potrzebuje pomocy w napisaniu makra w excelu, kopiowanie danych z jednego pliku excela do drugiego excela w petli gdzie jest wiele plików. Wyjaśniam o co mi chodzi. Mam plik excel nazwany np dane1.xls ( dane2.xls, dane3.xls itd tych plików mam ponad 200 w folderze) z kilkunastoma arkuszami oraz plik wzor.xls. ( Potrzebuje wyciągnąć z pliku dane1.xls...
Witam, potrzebuję pomocy z makrem. Czy ktos zmodyfikuje to makro tak zebym: 1) Mógł wpisać "z palca" numer wiersza z którego kopiuje (wszystkie kopiowana dotyczą zawsze jednego, wybranego wiersza). Ew. co tez jest dobra dla mnie opcja chcialbym moc wskazac myszka wiersz. 2) Mógł używać makra do aktualnie otwartego pliku (tego, do którego chcę skopiować)?...
Poszukuję makra, które z 1 arkusza o nazwie "dane" wykopiuje dane do nowych arkuszy w takim samym formacie względem np. kolumny K - wynik działania makra powinien być podobny (tylko dla wszystkich unikatowych danych z kolumny K) jak w załączonym pliku w arkuszu P001 (makro powinno nadać nazwę dodawanym arkuszom
Witam próbuje napisać makro kopiujące zawartość komórki aktywnego arkusza z komórki M2 do arkusza A komórki b1 ale jeśli b1 jest zajęte żeby wprowadziło dane do komórki b2 i tak coraz niżej .
[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...
[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...
Sprawa jest bardziej skomplikowana niż się na pierwszy rzut oka wydaje, bo Target.Value w zdarzeniu Change będzie też przyjmowało puste wartości (przy czyszczeniu/usuwaniu komórki), a także może być zakresem Range() np. przy kopiuj - wklej do kilku komórek (podobnie przy czyszczeniu zakresu komórek), przez co makro będzie się wywalać. Trzeba ew. je...
Tą metodą się nie da, bo zamażesz dane wejściowe i funkcja nie będzie miała skąd pobrać danych. Możesz ewentualnie dodać nowy arkusz i tam zapisać w komórkach tą funkcję z odwołaniem do konkretnego arkusza. Później metodą kopiuj i wklej możesz wynik nadpisać do komórek źródłowych. Pamiętaj tylko, że po tej operacji w arkuszu dodanym, w którym będą odbywały...
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...
W załączniku.
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...
Potrzebne będą dwie zagnieżdżone pętle. W przykładzie poniżej, makro porównuje nazwę arkusza z fragmentem ciągu w komórkach kolumny 'A'. Urozmaiciłeś nieco różną wielkością liter, dlatego LCase . Do modułu wklej [syntax=vb]Sub Kopiuj() Dim wk As Workbook, ark As Worksheet, myFile As String, wrs As Long myFile = "c:\Statystyka.xlsx" 'ścieżka i nazwa...
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]
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...
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...
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.
Trochę nieścisłości jest w tym Twoim opisie. Piszesz, że w kolumnie E arkusza Brudnopis po wyczerpaniu nazwisk będą błędy #N/D. Tymczasem w pliku przykładowym są puste teksty. To jak w istocie będzie? W załączonym kodzie są uwzględnione oba warianty. Gdy już się zdecydujesz jak ma być, możesz sobie ten kod troszkę uprościć. W sprawie tworzenia nowego...
Chyba łatwiej zrobić dwuklik na wierszu, z którego chcesz kopiować. Równocześnie uruchamiasz makro i wskazujesz wiersz. Możesz też się upewnić, czy to właściwy wiersz. Oczywiście można też wstawić tam InputBox, tylko wtedy jak chcesz uruchamiać to makro? Jeśli chodzi o moją propozycję, to komórki docelowe wypisujesz po kolei jako adresy obiektu Range:...
niestety próby przerabiania i sklejania czegokolwiek ze znalezionych makr spaliły na panewce To pokaż swoją panewkę.:) Tak na szybcika: [syntax=vbscript]Sub Przenies() Sheets("Dane").Select ow = Cells(Rows.Count, "A").End(xlUp).Row k1 = 2 k2 = 2 k3 = 2 For x = 1 To ow a = Cells(x, 1) b = Left(a, 3) If b = "QP " Then qp = qp + 1 If b = "GW " Then gw...
Pan pisal = formuły liczące znajdują się od komórki AO11 do GG5000 = może to malo być "do DD5000", bo dalej jest całkowicie pusty Jest to cała masa formuł, początkowo próbował do iterować tylko formuły - zabiera zbyt dużo czasu. Ale jeśli przyjmujemy pewne ograniczenia, to sprawa może być. ale to jutro na nową głowę. jeden więcej rzeczy zaufanie, że...
w pierwszym wierszu dla kolumny jest słowo "Tak" Dla tego trzeba jedna linijka[syntax=vb] Sub kopia() If ActiveSheet.Range("A1") = "Tak" Then ActiveSheet.Copy End Sub[/syntax]
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...
ma byc sh.Shapes(1).Select
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]
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:
Na dwie formy [syntax=vb] Sub Do_Druk() Dim i&, j&, k&, m&, p&, wy$ Dim wsSort As Worksheet, wsKp As Worksheet, wsKw As Worksheet, ws As Worksheet Set wsKp = Sheets("KP") Set wsKw = Sheets("KW") wsa = Array(wsKp, wsKw) Application.ScreenUpdating = False For Each wsi In wsa For i = 0 To 600 praw = 34 * (i Mod 2) dol = (i \ 4) * 64...
[syntax=vbscript]Sheets("2").Range("C1")... = vbRed[/syntax]
Najprościej na przykład tak: Sub Kopiowanie() Set fs = CreateObject("Scripting.FileSystemObject... fs.CopyFile [A1], [B1] End Sub [A1] zastępuje Range("A1") Dokładny opis metody CopyFile jest w Helpie do VBA. W nazwach plików można używać symboli wieloznacznych do kopiowania wielu plików naraz.
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...
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 ;)
Poprawiłem błąd.
Uważam, że Twój pierwotony, ale poprawiony kod, będzie szybszy. Sugerując się Tobą podałem złe rozwiązanie. Powinno być: [syntax=vb]Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row).Select[/syntax] Takie rozwiązanie jest wydajniejsze.
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.
Witam Workbooks.Add nowy=ActiveWorkbook.Name '....... 'tu kopiowanie a t.d. '........ Workbooks(nowy).Close False Ten kod w petli
Już tłumacze, kod działa dobrze do momentu w którym w kolumnie C nie napotka takiego samego loginu. A więc chodzi o to aby w momencie znalezienia "dubla" loginu sprawdził co jest napisane w H i R , jeżeli napotka np. Pendolino - Pendolino to kopiuj wartość, czyli tak jak jest to zrobione w kodzie, natomiast, jeżeli napotka np. Pendolino - OVS to nie...
Wszystko się da, no ok prawie wszystko. :) Kolumny są oznaczane w Excelu literą lub numerem, więc jeżeli chcesz je kopiować to nie widzę problemu. Wystarczy opanować metodę range.Copy. Jeżeli musi to być po nazwie to zapisz gdzieś (inny arkusz?) listę nazw w pętli i rób range.Find w wierszu w którym są zapisane nazwy i pobierz Column znalezionej komórki...
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...
Witam [syntax=vbnet]Sub SumaC() Dim ws As Worksheet For Each ws In Worksheets If ws.Name <> "RYDER" Or ws.Name <> "PORTAL" Then ws.Cells(2, 1).Value = "suma" ws.Range("B2") = "=SUM(I4:I50)" End If Next ws End Sub [/syntax]
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...
makro kopiuj wklej makro kopiuj zakres makro kopiuj niepustych
ściszyć domofon terminal powiadamianie tranzystor tesla kd503
energy saver oszczędzanie energii energy saver oszczędzanie energii
Lexmark X950 – wymiana bębna światłoczułego, reset licznika, oryginał vs zamiennik Odkamienianie dywerytera baterii prysznicowej – jak naprawić przełącznik strumienia w Grohe, Hansgrohe, Omnires