[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]
Odpal takie makro [syntax=vb]Sub koko() r = 2 While Cells(r, 1) <> "" If Cells(r, 1) = Cells(r + 1, 1) Then Cells(r, 2) = Cells(r, 2) & vbLf & Cells(r + 1, 2) Rows(r + 1).Delete r = r - 1 End If r = r + 1 Wend End Sub [/syntax]
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
[syntax=vb]Sub doBazy() r = 1 With Sheets("raport") While .Cells(r, 1) <> "" rb = Application.Match(.Cells(r, 1), Sheets("baza").Columns(1), 0) .Cells(r, 2).Resize(, 5).Copy Sheets("baza").Cells(rb, 2) r = r + 1 Wend End With End Sub [/syntax]
bez komorek [syntax=vb] Sub Workbook_BeforeClose(Cancel As Boolean) FolderName = ActiveWorkbook.Path & "\ARCHIWUM\" If Dir(FolderName, vbDirectory) = "" Then MkDir FolderName f = Dir(FolderName & "Rejestr_napraw_form_*") While f <> "" fdt = FileDateTime(f) If fdt > dtm Then dtm = fdt f = Dir Wend If Now() - dtm < 7 Then Exit Sub...
Może przez szukanie w pętli z wykorzystaniem obsługi błędu. Np[syntax=vb]On Error Resume Next Do While Err = 0 kol = Rows(1).Find(what:="MSISDN", lookat:=xlWhole).Column kol = Rows(1).Find(what:="Kod Sprzedawcy", lookat:=xlWhole).Column Columns(kol).Delete Loop[/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...
[syntax=vb]Do While .Cells(i, 1) <> "" If .Cells(i, 1) < #5/1/2016# Then .Rows(i).Delete ' data w formacie "amerykańskim" i = i - 1 End If i = i + 1 Loop[/syntax]
Może jakoś tak: [syntax=vbnet] sub Test() dim Fn as string, Wb as object Fn=Dir("C:\twój katalog\*.xlsx") do while (Fn <> "") set Wb=Open(Fn) Sheets(2).Select Fn=Dir loop end sub [/syntax] Tylko otwiera plik i wchodzi do 2 zakładki, nic więcej nie robi.
wpisanie, na koniec makra, linijek z przypisaniem pustego tekstu Wstaw przed (bf.SetText "") w celu nieco opóźnić makro, aby mieć czas dla ^V (wklej) tt=Timer While timer - tt < 0.5: Doevents: Wend Dodano po 14 bf As MSForms.DataObject' właściwe podejście powinno być tak. Z innej strony DataObject jest tylko w włączonej referencji do Microsoft Forms...
Nagraj makro rejestratorem, otrzymasz kod gotowy do podpięcia, niemal bez przeróbek. Pamiętaj także o[syntax=vb] Do While ActiveWorkbook.Connections.Count > 0 ActiveWorkbook.Connections.Item(1).Delet... Loop [/syntax]bo po jakimś czasie nazbiera Ci się ich mnóstwo... P.S. Obrazek usuń z postu (jest zbędny), albo zastosuj się do instrukcji...
aaa.. Formuła nie może działać w tej samej komórce Można podzielić 1 kolumne na inne dwie - przed 'w' i po 'w' zmienić jednu kolumnu tylko makrem [syntax=vb]Sub kokos() Dim c As Range Set c = Cells(1, 1) While c <> "" p = Application.WorksheetFunction.Search("w"... c) c.Offset(, 1) = Mid(c, p) c = Left(c, p - 1) Set c = c.Offset(1) Wend End Sub...
[syntax=vbscript]Sub Dzialaj() Application.ScreenUpdating = False Dim Tekst As String Sciezka = "C:\PlikiExcela\" Tekst = "mój tekst" Plik = Dir(Sciezka & "\*.xls*") While Plik <> "" Call Wyszukaj(Sciezka & Plik, Tekst) Plik = Dir() Wend Set fso = CreateObject("Scripting.FileSystemObject... Set s = fso.GetFolder(Sciezka) For Each p In s.SubFolders...
[syntax=vb]Sub Powiel() x = 1 Z = 1 While Cells(x, 10) <> "" For y = 1 To Cells(x, 11) Cells(Z, 13) = Cells(x, 10) Z = Z + 1 Next y x = x + 1 Wend End Sub [/syntax]
Witaj [syntax=vb] Sub bombon() Dim zakr10 As Range Set zakr10 = ThisWorkbook.Sheets("Bombonierki").Range... r = 2 While Cells(r, 1) <> vbNullString If Application.Count(zakr10.Rows(r)) > 0 Then Cells(r, 1).Interior.ColorIndex = 6 End If r = r + 1 Wend End Sub [/syntax]
Coś takiego powinno zadziałać: [syntax=vbnet]Sub Makro1() Range("A2").Select While (ActiveCell.Offset(0, 6).Value <> "") If ((ActiveCell.Value = 5) Or _ (InStr(1, LCase(ActiveCell.Offset(0, 6).Value), "invoice", vbTextCompare) > 0)) Then ActiveCell.Offset(1, 0).Activate Else ActiveCell.EntireRow.Delete End If Wend End Sub [/syntax] Wymienione...
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)...
Przeszukaj katalog w pętli, z wykorzystaniem wbudowanej funkcji FileDateTime(ścieżka & nazwa_pliku) Poniżej napisane "na kolanie", ale powinno być coś w tym stylu [syntax=vbscript]katalog = "C:\Pliki Excela\" plik = Dir(katalog & "*.xls*") test2=filedatetime(katalog & plik) Do While plik <> "" test=filrdatetime(katalog & plik)...
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.
Chciałbym napisać makro No właśnie. Jeśli wiesz jak zajmie Ci to 5 minut. Chcesz się dowiedzieć, czy dostać gotowca (w takim przypadku wrzuć plik z przykładem)? Po mojemu trzeba zadziałać przy pomocy dwóch, zagnieżdżonych pętli, znając ilość kolumn (End(xltoright).column), Nr pierwszego wiersza z nazwiskiem i Nr pierwszego wiersza w arkuszu docelowym....
Witaj, Nie mam pomysłu na formułę, mam natomiast pomysł na proste makro, które mniej więcej robi to, co chcesz. Nie jestem najlepszym programistą VBA, ale w sumie na pierwszy rzut oka działa. [syntax=VB]Sub Makro1() ' ' Makro1 Makro ' Makro zarejestrowane 2011-04-16, autor Darek ' ' Kolumna A od wiersza 2 w dół zawiera działania ' W kolumnie B będą...
Och, aż tak skomplikowane toto nie jest ;) [syntax=vbscript]'przykład dla kopiowania w tym samym arkuszu z 1-szej do 11-tej Columns(11).ClearContents 'czyścimy dane w kolumnie docelowej Do While Cells(w, 1) <> "" temp = Split(Cells(w, 1), "||") For i = 0 To UBound(temp) If InStr(temp(i), "SAP") > 1 Then Cells(w, 11) = Cells(w, 11) & temp(i)...
Spróbuj [syntax=vb]Sub Makro2() Dim kom As Range, i As Integer, j As Integer For Each kom In UsedRange If kom.Value <> "" Then i = InStr(1, LCase(kom.Value), "<") Do While i > 0 j = InStr(i, LCase(kom.Value), ">") 'jeśli zabraknie ">", to zakoloruje do końca kom.Characters(i, j).Font.Color = vbRed kom.Characters(i, j).Font.Bold = True...
[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)...
Niestety nie zobaczę twojego pliku (pobieranie zabronione), ale mam dla ciebie materiał do przemyśleń: [syntax=vbscript] Private Sub testEl() Dim y As Long, i As Integer, V As Integer, v1 As Integer Dim Tb() As String y = 2 Do While (Cells(y, 1) <> "") Tb = Split(Cells(y, 1), " ") V = 0 For i = LBound(Tb) To UBound(Tb) Step 2 Select Case Tb(i...
[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=vb]Sub q() Application.ScreenUpdating = False Application.Calculation = xlManual Sheets("1").Select ow = Cells(Rows.Count, "A").End(xlUp).Row For X = 2 To ow i = Cells(X, 2) y = 0 While Cells(X + y, 2) = i y = y + 1 Wend y = y - 1 k = 5 Cells(X, 4) = Cells(X, 2) For Z = X To X + y Cells(X, k) = Cells(Z, 3) k = k + 1 Next X = X + y Next Application.Calculation...
Witam [syntax=vb] Sub podzial_pliku() Dim kol As String Dim wiersz As Integer Dim nazwa As String Dim ark As Worksheet kol = InputBox("Podaj litere kolumny na podstawie ktorej nastapi podzial plikow", "Pytanie") wiersz = InputBox("Podaj numer wiersza od ktorego zacznie sie podzial plikow", "Pytanie") Range(kol & wiersz).Select Set ark = ActiveSheet...
Prawie dobrze ;) Spróbuj: [syntax=vb]Sub Makro2() MyPath = "C:\magazyn\" myname = Dir(MyPath & "*.xls", vbNormal) rang = Array("D1:F10") 'tu dopisz ile trzeba ark = "Arkusz1" On Error Resume Next 'If ofs > -1 And Err = 0 Then With Sheets("Arkusz1") 'nazwa arkusza docelowego w UŻYWANE.xls For Each rn In rang .Range(rn) = Empty Next Do While myname...
Zakładając że w arkuszu 1 w kolumnie A kody nie są powtarzane oraz w arkuszu 2 i 3 tylko kody jak w arkuszu 1 [syntax=vb]Sub porownaj() Dim bd As Range Set bd = Worksheets("4").Cells Worksheets("1").Activate r = 1 While Cells(r, 1) <> "" rd = Application.CountA(bd.Columns(1)) + 1 Cells(r, 1).Resize(, 2).Copy bd(rd, 1) Cells(r, 3).Copy bd(rd, 5)...
[syntax=vbscript]Sub Sumujezeli() Application.ScreenUpdating = False Dim Sc As String, Plik As String, Co As String, KG As String, KW As String, x As Double Co = Sheets("Parametry").Cells(2, 1) KG = Sheets("Parametry").Cells(2, 2) KW = Sheets("Parametry").Cells(2, 3) Sc = Sheets("Parametry").Cells(2, 4) Plik = Dir(Sc & "*.xls*") While Plik <>...
Odpalac ze ZMIENNEGO [syntax=vb]Sub porownaj() Dim klas As String klas = "d:\klas.xlsx" 'tu dopasuj wg sciezki Dim kwb As Workbook Set kwb = Workbooks.Open(klas) ThisWorkbook.Activate r = Cells(Rows.Count, 1).End(xlUp).Row While r > 1 k = Application.WorksheetFunction.CountIf(kw... Cells(r, 1)) If k Then Rows(r).Delete shift:=xlUp...
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,...
Coś w tym stylu: [syntax=vbscript]Sub ImportujWybraneKomorki() Application.ScreenUpdating = False Dim Plik As String, Katalog As String, Wej As Workbook, Wyj As Workbook, KomWej As Integer Set Wyj = ActiveWorkbook Katalog = Sheets("Parametry").Range("A2") Plik = Dir(Katalog & "*.xlsx") x = Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row + 1 KomWej...
Podepnij pod przycisk coś takiego: Sub Makro1() x = 1 While Worksheets("Arkusz2").... 1).Value <> "" If Worksheets("Arkusz2").... 1).Value = Worksheets("Arkusz1").... Then Worksheets("Arkusz2")....
No cóż, opis nie jest bardzo czytelny, ale jeśli taki miał być efekt: https://obrazki.elektroda.pl/4588789900_... to kod, który to zrealizuje może wyglądać następująco: [syntax=vbscript] Sub FZ() r = 1 'kolejny sprawdzany wiersz (row) rstart = 0 'numer pierwszego w serii wiersza do którego wklejam wartości, jednocześnie numer wiersza...
Trzeba było od razu ;) Można zamiast instrukcji If zastosować pętlę Do [syntax=vb]Sub Makro1() Dim szukany As Variant, kom As Range Dim i As Integer, s As Integer szukany = Array("<html>", "</html>", "<head>", "</head>") For Each kom In UsedRange If kom.Value <> "" Then 'wyłączymy puste For s = 0 To 3 i = InStr(LCase(kom.Value),...
Spróbuj tej wersji: [syntax=vb]Sub Makro1() ' ' Makro1 Makro ' Makro zarejestrowane 2013-01-24, autor Darek ' ' Dim maxIndex, maxX, maxY, nextFree, tmp, x, q As Integer Range("A1").Select maxX = ActiveCell.SpecialCells(xlLastCell).Colu... maxY = ActiveCell.End(xlDown).Row maxIndex = Round(maxX / 2) Dim nazwy() As String Dim wartosci() As Integer ReDim...
Osobiście wolę korzystać z funkcji Dir . FileSerch potrzebuje referencji i lubi stwarzać problemy. Poniżej przykład z pętlą. Jeśli daty w nazwach są w stałym formacie można sobie ułatwić podstawiając dzisiejszą datę. Dla wczoraj będzie to Date-1, itd Oczywiście dla wielu plików przypisanie nazwy odbywać się będzie wewnątrz pętli bez wychodzenia, ale...
Moje rozwiązanie wyglądałoby jakoś tak: [syntax=vb] Sub Makro1() ' ' Makro1 Makro ' Makro zarejestrowane 2013-05-12, autor Darek ' ' Const S1 = 8 ' najmniejszy przedział Const S2 = 16 ' sredni przedzial Const S3 = 32 ' najwiekszy przedzial Const D1 = 3 ' tolerancja sredniej najmniejszego przedzialu Const D2 = 5 ' tolerancja sredniej sredniego przedzialu...
czyli aby bylo 21111 10 aaa 5 bbb 3 ccc 2. Nie wiem czy takie cos jest mozliwe Hmmm, teraz już będzie trudniej ;) Na szczęście Excel i VBA oferują coś a'la tabelki przestawne. Zmień zapytanie SQL na Sql = "TRANSFORM [SIGN] & "" "" & Sum([hours]) " & _ "SELECT [Activity],...
Hej. Jak dla mnie widzę tu tylko makro w Excelu. Niestety programista ze mnie kiepski, więc coś tam próbowałem wymyślić, jednak nie gwarantuję, że będzie działać idealnie. [syntax=vb]Sub Makro1() Const MaxR = 20 ' maksymalna ilość powtórzeń If ((Selection.Rows.Count < 2) Or (Selection.Columns.Count < 2)) Then MsgBox "Zaznacz obszar, na którym...
Pozwoliłem sobie trochę przetestować :) Moje wnioski: Przeniesienie kolumny pomocniczej (rozwiązanie marek003) do ark "Baza danych" do kol D i korekta formuł w ark "ABC" =JEŻELI(CZY.BŁĄD(INDEKS('Baz... danych'!A:A;PODAJ.POZYCJĘ($B2;'B... danych'!$D:$D;0);1));&qu... danych'!A:A;PODAJ.POZYCJĘ($B2;'B...
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] Sub mySplit() Dim bs As Range, mar() As String Dim r&, i&, n&, x$, xx$ Dim p&, pd&, ps&, pw&, lmi&, pn&, px&, pf&, pe&, sl& Const dig = "0123456789" Set bs = Sheets("dane").Range("b:g") r = 2 While bs(r, 1) <> vbNullString x = bs(r, 1): n = 0 If bs(r, 1).MergeCells Then n...
Usuń duplikaty ani tabela przestawna tu się nie przyda bo dochodzi warunek że usuń gdy puste ale nie gdy puste w Re_3 Stworzyłem w sumie proste makro (ono tylko tak wygląda) Pierwsza część kodu przepisuje wszystkie linie mające to samo zlecenie. Później następuje sortowanie. Następnie warunek sprawdza czy (w moim przypadku coś1) się powtarza jeżeli...
[syntax=vb]Sub Cpy() Set Src = ThisWorkbook.Worksheets("Arkusz1") Set DstA = ThisWorkbook.Worksheets("Arkusz2") Set DstB = ThisWorkbook.Worksheets("Arkusz3") S = 1 A = 1 B = 1 While Src.Cells(S, 1) <> "" If Src.Cells(S, 2) <> "" Then DstA.Cells(A, 1) = Src.Cells(S, 1) A = A + 1 Else DstB.Cells(B, 1) = Src.Cells(S, 1) B = B + 1 End If S =...
Formuła działa super i bardzo płynnie pomimo kilku arkuszy. Dziękuje bardzo za pomoc. Poprzednio próbowałem zastosować formułę [syntax=vbscript]=UNIKATOWE(SORTUJ(HIPER... ale ona powoduje, że działają hiperłącza ale dla wszystkich przesortowanych części powtarza to samo jednakowe hiperłącze więc...
widzę na pewno, że w moim makrze muszę poprawić to, żeby mi excel nie dopisywał do kolejnych wierszy wcześniej zaznaczonych komórek Dodano po 41 Albo myślałam o tym, żeby użyć delete, czyli jak już mi skopiuje to może łatwiej by było usunąć te wiersze których nie potrzebuje (tylko jak to zrobić, żeby usunął dokładnie te, na których mi zależy bez określania...
Bardzo dziękuję za pomoc. Działa. Już resztę sobie ogarnąłem. Odznaczam temat jako rozwiązany ;) Dzięki! Dodano po 2 Dla potomnych działający kod oparty na komórkach i folderach pokazanych wyżej: Sub Kopiuj_Świadectwa_Zamki_Bezpieczeństwa() kz = "Z:PROJEKTOWYŚwiadectwa podzespołów dźwigowych1 - Zamki bezpieczeństwa" kd = Range("O5") kn = Range("F5")...
excel while arduino while instrukcja while
pralka whirpool reset hamulec silnika kosiarki elektrycznej schemat podłączenia żarówek
Opór 70 Ω w grzałce 3x2 kW - czy to prawidłowe? Łomotanie w kominku z płaszczem wodnym - przyczyny i rozwiązania