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...
[syntax=vbscript]Sheets("2").Range("C1")... = vbRed[/syntax]
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]
Poprawiłem błąd.
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 ;)
[syntax=vbscript]For y = 1 To ile - 1[/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...
Właśnie to pozwoliłem sobie zmienić w przesłanym przykładzie w makrze kolegi adamas_nt Wpisz zamiast ostatniWiersz = 100 to ostatniWiersz = Sheets("Arkusz1").Cell... 1).End(xlDown).Row Wtedy makro samo policzy ile jest wierszy i będzie się wykonywało tylko do ostatniego wiersza. Warunek dane w kolumnie...
Makro poniżej przesuwa nazwiska w prawo o wartość numeru grupy+1, a następnie usuwa puste komórki w obszarze danych. Nazwiska nie są posortowane. Jeżeli jest potrzeba. sortowania to na początku makra dopisać sortowanie.[syntax=vbscript]Sub Przepisz_Nazwiska() Dim Tab_Opis As Variant With ActiveSheet Tab_Opis = Array("Grupa 1", "Grupa 2", "Grupa 3",...
Jeżeli pola są oddzielone spację, wystarczy taka modyfikacja pętli: [syntax=vb]Do While Not EOF(1) Line Input #1, TextLine If Left(TextLine, 13) = "121401_2.0011" Then arr = Split(TextLine, " ") wsdane.Cells(i, 1).Value = arr(0) wsdane.Cells(i, 2).Value = arr(1) wsdane.Cells(i, 3).Value = arr(2) wsdane.Cells(i, 4).Value = arr(3) wsdane.Cells(i, 5).Value...
Wystarczy wszystko przeciągnąć/skopiować ... Mam nadzieję, że właściwie podałeś treść zadania, najlepiej przytocz je całe.
otwierał nowego Excela nowe wystąpienie programu Excel, lub nowy skoroszyt? Myslim ze skoroszyt:[syntax=vb]Sub kopie20() Dim nw As Worksheet Dim my As Range Set my = Workbooks("Truck.xls").Sheets("Aero") s = 0: k = 1 For n = 1 To my.Cells(65536, "P").End(xlUp).Row s = s + my.Cells(n, "p") If s + my.Cells(n + 1, "p") > 20 Or my.Cells(n + 1, "p") = ""...
Jeśli dobrze rozumiem, to tak:
Dobry wieczór, Nie znam się na SolidWorks, ale w kodzie VBA widzę przynajmniej dwa błędy: pierwszy w połączeniu Range("Q5...BJ5").Selection.Copy Powinno być rozbite na dwie instrukcje Range("Q5...BJ5").Select Selection.Copy Można też pominąć selekcję i pozostawić tylko: Range("Q5...BJ5").Copy Drugi błąd: Active.Worksheet.Paste Po pierwsze ta instrukcja...
[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]
[syntax=vb]Private Sub CommandButton1_Click() Zeszyt = ActiveWorkbook.Name Workbooks.Open Filename:="C:\Users\mm\Desktop\Nowy_fold... Range("A:A").Copy ThisWorkbook.Activate Sheets("Arkusz2").Activate Range("B1").Select ActiveSheet.Paste Workbooks("wsad.xlsx").Close Windows(Zeszyt).Activate End Sub[/syntax]
[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]Sub Szukanie() NazwaPliku = UCase("SzukanyPlik.XLSX") Set Liczydlo = Sheets("SzukanyPlik") Application.ScreenUpdating = False Do While SzukanyPlik <> NazwaPliku p = Application.GetOpenFilename(FileFilter:=... files, *.xlsx", Title:="Find SzukanyPlik", MultiSelect:=False) SzukanyPlik = UCase(Mid(p, InStrRev(p, "\") + 1)) If...
[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]
Ma ktoś jakiś pomysł? Teraz chyba będzie jasne :) https://obrazki.elektroda.pl/1782827600_...
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,...
Nie znalazłem w internecie opisu makr z tą zaletą, że można wpisać w makro dowolną funkcję np. ową Wyszukaj.Pionowo [url=https://www.google.com/search?q=vba...
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,...
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.
To ja też zmodyfikuję.;) [syntax=vbscript]Sub Makro1() ow = Cells(Rows.Count, "H").End(xlUp).Row For x = 1 To ow If Cells(x, 8) = 0 Then Cells(x, 10).Cut Cells(x, 15) Next End Sub[/syntax]
Witam Jeśli chcesz tylko wartości z innych arkuszy, pomoże to makro. wynik w arkuszu 1. Wszystkie arkusze muszą być nagłówek ID, bo nie wiem, w którym część arkusza są dane
W przyszłości nie trzeba pisać skoroszyt zamiast arkusz(z określonymi numerami) Skoroszyt to jest plik(w każdym razie tak to było do tej pory). Ponieważ nie wiadomo, czy te same struktury arkuszy, liczbę wierszy i kolumn, kopiowanie, możesz zrobić tak: [syntax=vb] Sub kopie() 'makro w pliku(skoroszycie) A, plik B jest otwarty 'kolejne 3 linie dopasuj...
Brakuje chyba jeszcze jednej pętli zmieniającej kod sklepu. Hmm, raczej: na pewno ;) Spróbuj[syntax=vb]Sub asd() Dim wiersz, nr, ilosc As Integer Dim ostWrs As Long, w As Long, ile As Integer ostWrs = Range("B65536").End(xlUp).Row wiersz = 1 Range("C1:D1500").Clear For w = 1 To ostWrs nr = Cells(w, 1) ilosc = Cells(w, 2) For ile = 1 To ilosc Cells(wiersz,...
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...
A nie możesz wyniki przenieść na drugi arkusz? Wtedy tylko zmieniasz formułę: =LEWY(Arkusz1!A1;2) =PRAWY(Arkusz1!A1;DŁ(Arkusz1!A1&... Czy musisz na tym samym arkuszu kategorycznie pozostać? EDIT: Zrobiłem specjalnie dla Ciebie makro ;) [syntax=vb]Sub Prostokąt1_Kliknięcie() koniec = Range("A1").End(xlDown).Row Application.ScreenUpdating...
No tak. Mój błąd, bo powinno być w innej kolejności. Sorry, ale dzisiaj sobota ;) Coś tam (w załączniku) kopiuje. Przeanalizuj, dostosuj do własnych potrzeb.
Oto projekt. Początkowo Pan otworzyć i odczytać z makrami.(na otwarcie i zamknięcie książki) i poprawi stałych (bo nie mogę odgadnąć nazwy plików). Następnie skopiuj makra do prawdziwych plików Interesuje mnie jak długo potrwa pracy makro, ponieważ kopiowanie w komórki z formatowaniem (kolor, czcionki) zajmuje znacznie więcej czasu niż w komórki niesformatowany....
Załącz przykładowy plik (nie musi być 20 arkuszy, wystarczą 2-3), z którego by wynikało jakie to są dane (stałe, formuły, sformatowane?) i jak ma wyglądać oczekiwany wynik. Piszesz o nadaniu kolejnego numeru skopiowanym danym. Gdzie ma być ten numer? W Twoim kodzie go nie ma. Jak będziesz skakać po arkuszach, to skąd będziesz wiedział później, z którego...
[syntax=vb] Sub SzukajCiagu() Dim x As Long, y As Long, z As Long, SzukaneSlowo As String x = 1 z = 1 Sheets("PrzeszukiwanyArkusz").Select While Cells(x, 1) <> "" y = 1 While Sheets("ListaSlow").Cells(y, 1) <> "" SzukaneSlowo = Sheets("ListaSlow").Cells(y, 1) If InStr(1, Cells(x, 5), SzukaneSlowo) > 0 Or InStr(1, Cells(x, 6), SzukaneSlowo)...
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ż...
[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]
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...
[syntax=vbscript] Dim Tmp As String On Error Resume Next For Each cell In Selection If Left(cell, 1) = "M" Then Tmp = "<nie znaleziono>" Tmp = Application.WorksheetFunction.VLookup(ce... Sheets("config").Range("A:B"), 2, False) If Len(Tmp) = 0 Then Tmp = "<brak nazwy>" cell.Offset(0, 4) = Tmp End If Next On Error GoTo 0[/syntax]
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...
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...
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:...
Spróbuj to [syntax=vb] Sub Porzadkuj() x = InputBox("Podaj datu", "Data przyporziadkowania", Date) If Not IsDate(x) Then Exit Sub x = DateValue(x) Dim nazwy As Range, d As Range With Sheets("pivot") Set nazwy = .Rows(3) Set d = .Cells.Find(x, LookIn:=xlValues) If d Is Nothing Then Exit Sub Set d = d.EntireRow.Cells For Each sh In ThisWorkbook.Sheets...
Przetestuj załączone rozwiązanie. Przed uruchomieniem należy: - Plik csv nazwać: "dane.csv" - Załączony skoroszyt zapisać w folderze, w którym znajduje się plik "dane.csv" U mnie cała procedura wykonuje się ok. 1 min. pozdrawiam andie
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 +...
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...
Witaj. Zakładając, że oryginalne dane na pierwszym arkuszu, a wynik na drugi: [syntax=vb]Sub upraw() Dim bsk As Range, bsr As Range Dim rb&, rd&, cd&, cm& Set bsk = ThisWorkbook.Sheets(1).Columns(1).Cells Set bsr = ThisWorkbook.Sheets(1).Range("B:J").Rows rb = 2: rd = 2 With ThisWorkbook.Sheets(2) bsk(1).Copy .Cells(1, 1): bsr(1).Copy...
Sprobuj takie makro - jest bardzo proste zaklada ze uruchamiasz je z arkusza Dane i ze tabelka w arkuszu Dane jest w tym samym miejscu co dales w przykladzie Sub test() Dim DaneX, DaneY, SpisX As Integer DaneX = 2 DaneY = 2 SpisX = 10 Do While Cells(DaneX, 1).Value <> "" Do While Cells(1, DaneY).Value <> "" If Val(Cells(DaneX, DaneY).Value)...
Przyczyną błędu jest tylko to, co napisał adams_nt : powinna być deklaracja typu jak poniżej: Ewentualnie program mógł by sprawdzić czy akrusz B jest otwarty, jeżeli jest nie otwierać go ponownie a jeżeli jest zamknięty otworzyć go. Założyłeś, że Twoje makro będzie kopiować z pliku B.xls aktualnie zaznaczony wiersz - ono nie otwiera pliku [ponownie]....
Tu jest szukanie ostatniego, niepustego ActiveSheet.Paste , to wcześniej powinieneś wybrać (Select) lewą, górną komórkę obszaru, lub cały, o tym samym rozmiarze zakres. Nie mam Twojego pliku docelowego, więc pisze wszystko "na czuja". Musisz analizować otrzymany "materiał do przemyślenia" i sygnalizować co, w której linijce nie działa prawidłowo.
A o tworze zwanym FileCopy(source, destination) Kolega słyszał? Jeżeli nie to proszę postudiować Google lub użyć tak jak napisałem. Ścieżki w całości.
O coś takiego chodzi? [syntax=vb]ost_wiersz = Worksheets("Arkusz2").Range("A" & Rows.Count).End(xlUp).Row Worksheets("Arkusz2").Range("A" & ost_wiersz + 1 & ":H" & ost_wiersz + 1).Value = Worksheets("Arkusz1").Range("A1:H1").Val... Worksheets("Arkusz1").Range("A1:H1").Cle...
Zmienna 'tblArkusze' jest tablicą przecież. Musisz w pętli [syntax=vbscript]For i = LBound(tblArkusze) To UBound(tblArkusze) With Sheets(tblArkusze(i)) .Cells.Clear .AutoFilterMode = False End With Next[/syntax]
A czy jest możliwość stworzenia makra, które po kliknięciu przycisku stworzy automatycznie arkusze dla wszystkich osób (i nada nazwy takie jak w pierwszej kolumnie tabeli tj. nazwisko i imię), a jeśli arkusz dla danych osób już istnieje, to je pominie. Można np tak: 968207
Dodano po 3 [syntax=vb]Sub Copy() For Each cell In Sheets(2).Range("A:A") If cell.Text = "" Then Exit For Rows(cell.Row & ":" & cell.Row).Copy Sheets(cell.Value).Cells(Rows.Count, 1).End(xlUp).Offset(1) Next End Sub [/syntax] tak dobrze
[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...
[syntax=vbscript]Sub Kopiuj() Set a = ActiveWorkbook i = Application.FileDialog(msoFileDialogOpen... s = Application.FileDialog(msoFileDialogOpen... Set b = Workbooks.Open(s) a.Sheets(1).Range("K20:M23").Copy b.Sheets(1).Range("K20") b.Close True End Sub [/syntax]
Zacznij z petli For Each c In Sheets(1).Cells.SpecialCells(xlCellTypeA...
Wygląda na to że bez zmian dla przykładu jeden wiersz a arkuszu Arka w którym sformatowałem ceny kolorem czerwonym: Sam chciałeś W nagranym przeze mnie makrze takie wklejanie daje taką linijkę kodu: Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats Niestety nie wiem czy można ja dopisać do Twojego makra. Niestety nie potrafię z kodu wychwycić...
Zmienit 'For i = 0 To nrep - 1' na 'For i = 1 To nrep - 1'
Masz świadomość tego, że żeby Ci przedstawić poprawny kod, to trzeba do testów stworzyć bazę z tabelami i formularzem? Może i to niedużo roboty, ale zawsze zajmuje czas... Akces, to nie tabelka w Excelu. Im dalej w las, tym więcej przed Tobą problemów i pytań, skoro taki prosty kod (skopiowany z sieci) jest dla Ciebie problemem. [syntax=vbscript]Private...
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 ;)
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.
Rozumiem, że arkusz z danymi do kopiowania jest w osobnym pliku.
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.
Czyli algorytm mniej więcej taki: 1. Wyszukujesz ostatni arkusz i zapamiętujesz jego nazwę w zmiennej tekstowej, np Src. Metoda wyszukania dowolna, arkuszy jest zwykle nie tak dużo, można przejrzeć w pętli wszystkie. 2. Tworzysz w zmiennej np Dst nazwę nowego arkusza i tworzysz arkusz z taką nazwą: Sheets.Add.Name = Dst 3. Kopiujesz dane z jednego arkusza...
Przerobiłem makro z innego wątku PRL - sprawdź czy działa Umieść makro w plik B"plik B.xlsx" PRL po dodaniu elementów z Twojego nagrywania.
Makro kopiujące wybrane komórki do nowej zakładki
w Arkuszu1 ustawiam automatycznie filtr na wartości równe 0 lub "Blanks" w kolumnie V i chciałbym aby makro automatycznie skopiowało wszystkie wiersze do Arkusz2. Wszystkie wiersze z tabeli czy wszystkie WYFILTROWANE wiersze z tej tabeli??
żeby kopiowało tak jak kopiuje ale bez otwierania np. zmiana1 i zmiana2 Makro działa w chwili otwarcia arkusza "podsumowanie". Wszystkie dane które były wprowadzone w zmiana1, zmiana2, zmiana3 makro kopiuje i wykasuje dane z arkuszy zmiana1, zmiana2, zmiana3. Jak w piątek nie otwierac "podsumowanie", dane pozostaną aż do poniedziałku, a raczej do czasu...
Może to Ci pomoże. Makro, dla podanej "szukana" przeszukuje każdy wiersz. Jeżeli znajdzie szukaną to kopiuje cały wiersz i przenosi do innego arkusza Dodano po 3 jeszcze raz bez zbędnych żeczy :) [syntax=vb]Sub Szukaj() Dim wiersz As Integer, kolumna As Byte, szukana As String, NumerWiersza As Integer Dim lastRow As Integer With ActiveSheet lastRow...
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...
Odwołaj się w pętli do arkusza źródłowego/docelowego przez Worksheets("nazwa_arkusza"), a po kropce do konkretnej komórki: albo w postaci .Range("E" & i) albo w postaci .Cells(i, 5), gdzie i - nr wiersza źródła (ew. jeżeli zrobisz w pętli for each c in ...., to możęsz użyć c.Row). Do tego druga zmienna np. j dla wiersza arkusza-celu, czyli: j = 1 for...
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.
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,...
[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...
Witam Workbooks.Add nowy=ActiveWorkbook.Name '....... 'tu kopiowanie a t.d. '........ Workbooks(nowy).Close False Ten kod w petli
A nie wystarczy zastosowanie filtrów w "Zeszyt1.xls"? W załączniku rozwiązanie z funkcjami wyszukiwania i kolumnami pomocniczymi. Przy otwarciu kliknij 'Edytuj łącza' i wskaż właściwy plik.
[syntax=vbscript]Sub DoBazy() kol = Application.Match([C3], Sheets("Baza").Range("A1:GR1"), 0) If Not IsError(kol) Then For i = 1 To 260 Worksheets("Baza").Cells(i, kol) = Worksheets("DoBazy").Cells(i, 3) Next i MsgBox ("Dane dla daty " & [C3] & " zostały skopiowane") Else MsgBox "Brak danych." End If End Sub [/syntax]
to makro do "zabawy" Dodano po 2 jeszcze dwie wersje.... Pierwsza ile_wierszy, to może być niemal dowolna liczba sprawdzonych wierszy , można wpisać nawet tyle ile wierszy ma cała kolumna (zależy od wersji Excela) Chodzi o to by nie sprawdzać całej kolumny bo to może potrwać.... Skopiowane zostaną tylko niepuste komórki. [syntax=vba] Sub copy_cells()...
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.
[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...
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....
W załączniku.
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...
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...
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...
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...
Nigdy nie programowałem w VBA, ale znalazłem takie coś, może okaże się pomocne. Jeżeli nie to poszukaj w sieci pod hasłami "vba copy rows" i podobnymi, pojawia się sporo wyników. The example codes will copy to a database sheet with the name Sheet2. Every time you run one of the subs the cells will be placed below the last row with data or after the...
Może tak: [syntax=vbscript]Sub Kopiuj() Dim i&, Ow& Application.ScreenUpdating = False Ow = Cells(Rows.Count, "A").End(xlUp).Row For i = 8 To Ow Step 5 Range("A" & i).Copy Range("A" & i + 3, "A" & i + 4) Next End Sub [/syntax] andie
No jak chcesz koniecznie kopować: Sub Kopio_aktyw_wiersza() ' ' Kopiowanie danych z aktywnego wiersza kol. A do D ' aktywny = Selection.Row kolumna = 1 ostatnia = Cells(Rows.Count, kolumna).End(xlUp).Row ' bez selekcji od razu kopiowanie wybranych komórek : Range(Cells(aktywny, 1), Cells(aktywny, 4)).Copy 'kopiowanie danych z aktywnego wiersza zakres...
[syntax=vbnet]Sub Makro1() Set toskopiowac = Selection.EntireRow Range(toskopiowac.Offset(1, 0), toskopiowac.Offset(Selection.Value - 1, 0)).EntireRow.Select Selection.Insert Selection.EntireRow = toskopiowac.Value End Sub[/syntax]
Makro w oddzielnom skoroszycie [syntax=vb]Sub wypelnienie() Dim rd&, rs&, bd As Worksheet, bsh As Worksheet rs = InputBox("Wprowadz numer wiersza danych", "Wiersz #?", 1) path_A = "d:\AAA\" path_B = "d:\AAB\" Set bsh = Workbooks.Open(path_B & "BAZA").Sheets(1) Set bs = Range(Cells(rs, 1), Cells(rs, 7)) plik = Dir(path_A & "*.xlsx") While...
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]
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...
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.
Plik ma mieć docelowo ok.200 wierszy, i 200 przyciskow?? Wystarczy jeden przycisk, który kopiuje zaznaczone wiersze (za pomocą myszy + Ctrl)
[syntax=vbscript]Sub Etykiety() Set a = Sheets("Arkusz1") Set b = Sheets("Arkusz2") For x = 2 To a.Cells(Rows.Count, "A").End(xlUp).Row b.Cells(2, 3) = a.Cells(x, 1) b.Cells(4, 3) = a.Cells(x, 2) b.Cells(6, 3) = a.Cells(x, 3) b.Range("A1:C8").PrintOut Next End Sub[/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...
Doczytałem jeszcze, że wszystko odbywa się w tym samym arkuszu. W takim przypadku musisz zagnieździć dwie pętle. Zewnętrzną Do...Until z inkrementacją wiersza, gdzie warunkiem będzie niepusta komórka i wewnętrzną For...Next również ze zwiększaniem indeksu wiersza. Taki szybki przykład "pisany na kolanie"[syntax=vb]wrs = 1 Do While Cells(wrs, 1) <>...
hmm...nie bardzo potrafie sobie z tym poradzic maybe some help?
makro kopiuj wklej makro kopiuj niepustych makro kopiuj zakres
airbag kasowanie renault scenic zawieszenie źródło stałoprądowe
pralka samsung zmywarkach amica
Naprawa lodówki zalanej wodą - nadmierne mrożenie Za duże ciśnienie powietrza w układzie Scania