Makro które usunie wiersz pod warunkiem z innej zakładki
Spróbuj takiego makra: [syntax=vbscript]Sub Powielanie() Dim ile As Long, w As Long w = 1 Do With Cells(w, 2) ile = .Value .ClearContents .Offset(1, -1).Resize(ile - 1, 2).Insert xlShiftDown .Offset(0, -1).Resize(ile, 2).FillDown w = w + ile End With Loop Until Cells(w, 2) = vbNullString End Sub[/syntax] Makro działa w arkuszu aktywnym zgodnie z przedstawionymi...
Już chyba załapałem z tą numeracją. Samo znalezienie kombinacji to nie problem. Większym problemem jest ustalenie kolejności wg "twoich" zasad. Dodane o jakimś czasie ----------------------------------------... Gdyby chodziło wyłącznie o nr wiersza w którym jest dana kombinacja to tak jak w przykładzie poniżej. Jednak ty dodatkowo określasz kolejność...
ten musi C9 =SUMA(ADR.POŚR("$C$8:C"&(WIERSZ()-1)))
sprawdź . .
Też nie pisałem pod Googla, ale jest możliwość nagrywania makr, a to już dużo. Na przykład: [syntax=objc]function Makrobeznazwy() { var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange('B4').activate(); spreadsheet.getCurrentCell().setValue('1... spreadsheet.getRange('B7').activate(); spreadsheet.getRange('B5').copyTo(spread...
ale "Jelczan" prosił o makro Aaa, to najprościej oprogramować zdarzenie (co sugerował już kolega PRL ), Np [syntax=vbscript]Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("a2:a100")) Is Nothing Then If Target = "" And Target.Offset(0, 1) <> "" Then Range(Target, Target.Offset(0, 10)).Interior.ColorIndex = 6...
Myślałem, że Pan odkładanie z powrotem swój kod [syntax=vb] Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) 'Step 1: Declare Variables Dim strRange As String 'Step2: Build the range string strRange = Target.Cells.Address & "," & _ Target.Cells.EntireColumn.Address & "," & _ Target.Cells.EntireRow.Address...
Wszystko działa płynnie do momentu włączenia funkcji udostępniania arkusza (w tradycyjnej formie, Excel 2016). Mimo na pulpicie, ale piszesz że wszystko jest ok do momentu udostępnienia, Zrób to samo z maluśkim i większym plikiem. I się sam przekonaj udostępniając. Kiedyś znajomy nauczyciel zapisał cały arkusz excel i po czasie był zdziwiony że nie...
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...
Dodatkowe kolumny z Łączenie A & B & C Tam zastosować podaj pozycie
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 ;)
Sprawdź więc (nie korzystałem z twojego przykładu): 903122 Wielkość liter ustawiona na stałe "MatchCase = True". Wyszukiwanie dokładne lub przybliżone określane w okienku dialogu, szukana fraza również. Drobne opisy działania w kodzie.
Wklej w kod arkusza :[syntax=vb]Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) = "C47" Then If LCase(Target.Text) = "przelew" Then 'Przelew, PRZELEW, przelew Rows("48:49").EntireRow.Hidden = False Else Rows("48:49").EntireRow.Hidden = True End If ElseIf Target.Address(0, 0) = "C47:E47" Then 'jeśli pusta też ma odkrywać to...
Było. Poszukaj w archiwalnych tematach. [syntax=vbscript]Sub UsunWiersze() For x = 100 To 49 Step -1 a = Cells(x, "B") If a <> "" And a = 0 Then Rows(x).EntireRow.Delete Next End Sub[/syntax]
Propozycja makro łączącego komórki tak jak chciałaś. Makro wykorzystuje dane z kolumn H i I, zastępuje formuły w komórkach scalanych. Usuwa formuły w kolumnie J (aby umożliwić modyfikację danych w razie potrzeby). Nie ingeruje w formatowanie warunkowe, które było już ustawione w arkuszu. Makro jest zapisane w module uniwersalnym. Działa w arkuszu aktywnym....
Masz dwa przykłady, wybierz sobie pasujący lub skoryguj pod własne potrzeby. 912573 Przyjrzyj się nazewnictwu przycisków, ale nie temu na samych przyciskach, tylko ich nazwom kodowym - w nazwie każdego z nich znajduje się nazwa tabeli, której dotyczy - to identyfikator: 912574
[syntax=vbscript]For y = 1 To ile - 1[/syntax]
coś takiego ci chodziło [syntax=vb]Sub Makro1() Range("I1:I10").FormulaR1C1 = "=RC[-8]" Range("K1:K10").FormulaR1C1 = "=RC[-8]" End Sub[/syntax]
Poproś kogoś innego.
Chyba o to chnodzilo: http://office.microsoft.com/en-us/word-h... Zobacz na: /mmacroname
Jesli dane jest w kolumnie 1, wtedy [syntax=vb]For r = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1 If (r Mod 3) <> 0 Then Rows(r).Delete Next [/syntax]
Skoro nagrało Ci się coś w rodzaju 'ActiveCell.FormulaR1C1 = "=TODAY()' to dopisz pod spodem 'ActiveCell = ActiveCell.Value' i po sprawie. To samo "bardziej po Bożemu": ActiveCell = Date Zamiast ActiveCell może być oczywiście dowolny Range(adres) lub Cells(wiersz, kolumna).
Sprobuj takie makro [syntax=vb]Sub sortgodz() With ActiveSheet.UsedRange .Sort key1:=.Columns(4).Cells(1), header:=xlYes Set bt = .Find("Zast") r = Cells(Rows.Count, 4).End(xlUp).Row + 1 Rows(bt.Row).Cut Rows(r).Insert shift:=xlDown End With End Sub [/syntax]
...lub gotowca... [syntax=vb]Option Explicit Sub kopiujZakres() Dim r% Dim cRange As Range, pRange As Range r = ActiveCell.Row Rows(r).Insert Shift:=xlUp Set cRange = Range(Cells(r - 1, 1), Cells(r - 1, 7)) Set pRange = Range(Cells(r, 1), Cells(r, 7)) cRange.Copy Destination:=pRange Rows(r).Interior.Color = 65535 Cells(r, 3) = "1579x" End Sub[/syntax]...
[syntax=vbscript]Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$C$2" Then Application.ScreenUpdating = False nw = Sheets("Baza").Cells(Rows.Count, "A").End(xlUp).Row + 1 Range("A2:C2").Copy Sheets("Baza").Cells(nw, 1).PasteSpecial xlPasteValues Range("A2").Select Application.CutCopyMode = False Application.ScreenUpdating =...
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??
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.
Oj rzeczywiście. Na próbce ~2000 wierszy makro, na mojej maszynie (przed uruchomieniem należy usunąć dane z kolumny B/Arkusz1), potrzebuje... mnóstwo sekund. Twój pomysł, zdaje się, przedni. "Poruszając się" od ostatniego wiersza w górę, po posortowanej kolumnie, makro działa jakby, hmm... nieco szybciej. Tu porównanie czasów: http://obrazki.elektroda.pl/9019467800_1...
With Arkusz1 jest dobrze, to jest nazwa kodowa arkusza. Na pierwszy rzut oka błędu nie widać. Ale nie widać też w którym wierszu ten błąd się pojawia. Wykonaj program krokowo i po ustaleniu miejsca błędu wykonaj jeszcze raz, zatrzymując się przed błędem i sprawdź wtedy co zawierają poszczególne zmienne. Np. Jaką wartość ma zmienna SelRow?
[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...
Moja propozycja: jedna para przycisków +/- i przypisane do nich makr: [syntax=vb]Sub wstaw() Rows(ActiveCell.Row + 1).Insert shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Cells(ActiveCell.Offset(1, 0).Row, "H").FormulaR1C1 = "=R[-1]C" End Sub[/syntax] i [syntax=vb]Sub usuń() Rows(ActiveCell.Row).Delete shift:=xlUp End Sub[/syntax] Przed przyciśnięciem...
nie, tutaj: FILTR = Cells(Wiersz, 2)
wrs = Range("A2:D2").End(xlUp).Row + 1 'co to ma robić? Skoro od drugiego wiersza w górę, to... pokazuje pierwszy wiersz :) Uparcie drepczesz w miejscu. Na czym wysypuje się makro z postu #16?
Makro super tylko w tym przypadku zostawiło mi tylko kwoty z "5.00". Usuwa tylko w przypadku, gdy: 2. W kolumnie A nie ma kwoty "5.00" Jeśli w kolumnie A jest kwota 5.00 to pozostawi nietknięty wiersz niezależnie od całej reszty. Jeśli ma być inaczej to musisz lekko przeredagować warunki. Załóżmy, że sa możliwe 4 sytuacje. 1) kwota inna niż 5.00 oraz...
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...
Jest to zrobione makrem zdarzeniowym Worksheet_Change, reagującym na zmianę wartości w komórkach B9:D9. Makro jest w module arkusza, w którym jest formularz. Treść makra: [syntax=vbscript]Private Sub Worksheet_Change(ByVal Target As Range) If Target(1).Address = Range("f_rodz_nieruchomosci").Address Then Rows("33:76").Hidden = True With Worksheets("Legenda")...
Jak nie będziesz w stanie działającego rozwiązania dopasować do swoich potrzeb to nigdy niczego nie napiszesz.
Sprawdź załączony plik.
Pewnie pierwsze dane masz w drugim wierszu, u mnie był w 3, zamień: For k=3 na For k=1 (sprawdzanie od pierwszego wiersza). Makro sprawdza kolumnę B od dołu, widocznie są u Ciebie jakieś puste wiersze ... Jeżeli wiesz ile masz komórek w kolumnie B do sprawdzenia wpisz na sztywno (3500 to ilość wierszy) : zamiast: For k = 3 To Cells(Cells.Rows.Count,...
Fakt. I przed Rows też. To dlatego, że dodałem tego with'a już po napisaniu kodu i wtedy ktoś mnie zajął czymś innym, a potem musiałem już lecieć i tak zostało. Dlatego nie lubię pisać przykładów, zawsze coś/ktoś przeszkadza.
Cześć. A może coś więcej bo na razie z informacją jest oszczędnie? Jak zablokowany (włączona ochrona)? Najprostszym sposobem jest go makrem odblokować, ukryć/odkryć wiersze i zablokować (też makrem) na nowo. Do odblokowania służy: [syntax=vbscript]Sheets("Arkusz").Unprot... Blokuje natomiast: [syntax=vbscript]Sheets("TMP").Protect[/...
wyszło zupełnie inaczej niż we wzorze Mówisz zupełnie inaczej. A co konkretnie? Nie wstawił wiersza 4 (Twojej tabeli 3). Nie przeniósł daty z C3 do C4? Nie zsumował D2 i D3 w D4?
Sprawdź, czy o to chodziło andie
jest inna, a w 3 wierszu: w kolumnie G - mimo to zaznaczyłeś je na żółto O! No właśnie :) To samo w wierszach 9:12, etc...
[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]
Dołącz przykladowy plik
W każdy przebiegu pętli zanim zaczniesz zaznaczać wiersze. Inaczej skąd program ma wiedzieć, że chcesz zaznaczać w innym arkuszu?
(at)maciejgonet Dzięki wielkie za pomoc! Miałbym jeszcze tylko pytanie co do działania całego makra. Czy da się z niego wyeliminować zapisywanie w historii sytuacji kiedy ktoś dodaje nowy wiersz? Makro oczywiście wtedy działa tak jak powinno i zapisuje zmiany, czyli zapisuje np. 16000 pustych komórek które zostały dodane przez wstawienie nowego wiersza....
Spróbuj zamienić Rows(i).Hidden = True na Rows(i).Delete = True I przetestuj na kopii dokumentu... Powinno być: Rows(i).Delete Przy czym po usunięciu wiersza indeks 'i' nie powinien być zmieniany
Jeszcze jedno pytanko Wszystko działa tak jak trzeba tylko czy jest możliwoć żeby po znalezieniu takich przypadków kopiowany był cały wiersz?
[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]
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,...
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...
Witaj [syntax=vb] Sub InsSubtot() Dim bs As Range Set bs = ThisWorkbook.Sheets(1).Cells Dim r&, rp& ow = bs(Rows.Count, 8).End(xlUp).Row r = 2: rp = 2 While bs(r, 8) <> Empty r = r + 1 If bs(r, 8) <> bs(r - 1, 8) Then bs.Rows(r).Insert bs(r, 5) = "SUMA" bs(r, 6) = Application.Sum(Range(bs(rp, 6), bs(r - 1, 6))) bs(r, 5).Resize(1,...
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]
[syntax=vb]Private Sub Worksheet_Change(ByVal Target As Range) If ((Target.Row - 27) Mod 4) = 0 Then Target.Offset(1).Calculate End Sub [/syntax]
Na obrazku efekt działania makra. Dane wejściowe z załącznika. Sprawdź, czy o to Ci chodzi (liczby w kolumnach D i F są sumowane). http://obrazki.elektroda.net/17_12597370...
[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)...
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
Offsetem Panie, offsetem, Np Selection.Offset(-1, 0).Select Trzeba by najpierw sprawdzić, czy to możliwe, Np If Selection(cells(1,1)).row >1 then
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...
idat wpisywane recznie, na poczatku nowej I zmiany, lub gdy juz potrzeba wpisac dane I zmiany(nowej). wtedy kasuje sie tabela I, II, III zmiany. Makro dodaje nowy wiersz ze wpisana data. Dane w 'Tabela zapisu ' gotowe kazdy raz, jak byly zmiany w itab
Przykładowe makro w załączonym pliku. Należy przygotować dane. W wierszu, który zostanie zaznaczony będą wyniki (płace brutto). W dwóch wierszach poniżej formuły obliczeniowe. W trzecim wierszu poniżej oczekiwane płace netto. Należy zaznaczyć pierwszy wiersz na wyniki i kliknąć przycisk "Wyniki".
Nie wiem co tu może nie działać, skoro działa: [syntax=vbscript]Sub aaa() Dim lLstRw& Dim rngTmp As Excel.Range lLstRw = Cells(Rows.Count, 3).End(xlUp).Row Set rngTmp = Range(Cells(2, 2), Cells(lLstRw, 2)) rngTmp.FormulaR1C1 = "=RC3&RC7" End Sub [/syntax] , ale jeśli "nie działa" to spróbuj tego poniżej: [syntax=vbscript]Option Explicit Sub con_cata_in_er()...
Może makro napisać co przeszukuje komórki.
[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 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]
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...
Ten plik, który pokazałeś jako wzór ma zupełnie inną strukturę i raczej trudno go dopasować do Twojego nowego pliku. Szkoda, że nie ma w nim żadnych danych, żeby zweryfikować czy formuły kopiują się poprawnie. Poza tym nie wiem, czy tak jak w pliku wzorcowym istotne jest wstawianie wierszy, czy wystarczy samo kopiowanie. W pliku wzorcowym były podsumowania,...
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
w przykładzie zeszyt3 [syntax=vb]Sub Wstawianie_wierszy() Dim i As Long, OstWrs As Long OstWrs = Cells(Rows.Count, 1).End(xlUp).Row 'ile wierszy Application.ScreenUpdating = False For i = OstWrs To 2 Step -1 If Cells(i, 1) <> Cells(i - 1, 1) Then Rows(i).Insert Next i Application.ScreenUpdating = True End Sub[/syntax] A tu kod z nazwą - ale nie...
zdecydowanie początkujący Ale pomoc podręczna mimo wszystko jest dostępna ... :-) A z tym poniżej, jak działa ? [syntax=vba]Option Explicit Private Sub Workbook_Open() Dim ark As Worksheet For Each ark In ThisWorkbook.Worksheets(Array("Inne", "Beton, pompy", "Stal", "Elementy murowe i zaprawy", "Kruszywa", "Szalunki", "Sprzęt", "Żurawie", "Kontenery",...
Zmienit 'For i = 0 To nrep - 1' na 'For i = 1 To nrep - 1'
było by super Co było by? Testowalem Twój kod na XL2007 i XL2003 (inne nie mam) - wszystko dziala poprawnie
Dopisałem definicję formatowania warunkowego w VBA. Formatowanie odtwarza się automatycznie przy otwieraniu skoroszytu. Szerokość zakresu formatowania jest określona przez zawartość trzeciego wiersza w każdym arkuszu. Wiersze zakresu formatowania są ustalone na stałe. Skoroszyt nie może zawierać innych formatowań warunkowych. Gdyby zawierał, trzeba...
Wygląda mi to na jakieś "kombinowanie" i, znając życie, nie będzie to działało tak, jak chcesz - bo zaistnieją jakieś warunki, których teraz nie przewidzisz, ale tak na szybko można próbować takim makrem, jak w załączniku. Cała "sztuka" to dodawanie / usuwanie wierszy od końca, żeby zakres się w pętli nie przesuwał. Usuwanie zakłada, że usuwasz wiersze,...
W załączniku.
Nie jest całkowicie skrot, reprezentuje nazwę obiektu w skoroszycie, Np for each bbb in ActiveWorkbook.Sheets 'colection sheet in workbook bbb .Cells(1,1)="Witaj" next
No tak... W #1 jest Cells(2, 3), czyli C2. Ja użyłem C3, a w ostateczności Ty użyłeś C1.;)
[syntax=vbscript]Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Column = 1 Then Application.ScreenUpdating = False w = Target.Row Set a = Sheets("Arkusz2") nw = a.Cells(Rows.Count, "A").End(xlUp).Row + 1 Range(Cells(w, "A"), Cells(w, "D")).Copy a.Cells(nw, "A") Range("E" & w).Copy a.Cells(nw, "E").PasteSpecial...
takie zadanie dostałem A są wakacje. [syntax=vbscript]Const w As Long = 8 Sub Ukryj() If Cells(w, 1).EntireRow.Hidden Then For x = w To 1 Step -1 If Cells(x, 1).EntireRow.Hidden = False Then Cells(x, 1).EntireRow.Hidden = True Exit Sub End If Next Else Cells(w, 1).EntireRow.Hidden = True End If End Sub Sub Odkryj() For x = 1 To w If Cells(x, 1).EntireRow.Hidden...
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:...
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...
jak zrobic ,by wycial ten z zaznaczona komorka i znalazl pierw szy wolny wiersz Proponuję przeanalizować podobne (archiwizujące :D ) makro z postu :idea: https://www.elektroda.pl/rtvforum/viewto...
Podstaw pod argument Source - jest typu string... 1. znajdź ostatni wiersz i przypisz do zmiennej: ostW =Range("A" & rows.count).end(xlup).row jeśli nie ma nic "pod spodem" lub ostW =Range("A3").end(xldown).row jeśli kolumna A jest zawsze pełna. Jeśli nie, wybierz inną - pełną (bez dziur) 2. podstaw zmienną do string'a ... SourceData:= _ "Arkusz1!R4C1:R"...
[syntax=vb]Range(Cells(lOstRw, 12).Offset(1, 0), Cells(lOstRw, 19).Offset(1, 0)).FormulaR1C1 = "=SUM(R[-" & lOstRw & "]C:R[-1]C)"[/syntax]
To całkiem inne zagadnienie, wogóle nie związane z tematem i bardzo prościutkie [np. za pomocą wyszukaj.pionowo()] ale załóż własny temat. (bo jak między innymi podziękujesz za pomoc???)
Aktywny 'arkusz2' [syntax=vb]r = Application.CountA(Columns(1)) + 1 While r > 2 n = Application.CountA(Rows(r - 1)) - 2 For nr = 1 To n Rows(r).Insert Cells(r - 1, n - nr + 3).Cut Cells(r, 2) Next r = r - 1 Wend [/syntax]
Poprawiony Twój kod (używając jednej zmiennej 'ow');): [syntax=vbscript]Columns("H:H").Select Selection.Copy Workbooks.Add Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False ActiveWorkbook.SaveAs Filename:= _ "C:\Users\imie.nazwisko\Desktop\WYSYŁKA MASOWA\Lista.csv",...
Zobacz teraz: [syntax=vb] Public Blokada As Boolean Sub Przesun(Wiersz As Integer) Dim a As Integer For a = 7 To 0 Step -1 ActiveSheet.Cells(Wiersz, a + 9 + 1).Value = ActiveSheet.Cells(Wiersz, a + 9).Value Next a ActiveSheet.Cells(Wiersz, 9).Value = Null If ActiveSheet.Cells(Wiersz, 17).Text <> "" Then ActiveSheet.Cells(Wiersz, 18).Insert Shift:=xlToRight...
Witam arekkrasnal pozwolę sobie zmodyfikować twoje makro [syntax=vbnet]Sub Makro1() Dim temp As Variant Dim wiersz As Long wiersz = 1 Do While Cells(wiersz, 8) <> "" If Cells(wiersz, 8).Value = 0 Then Cells(wiersz, 10).Cut Destination:=Cells(wiersz, 15) End If wiersz = wiersz + 1 Loop End Sub[/syntax]
Co do zasad pisania kodu Jak już deklarujesz zmienne to powinieneś deklarować wszystkie. Zapomniałeś o zmiennej "mnoznik" i chyba błąd w nazwie zmiennej lastcell x Jeżeli potrzebujesz liczby całkowitej skorzystaj z operatora "\" a nie "/" lub z Fix(liczba) Czyli mnoznik = lastcell \ 10 + 1 lub mnoznik=Fix(lastcell / 10 + 1) Co do pętli niby założyłeś...
Ale o której wersji piszesz, tej pierwszej z funkcją PRZESUNIĘCIE, czy tej drugiej ze STOS.PION, czy o obu? U mnie ta druga działa poprawnie, a pierwsza faktycznie wymaga otwarcia pliku, bo funkcja PRZESUNIĘCIE wymaga, żeby plik był otwarty. Przesyłam jeszcze zmodyfikowaną wersję pierwszego pliku z funkcją INDEKS zamiast funkcji PRZESUNIĘCIE. Funkcja...
Ok. Zrozumiałem. napisałem małe makro dla zakresu i pętlą sprawdzanie. plik w zalączeniu. kod: Option Explicit Sub ZakresPetla1() Dim wiersz As Long For wiersz = 19 To 30 Step 1 Do While Cells(wiersz, 2).Value = Range("E16").Value Range("F16").Copy Cells(wiersz, 3).PasteSpecial wiersz = wiersz + 1 Loop Next End Sub
Jeśli dobrze zrozumiałem, chodzi o "wyszukiwarkę" dodającą wybrane pozycje do kolejnych wierszy. Wtedy w grę wchodzi proste makro. Przykład w załączniku.
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...
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.
Nagraj makro.
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...
makro wyszukaj wiersz makro ukryty wiersz makro wyszuka wiersz
rozebrać pompa twingo kontrolka silnik rozruchowy danfoss
naprawa stacji zasilania stacja zasilania
Pioneer SX-P720 - brak dźwięku, cichy szum w głośnikach Wymiana płyty głównej w smartfonie Motorola