Kod z załączonego pliku ma błąd logiczny, bo po przejściu przez wybór zmienna pk_select_case ma wartość, która nigdzie dalej nie jest wykorzystana. P.S. Mój kod działa, ale jest bez sensu właśnie ze względu, który opisałem. Powinno być tak, jak napisałeś [syntax=vbscript]this.Cells(i, 9) = "SEC"[/syntax]
Najłatwiej za pomocą kwerendy do arkusza Excel SELECT * FROM `F:\ATS\Ats 1.xlsx`.`Arkusz1$` `Arkusz1$` WHERE (`Arkusz1$`.DataZ <= Date()) AND (`Arkusz1$`.DataZ >= Date()-2) DataZ - jest naglowek kolumny(data) wg ktorej chcesz dane
Coś takiego? [syntax=vb]sSQL = "SELECT * FROM odbiorcy WHERE [" & wyszukaj & "] = '" & wyszukaj_nazwa & "' " [/syntax]
Dim i As Integer i = ActiveCell Range("C6") = i Aby ustawić komórkę jako aktywną: Range("A2").Select
Jaky format w A1? Sprobuj Sheets(Range("A1").Text).Select
[syntax=vb]Range("Arkusz2!C4").Select[/s...
Podmień [syntax=vb]Range("A2:A500").Select[/synt... na [syntax=vb]Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row).Select[/syntax]
[syntax=vb]For i = 3 To 31 Select Case i Case 3 To 7, 12 To 27, 30, 31 '[dzialanie] End Select Next [/syntax]
Jeden wyżej, czyli r-1 po prostu ;) [syntax=vbscript]If c > 5 And r > 1 Then Range(Cells(r - 1, c - 5), Cells(r, c - 1)).Select[/syntax]
[syntax=vbscript]i_row = 6 Set rng1 = Worksheets("Arkusz1").Range("D1:D" & i_row & ",H1:H" & i_row) rng1.Select[/syntax]
wyskakuje ten sam błąd w piątej linijce kodu: Range("E2").Select Jest to właśnie wynikiem wtłoczenia wszystkich poleceń do podprocedury "CommandButton1_Click". Chodzi o to, że wszystkie wywołania obiektów, bez jawnej deklaracji przynależności, odnoszą się do obiektu bieżącego, z którego są wywoływane, to swego rodzaju "dziedziczenie". Jeśli np. wywołujemy...
Użyj metody [url=https://msdn.microsoft.com/en-us/li... [syntax=vb]Union(Range("a2", Range("a2").End(xlDown)), Range("c2", Range("c2").End(xlDown))).Select[/syntax...
Na pewno błąd jest w wierszu: [syntax=vbscript]Progresywne = Progres + Progres[/syntax] Nie zachowujesz dotychczas obliczonych składników, tylko ostatni pomnożony przez 2. Powinno być: [syntax=vbscript]Progresywne = Progresywne + Progres[/syntax]Nie wykluczam, że mogą być też inne błędy, ale do dokładnej analizy potrzebny jest załącznik w pliku.
Z czym dokładnie masz problem? Nie napiszemy całego skryptu za Ciebie. Pokaz, co już masz, a wtedy doradzimy. Kolumnę zaznacza się tak: [syntax=vb]Columns(2).Select[/syntax]
.. Nie wiem jak zmienić w pierwszej części programu aby kopiował z innego arkusza... [syntax=vb] Sheets("Arkusz1").Select Range("G20").Select Selection.Copy Sheets("Arkusz2").Select Range("G20").Select ActiveSheet.Paste[/syntax]
(at)maciejgonet Zaciekawiło mnie Twoje rozwiązanie. Pozwoliłem je sobie uprościć i wyszła jedna linijka. [syntax=vbscript]Sub Zaznacz() Range("A1:D" & Columns("A:D").Find("*", SearchDirection:=xlPrevious).Row).Select End Sub[/syntax]
[syntax=vbscript]Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 3 Then Cells(Target.Row + 1, 1).Select End Sub [/syntax]
To ten sam problem, co w przypadku copy-paste. Jesteś w kodzie arkusza i musisz kod przenieść do modułu, lub w tym przypadku co najmniej podawać nazwę obiektu nadrzędnego Range, Cells, Shapes, itp Sheets("Menu").Select Sheets("Menu").Range...
Może to być Range("C3").Select
Problem w tym że nie odróżniasz nazwy pliku od samego pliku: [syntax=vbscript]Sub OpenClose() ChoiceFileName = Application.GetOpenFilename("Excel-files... 1, "Select One File", , False) If ChoiceFileName = False Then Exit Sub Dim wBook As Workbook Set wBook = Workbooks.Open(Filename:=ChoiceFileName, AddToMru:=False) Application.Wait (Now + TimeValue("0:00:05"))...
Nie wiem czy dobrze rozumiem, bo jakoś dziwnie to napisałeś, ale wydaje mi się, że potrzebujesz zmienić aktywną komórkę. [syntax=vbnet]ActiveCell.Offset(1, 0).Select[/syntax]
W kodzie arkusza działa prawidłowo. Może spróbuj po wartości zamiast po długości:[syntax=vb]ItemNo = XlApp.Worksheets(1).Cells(LastRow, 1) Konf_o = Val(Right(ItemNo, 3)) Konf_n = Konf_o + 1 Select Case Konf_n Case 1 To 9 Konf_n_s = "00" & Konf_n Case 10 To 99 Konf_n_s = "0" & Konf_n Case Else Konf_n_s = trim(Str(Konf_n)) End Select[/syntax]
W wybranej w sensie we wskazanej w kodzie? [syntax=vba] Range("A1").Select ActiveCell.Value = ActiveCell.Value + 1[/syntax]
Witam Mam kod programu w którym występuje coś takiego [syntax=vb] Range("C2:" & "J" & LastW).Select 'LastW - to ostatni nie pusty wiersz w określonym zakresie Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False [/syntax] kod prosty, można rzecz standardowy...
Problem polega na tym, że potrzebuję właściwie wskazać zakres do skopiowania https://docs.microsoft.com/pl-pl/previou...
Private Sub Worksheet_Change(ByVal Target As Range) Dim Komorka As Range If Not Application.Intersect(Rows(5), Range(Target.Address)) Is Nothing Then For Each Komorka In Target.Cells Select Case Komorka.Value Case "TAK": . . . End Select Next End If End Sub
Co masz na myśli pisząc "karta"? Dla arkuszy skoroszytu można zagnieździć kod w kolejnej pętli For ark = 1 to thisworkbook.sheets.count ' lub liczbowo indeksy Np 2 To 4 sheets(ark).select 'kod Next
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 ;)
Range("k:k") Range(k:k) - bez "" Dodano po 10 Przepraszam za błąd, winno być np.: Rows(k).Select
Potrzebujesz jeszcze podstawić Nr kolumn. Zapis: Range(Cells(wiersz,kolumna),Cells(wiersz... Oczywiście tak: p = "A" & 1 k = "B" & 15 Range(p, k).Select lub: p = 1 k = 15 Range("A" & p, "B" & k).Select też działa.
Select txtcol, count(txtcol) from tabela group by txtcol Oops, zapomniałem, w Excelu ma być... a to jednak nie baza danych.
A jak to makro uruchamiasz, przyciskiem, skrótem? Wystarczy: [syntax=vbscript]Sub qq() Dim r As Range Set r = Range(ActiveCell, ActiveCell) Range("A1").Select MsgBox "Wybrałem A1." Range(r, r).Select MsgBox "Wybrałem poprzednią komórkę." End Sub [/syntax]
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...
Albo tak: :D [syntax=vbscript]ActiveSheet.ChartObject... 2").Activate ActiveChart.ChartArea.Copy Range("B18").Select ActiveSheet.Paste ActiveSheet.Shapes(ActiveSheet.Shapes.Co... = "Chart 3"[/syntax]
Ten plik działa prawie poprawnie. Jedyne, co mi się rzuciło w oko to brak nazwy magazynu na arkuszu. Powód: Range("J1").Select ActiveCell.FormulaR1C1 = x Range("H1:M1").Sel... "x". Wyszukiwanie arkuszy OK.
Może coś takiego: [syntax=vb] Sub ukryjWiersze() Dim i As Integer Dim selRange As String For i = 60 To 70 selRange = "A" & i If range(selRange).Value = 0 Then range(selRange).Select Selection.EntireRow.Hidden = True End If Next i End Sub [/syntax]
a da sie zrobić ze po zeskanowaniu/wpisaniu w zółtym polu numeru narzędzia wprowadzany numer zniknie zeby nie trzeba bylo kasować recznie? Czytnik nadpisze wartość, ale jeśli musi być... Dopisz sobie po '.Select' '.Value=""': [syntax=vbscript] Else MsgBox "Nie ma w bazie" End If .Select .Value = "" 'to tutaj End If[/syntax]
A cóż to ma być: Range( "n+1:n+1" ).Select ? ;)
Po pierwsze, nie sprawdzaj czy jest aktywna komórka w kolumnie "C" - jeśli ma być tam aktywna to ją uaktywnij bez sprawdzania, np. Application.WorksheetFunction.CountA(Col... , o ile kolumna jest ciągłą i nie zawiera przerw, to pierwszym wierszem z wolną komórką będzie o 1 większy niż zwróci to funkcja tzn. [syntax=vb]wiersz=Application.WorksheetF...
Podepnij sobie następujący kod pod przycisk i przetestuj [syntax=vb]Dim lLstRw& Dim sLiczba$ lLstRw = Cells(Rows.Count, 7).End(xlUp).Row Select Case lLstRw Case Is = 1 Cells(lLstRw, 7).Offset(1, 0).Value = Cells(2, 3).Value & "_xyz_1" Case Is = 2 Cells(lLstRw, 7).Offset(1, 0).Value = Cells(2, 3).Value & "_xyz_10" Case Is > 2 sLiczba = Mid(Cells(lLstRw,...
Musisz jakoś wskazać z którego arkusza chcesz usunąć dane. Excel (makro) to nie jasnowidz. Albo ustawisz stałą nazwę abo jak radził kolega walek wykorzystasz indeks arkusza (lub jego nazwę w VBA) Czyli zastąp Sheets("1").Select Sheets(2).Select (ale wtedy arkusz z którego usuwamy musi być drugi w kolejności) lub Arkusz2.Select (Arkusz2 to nazwa obiektu...
.. jednak na coś mnie naprowadziłeś okazało się tylko że zamiast usuwać wiersz po stworzeni wydruku muszę go nadpisać nowym może być ctrlC,ctrlV .. Nie naprowadziłem, ale dokładnie Ci o tym napisałem :) Arkusz z poprzedniego posta ma nawet przycisk po ktorego nacisnieciu wykonuje cala operacje. A jak zamienisz pod przyciskiem na ten poniżej, to będziesz...
Np. coś takiego. [syntax=vbnet] Sub Makro1() Dim i As Integer Columns("F:F").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove Range("E1").Select i = 0 Do While IsEmpty(ActiveCell.Offset(i, 0).Value) = False ActiveCell.Offset(i, 1).Value = "=right(E6,6)" i = i + 1 Loop Columns("F:F").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues,...
(...) przesunięcia zakresu DataRangeOBAYield o 7 wierszy w prawo dla każdego z dwóch zakresów (...) Chodzi o wiersze w dół, czy kolumny w prawo? Można zastosować InputBox, gdzie wpisywane będzie przesunięcie: 0 - B1:H1,B31:H31 1 - o siedem wierszy/kolumn w z góry upatrzoną stronę itd, jeśli jest taka potrzeba Zmienną obiektową masz zadeklarowaną......
1) Lista musi mieć ciągły zakres. Najlepiej wykorzystać do tego osobny arkusz. Trochę można zautomatyzować (patrz załącznik). Założyłem, że nazwa firmy w Arkusz1 występuje co 13 wierszy. 2) W przykładzie wykorzystałem VBA (Select Case) i ukrywanie/odkrywanie wierszy 3) j.w.
Przez przypadek wyłączyłem jedną linię kodu. Usuń pierwszy apostrof z tej linii: 'Worksheets("dane").Select
Na przykład druga linijka w instrukcji With [syntax=vbscript].Range(Selection, .cells(3000, Selection.Column)).Select [/syntax] Albo inaczej: [syntax=vbscript]Selection.Resize(3001 - Selection.Row).Select[/syntax]Z tym, że instrukcji Select możesz używać tylko w arkuszu aktywnym.
A nie lepiej zamiast trzech przycisków w każdym arkuszu byłoby zrobić jeden przycisk w arkuszu "lista" uruchamiający mechanizm pobierania danych ze wszystkich pozostałych arkuszy? Druga kwestia, że do takiej operacji to nawet nie trzeba makra, wystarczy MSQuery i następująca kwerenda: [syntax=sql]SELECT * FROM [1$] UNION ALL SELECT * FROM [2$] UNION...
Ja sprawdziłam na Excel 2010 i też jest dobrze. Może jednak w tej nieistotnej Twoim zdaniem części coś nie hula? Na marginesie - nie lepiej ten Select zastąpić Activate?
Wpisać w cudzysłowach te słowa. Function test(k, m) Select Case True Case k > 38 And m < 35 test = "slowo1" Case k > 38 And m > 34 test = "slowo2" Case k < 39 And m < 35 test = "slowo3" Case k < 39 And m > 34 test = "slowo4" End Select End Function
Musisz napisać instrukcję warunkową If...Then...Else, lub Select Case. Coś na wzór, jak w załączniku. Formatowanie warunkowe nie obejmuje tego typu obiektów...
Jeżeli wszystkie arkusze, to: [syntax=vbscript]Sub Zaznacz() For x = 1 To Sheets.Count Sheets(x).Select False Next End Sub [/syntax] Jeżeli tylko do n-tego, to zamień Sheets.Count na 'a'.
[syntax=vb]ActiveWindow.VisibleRange(1, 1).Select[/syntax]
Witam, chyba raczej chodzi ci o excel'a - prawy przycisk myszki, select co cie interesuje (np.kolumne) i wybieramy Hide. Pozdrawiam
O wiele prościej i elastyczniej masz tu: [syntax=vb]Function Zlozonosc(Wartosc As Integer) As String Wartosc = Int(Wartosc) Select Case Wartosc Case 0 Zlozonosc = "niemożliwe" Case 1 To 2 Zlozonosc = "niska" Case 3 To 4 Zlozonosc = "średnia" Case 5 To 6 Zlozonosc = "wysoka" Case Else Zlozonosc = "brak" End Select End Function Function Zakres(Wartosc...
Do czego to służy: [syntax=vbscript]Selection.End(xlDown).S...
Zdaje się, że kolega Aldrin wskazuje dobry kierunek. Zginiesz z tymi checkboxami :) Proponuję pętlę sprawdzającą stan ukrycia kolumn, przypisanie argumentów w bloku Select Case i właściwa pętla działająca na kolumnach. Przykład w załączniku.
Witaj And (MyWorksheet.Name <> "RAZEM") = dla wszystkich arkuszy niezależnie od ich ilości, z wyjątkiem arkusza RAZEM 2. plik = Application.GetOpenFilename("File excel ,*.xls*", , "Select file") drugie okienko utworzyć formularz z pola listy lub pola kombi i wypełnienie listy nazwamy arkuszy
Zamiast wybierać kolumnę "B:B" wpisz Range("B1:B5).Select.
Cudów nie ma. komenda_SQL = "SELECT * FROM Test.Baza ORDER BY Nazwa ASC" W Akcesie stosuję: [syntax=vbscript]Me.ListBox1.RowSource = rs [/syntax] Myślę, że w Excelu też się da.
[syntax=vbscript]Sub Niepuste() Sheets("Arkusz1").Select ow = Cells(Rows.Count, "A").End(xlUp).Row For x = 1 To ow If Left(Cells(x, 1), 13) = "Pomieszczenie" Or Cells(x, 1) <> "" And Cells(x, "F") > 0 Then y = y + 1 Rows(x).Copy Sheets("Arkusz2").Cells(y, 1) End If Next Sheets("Arkusz2").Select End Sub [/syntax] Masz błąd w nazwie pomieszczenia...
Trzeba dopisać do kodu jedną linijkę i zakończenie instrukcji warunkowej (bo już nie zmieści się w 1 linijce): [syntax=vb]Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Intersect(Target, Range("I:I")) Is Nothing Then Exit Sub If Target = 2 Or Target = 3 Then Range("J" & Target.Row & ":AP" & Target.Row) = 0 Range("AQ" & Target.Row).Select...
Przycisk w arkuszu? Umieść procedurę w module standardowym jakoś ją nazywając Np "Sub Kodzik". W kodzie przycisku wpisz tylko wywołanie Call Kodzik
Takie proste makro (można też nagrać): [syntax=vb] Range("A6:A16").Select Selection.FormatConditions.Delete [/syntax]
A ja do tej pory myślałem, że do zaznaczania komórek w VBA służy: [syntax=vb].Select[/syntax]
Przypisz do każdego z przycisków odpowiednie makro [code][syntax=vbscript] Private Sub CommandButton1_Click() n1 = Range("N1").Value 'napisz formule if '=JEŻELI(N1>8;"STR. 1/5"; (JEŻELI(N1>6;"STR. 1/4";(JEŻELI(N1>4;"STR. 1/3";(JEŻELI(N1>2; "STR. 1/2"; "STR. 1/1"))))))) Dim text As String text = "str.2" & "/" & n1 Range("G3").Select ActiveCell.FormulaR1C1...
wolałbym jednak zrobic to w excelu kombinuje ze zdarzeniem change i offset target.offset(1,0).select kiluk
[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 =...
Nie wiem, czy to w ogóle możliwe. Zmienna nie jest obiektem, w związku z tym nie ma właściwości (interesująca nas name ) i może mieć tylko wartość. Żeby nie "zaśmiecać" sobie głównej procedury napisałbym funkcję, w której umieściłbym wszystkie możliwe nazwy zmiennych z przypisanymi wartościami i wybierał przez Select Case. Np Sub test() Dim...
otwiera się Arkusz 2 zaznaczając pustą komórkę kolumny B (ewentualnie dodaje nowy pusty wiersz) Patrząc na załączony plik nie mogę zrozumieć w jakim celu chcesz zrobić to makro :?: :cry: Jeśli chcesz szybko weryfikować odniesienia do arkusza 2 to najprościej proponuję makro w arkuszu 1 :spoko: : [syntax=vbscript]Private Sub Worksheet_BeforeDoubleClick(ByVal...
Albo filtry i select, copy, paste.
[syntax=vbscript]ActiveSheet.Unprotect Password:="xxx" Rows("10:46").Select Selection.EntireRow.Hidden = False Range("B16").Select[/syntax]
Nagraj to makro i przypisz do przycisku. Przycisk wiesz jak zrobić? Wiesz jak przypisać makro do przycisku? Makro powinno wyglądać mniej więcej tak: [syntax=vb]Sub aktualizuj() ' aktualizacja danych z zakresu A1 Range("A1").Select Selection.QueryTable.Refresh BackgroundQuery:=False End Sub [/syntax] .. ewentualnie we właściwościach danych zewnętrznych...
Spróbuj odwoływać się do tabel w takiej postaci: W związku z tym, że każda baza to inna firma, a ja chciałbym zagregować te dane (połączyć) i razem je analizować. Jakbym połączył je i miał w jednej tabeli/widoku to mógłbym je sobie już dowolnie analizować. No nie tak dowolnie. Z pewnością są tam jakieś klucze obce. W widoku się to nie utrzyma, więc...
[syntax=vb] Sub Link() Dim x As Long, Adres As String x = 1 While Cells(x, 1) <> "" Adres = Cells(x, 1) Cells(x, 1).Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _ "http://www." & Adres, TextToDisplay:=Adres x = x + 1 Wend End Sub [/syntax]
Selection.TickLabels.Orientation = 90 [syntax=vbscript] .Axes(xlCategory).Select ' With Selection.Format.TextFrame2.TextRange.Fo... With Selection.TickLabels.Font .Name = "Calibri" .Size = 9 .Bold = True End With Selection.TickLabels.Orientation = 90[/syntax]
Tym razem, to nie jest taki sam przypadek. Poniższy kod działa. [syntax=vbscript]Sub RunSELECT() ThisWorkbook.Names.Add "Xy", Sheets("ABC").Range("A1:A8") Set cn = CreateObject("ADODB.Connection") With cn .Provider = "Microsoft.ACE.OLEDB.12.0" .ConnectionString = "Data Source=" & ThisWorkbook.Path & "\" & ThisWorkbook.Name & ";" & "Extended Properties=""Excel...
Arkusz kalkulacyjny nie jest efektywnym środowiskiem programistycznym. Formuły liczone są dużo szybciej niż interpretowany kod. Zamiast makra w F1 użyj formuły =MATCH(A1,A5:A10)+4 Resztę czytam i nie rozumiem, o co chodzi (ze skanowaniem, rysunkiem I, zaznaczaniem, wklejaniem, kopiowaniem tabel). Sorry. Może łatwiej będzie napisać, jaki cel chcesz osiągnąć,...
[syntax=vbnet]Function WiekSlownie(Wiek As Integer) As String Select Case Wiek Case 1 w = "rok" Case 2 To 4 w = "lata" Case 5 To 21 w = "lat" Case Is > 21 j = Right(Wiek, 1) If j = 2 Or j = 3 Or j = 4 Then w = "lata" Else w = "lat" End If End Select WiekSlownie = w End Function [/syntax] P.S. To ma być po czesku?;)
Mnie te makra nie zawiesiły Excela ani razu, ale testowałem je na wersji 2007 i 2010. Być może problem jest spowodowany przez połączenie wklejania danych ze schowka z wstawianiem komórek. Jeśli formatowanie komórek nie ma znaczenia i kopiowane są stałe (tak to przynajmniej wygląda w przykładowym pliku), to może zrezygnować z kopiowania na rzecz przypisywania...
Range("AM1").Select a nie Range("B5").Select ??
Lub [syntax=vbscript]Range("A2:H" & Cells(Rows.Count, 1).End(xlUp).Row).Select[/syntax]
Użyj prostszego polecenia i się nie męcz: [syntax=sql]select ... from table1 A,table2 B where A.Id=B.Id[/syntax]
Witam, mam mały problem z poniższym makrem - dokładnie ze zmienna2 Chcę aby na podstawie zadeklarowanej komórki (rodzaj_kredytu) excel automatycznie wypełnił wiersze w dół: 1. w przypadku rat równych lub malejących miesiącami 2. W innym przypadku dniami Niestety zawsze wypełnia mi dane dniami. Czy ktoś może zerknąć co robię źle? [syntax=vbscript] Dim...
Spróbuj z InputBox'em: [syntax=vb]w = 14 ile = Int(InputBox("Ile?", "Wpisz liczbę całkowitą", 3)) If ile < 1 Then Exit Sub Application.ScreenUpdating = False Range("A16:V29").Copy For i = 1 To ile Range("A" & 16 + w).Select ActiveSheet.Paste w = w + w Next Application.CutCopyMode = False Application.ScreenUpdating = True[/syntax]
W miejsce 'Sheets("Sheet2").Select' umieść wstawianie arkusza (Sheets.Add) i nadanie nazwy (Activesheet.Name). Jeśli wartości w kopiowanych komórkach nie są unikatowe, musisz najpierw sprawdzić czy arkusz z taką nazwą istnieje.
A orientujesz się może czy można zrobić tak żeby po zeskanowaniu zamiast potwierdzenia ENTER, przenosiło mnie do wskazanej komórki gdzie od razu mógłbym wpisać ilość, tzn. skan --> automatyczne przeniesienie do kolumny ilość --> ręczne wpisanie ilości i po naciśnięciu enter przejść od razu do kolumny kodu, wiersz niżej, tak żeby skanować kolejny produkt....
Szczerze - jeżeli plik urósł do takich rozmiarów, że przeszukiwanie stało się zauważalnie wolne, to proponuję przenieść dane do bazy danych, choćby Accessa. Do tego one są. Ewentualnie rozwiązanie, które często stosuję w takich przypadkach: ADO.NET, połączenie się z samym sobą, potraktowanie zakładki jako tabeli w bazie danych i wybieranie danych odpowiednio...
Spróbuj z Select Case .
Zaciągnięte kiedyś z sieci: [syntax=vb]Function PlikIstnieje(NazwaPliku As String) As Boolean lngResolveTimeout = 500 lngConnectTimeout = 500 lngSendTimeout = 500 lngReceiveTimeout = 500 strtesturl = "http://moj.pl/" & NazwaPliku Set objHttpRequest = CreateObject("MSXML2.ServerXMLHTTP") With objHttpRequest .SetTimeouts lngResolveTimeout, lngConnectTimeout,...
Nie ma problemu - zmienimy pętlę warunkową na zwykłą. Na marginesie, jak widać w twoim załączniku, numery pisma przy "anulowaniu" dokumentu też są usuwane. Najpierw sprawdzimy ile jest wierszy, a potem pętlą będziemy sprawdzać czy wiersz nie był już skopiowany i czy ma numer zadania. Jeżeli tak to go przerzuci, jak nie "pójdzie" dalej. (taki wiersz...
[syntax=vb]Sub Podziel() Application.ScreenUpdating = False Sheets("Data").Select ow = Cells(Rows.Count, "A").End(xlUp).Row ok = Cells(1, Columns.Count).End(xlToLeft).Column pp = Cells(2, 1) For x = 2 To ow If Sheets("Data").Cells(x + 1, 1) = pp Then Sheets("Data").Select Sheets.Add.Name = Sheets("Data").Cells(x, 1) Exit For End If Sheets("Data").Select...
- w zależności od wersji offica musza się dodac odpowiednie wersje biblioteki outlooka Najprościej wykorzystując 'Application.Version'. [syntax=vbscript]'Excel 97 = 8.0 'Excel 2000 = 9.0 'Excel 2002 = 10.0 'Excel 2003 = 11.0 'Excel 2007 = 12.0 'Excel 2010 = 14.0 'Excel 2013 = 15.0 Select Case Application.Version Case "12.0" MsgBox "Office 2007" Case...
[syntax=vbscript]Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$10" Then Application.EnableEvents = False Range("A11:B" & Cells(Rows.Count, "A").End(xlUp).Row).ClearContents ow = 5 ok = Cells(1, Columns.Count).End(xlToLeft).Column x = Target.Row + 1 For k = 1 To ok Set a = Range(Cells(1, k), Cells(ow, k)).Find(Target, LookIn:=xlValues,...
Mała poprawka: [syntax=vb]Range("a1:a20,b1:c6,b14:c20,d...
Użyj MSQuery i następującej kwerendy [syntax=sql]SELECT * FROM (SELECT * FROM [Sheet1$] UNION ALL SELECT * FROM [Sheet2$]) WHERE lp >0[/syntax]
Ok przeoczyłem ten set a jest tu 'myCSVFileName = myWB.Path & "\" & "ZAPAS.csv"', więc musi być 'Set myWB' ps. zobacz teraz [syntax=vbscript]Sub ZapasCSV() With Application .ScreenUpdating = False .EnableEvents = False End With Sheets("ZAPAS_CSV").Select Dim myCSVFileName As String Dim myWB As Workbook Dim tempWB As Workbook Dim rngToSave As Range Application.DisplayAlerts...
Makro przygotowane w Excelu 2003 (ale powinno działać): Sub Makro1() For a = 3 To 8 'te arkusze bierze pod uwagę Sheets(a).Select If Range("J1") > 0 Then ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True End If Next End Sub
No to już tylko makro. Np takie Sub Wpisz_Jest() Columns("A:A").Sel... On Error Resume Next wiersz = Selection.Find(What:=Range(&... After:=ActiveCell, LookAt:=xlWhole).Row Cells(wiersz, 3) = "Jest" Cells(1, 2).Select End Sub Możesz je umieścić w kodzie arkusza...
Super, ułożenie poleceń w jednej linii zadziałało poprawnie. Rozwiązanie znacznie przyśpieszyło, przez zastąpienie select Dziękuję bardzo
motorola select input select alias select
logitech wzmacniacz uszkodzony wyłącza subwoofer aktywny wykorzystanie zasilacza drukarki
światłowód inwestycje mikrokomputer cobra1
Wsad pamięci do TV Blaupunkt B23a207BBKE048 Schemat elektryczny lodówki Samsung RS7768FHCSL