Makro do przetestowania. Uwagi: 1. Najlepiej wrzucić kod do modułu "normal.dotm". Najprościej: otworzyć Worda z menu 'Start', nagrać dowolne makro wybierając miejsce przechowywanie "szablon globalny". Następnie zastąpić je poniższym, włączyć referencje i zamknąć Worda z zapisem szablonu. Makro będzie dostępne w każdym dokumencie. Żeby nie rozsyłać makra...
Cześć :) Proponuję tak: 1. Najpierw pętlą wyświetlić nazwy we fragmentatorze (lub numery pól żeby wiedzieć że np. pole 1 to "kogut" pole 2 to "kaczka" itd. ) 2. Odwołać się do konkretnej nazwy w konkretnym fragmentatorze i ustawić jej właściwość selected na true lub false (w zależności od tego czy chcesz zaznaczyć czy odznaczyć daną opcję) Kod wyglądałby...
[syntax=vb]Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 11 Or Target.Column = 15 Then For Each c In Intersect(Target, Columns(Target.Column)) If LCase(Cells(c.Row, Target.Column).Value) <> "withdrawn" Then If c.Interior.ColorIndex = 44 Then Range(Cells(c.Row, 1), Cells(c.Row, 15)).Interior.ColorIndex = 4 End If If Not...
Witam, z reguły staram się wyczerpać źródła mi dostępne,ale w tej sytuacji... nie wiem nie potrafię ogarnąć tematu. Ogóle założenie jest dość proste, w recordset mogą być rekordy, które mogą być kolejno takie same ( ten sam produkt), ale mogą też być różne po czym np. znów może pojawić się ten sam produkt np: Przykład: 1 Cola 20 2 cola 20 3 fanta 10...
Potrzebuje pomocy. Potrzebuje makra, które zrealizuje mi coś takiego - otwiera automatycznie dwa dokumenty - jeden jako dokument xls drugi jako txt. To mi działa. Chciałbym aby z pliku txt z komórki A2 szukał jej w pliku xls po komórkach A i jeżeli znajdzie pasujący wynik to wklei zawartość w pliku txt do xls ale od kolumny B. Prawda jest taka, że nie...
Lub bardziej "topornie": [syntax=vbnet]dim x as Byte x=0 If Range("$E$4") > 0 Then MsgBox "b jest uruchamiane" x=x+1 End If If Range("$F$4") > 0 Then MsgBox "c jest uruchamiane" x=x+1 End If If Range("$N$4") > 0 and x<2 Then MsgBox "d jest uruchamiane" End If If Range("$O$4") > 0 and x<2 Then MsgBox "c jest uruchamiane" x=x+1 End If...
Trzeba wrzucić to w pętlę. Jak znajdzie robi warunek PRAWDA Jak nie znajdzie to w warunku FAŁSZ wyświetla Msgbox i kończy działanie
Mały przykład [syntax=vb]Sub Petla() Dim licznik As Integer, ile As Integer ile = 500 'ile = Range("E1") Do While licznik < ile licznik = licznik + 1 test = Cells(licznik, 1) Loop MsgBox licznik End Sub[/syntax]
Możesz wykorzystać taki schemat kodu z pętlą. Szczegóły sobie dopasuj. Z obrazka trudno kopiować, a załącznika nie dałeś. [syntax=text]Sub Okno_w_petli() Dim nplik As Variant Do nplik = Application.GetOpenFilename("Wszystkie pliki (*.*), *.*", , "Wybierz plik") If nplik = False Then If MsgBox("Nie wybrano pliku." & vbLf & "Masz ostatnią szansę."...
Chyba złapałem. Moim zdaniem nie powinna to być procedura zdarzeniowa, a zwykłe makro. Jeśli chodzi o coś takiego: http://obrazki.elektroda.pl/4353087600_1... Spróbuj w ten sposób For Each kom in zakres .
Przed pętlą wstaw jakąś zmienną typu Integer i ustaw ją na zero. W pętli, tam gdzie wykonujesz akcję na znalezionym wierszu (np. kolorowanie) dodaj do tej zmiennej jeden. A na końcu sprawdź IFem, czy wartość jest równa zero. jeżeli tak, to wtedy wyświetl MsgBox.
Nie wystarczy po prostu: [syntax=vbscript] a = Application.Match(Target, w.Range("A1:A" & ow), 0) If IsError(a) Then MsgBox "błąd kasowania", vbExclamation, "nie można usunąc Etykieta nie była wprowadzona " Application.EnableEvents = True w.Protect Password:=Pass Exit Sub End If 'błędu nie było, no to lecimy dalej w.Rows(a).Delete[/syntax] Trochę nielogiczne...
Urządzenie nie wysyła żadnego sygnału dopóki nie zostanie naciśnięty przycisk na urządzeniu. Myślałem żeby przerwać pętlę po naciśnięciu strzałek na klawiaturze lub kliknięciu myszką Ok, to daj przed pętlą zapytanie. [syntax=vbscript]If MsgBox("wciśnij przycisk na urządzeniu", vbYesNo) = vbNo Then Exit Sub Do Loop Until MSComm1.InBufferCount >= 9 [/syntax]...
OK. Przed pętlą For wklej: w sytuacji gdy dla któregoś wiersza dane znajdują się w którejś z kolumn H:J ale jednocześnie nie jest wypełniona kolumna E lub G Jeśli jest inaczej, trzeba to zrobić w pętli, sprawdzając każdy wiersz z osobna. Edit rano ;) Np czymś takim: [syntax=vbscript] For w = 8 To 40 If WorksheetFunction.CountA(.Range("E" & w &...
Dołóż pętlę sprawdzającą przed tą kopiującą. Jeśli jest nieprawidłowo, przerwij. Np [syntax=vbscript]Dim b As Boolean For wrs = 9 To 49 If WorksheetFunction.Sum(Range("BG" & wrs & ":BJ" & wrs)) > 0 And Range("BK" & wrs) = "" Then b = True Exit For End If Next If b Then MsgBox "proszę uzupełnić dane w wierszu " & wrs, vbExclamation, "kopiowanie anulowane"...
Oczywiście problem rozwiązałem "półautomatycznie" przez kod w vb net: [syntax=vbnet]Dim str As String = "Select NrEwidKontrahenta, Max(DataWstawienia) AS OstatData FROM KONTRAHENCI GROUP BY NrEwidKontrahenta" Dim da As New OleDb.OleDbDataAdapter(str, cnn) da.Fill(ds) petla: For i = 0 To ds.Tables(0).Rows.Count - 1 ' ComboBox1.Items.Add(ds.Tables(0).Rows(i)...
w naszej pętli zamiast MsgBox wystarczy podstawić Razem byłoby coś takiego Sub petla() For i = 2 To Range("D2").End(xl... For j = i To Range("D2").End(xl... If Cells(j, 4) <> Cells(j + 1, 4) Then Exit For 'porownanie w kol D indeks 4 Next i = j 'żeby nie od...
Cześć, Mam w jednym pliku kilka arkuszy o różnych nazwach. Chcę wydrukować tylko te arkusze, które spełniają mój warunek, te arkusze które nie spełniają warunku mają zostać pominięte do drukowania. Na razie mam kod, który drukuje wszystkie arkusze do pdf, ale baza się rozrasta i nie chciałbym drukować wszystkiego. Jeden arkusz to jeden plik pdf. kod,...
Wstaw sobie licznik wewnątrz pętli przed End If (licznik=licznik+1) i komunikat umieść warunkowo za pętlą ( If licznik>0 then msgbox... ).
Trochę "posprzątałem" po rejestratorze, wstawiłem co niezbędne, wywaliłem co niepotrzebne i wyszło coś takiego Private Sub CommandButton1_Click() Dim x As String, y As String Dim i As Integer For i = 0 To 10000 x = Range("J2").Offset(... + i, 0) y = Range("J2").Offset(... + i, 1) If x = ""...
No, ale tak zaprogramowałeś (polecenie GoTo) ;) Powinno być (schemat) wewnątrz pętli -wyłączenie obsługi błędów (on error resume next) - przy każdym kroku -wyszukiwanie -sprawdzenie stanu i warunkowe kopiowanie (If err=0 then ... ) Włączenie za pętlą (On error goto 0) lub (książkowo) [syntax=vb]Sub Porownaj() Sheets("Arkusz2").Select ow = Cells(Rows.Count,...
Sposobów na rozwiązanie tego problemu jest kilka - tylko te bardziej wydajne mogą być trudniejsze do zrozumienia / zapamiętania dla kogoś początkującego. Dlatego poniżej najprostszy przykład, z pętlą (w zasadzie dwoma): najprostszy, ale i najmniej wydajny... Dla małej ilości danych powinien działać OK. Pytaj, gdyby coś było niejasne. [syntax=vb]Private...
PRL Wywaliłem RS poza pętlę (zupełnie nieświadomie wpisałem go w pętlę) i dodałem do testów MsgBox'a. Błąd przypisania wartości z listy nie zniknął, ale pojawił się dodatkowo błąd 3219. Zauważyłem, że jest on cykliczny - 2 wybory bez błędu, 2 z błędem. Opis błędu wskazuje na odwołanie do właściwości tylko do odczytu albo do niemającej zastosowania....
Nie robiłeś dokładnie "tak", bo w kodzie masz After:=Workbooks("wczyt.xlsm"), co jest składniowo bez sensu: "wstaw nowy arkusz za plik wczyt.xlsm". Ja tylko dodam, że składnia [syntax=vb]ActiveSheet.Copy After:=Workbooks("wczyt.xlsm").Sheets(Sh... nie zadziała jak trzeba, bo po otwarciu pliku, jak w przykładzie, aktywnym jest nowootwarty...
Był ostatnio temat [url=http://www.elektroda.pl/rtvforum/to... w którym maglowanych było kilka rozwiązań. Kod jest logiczny i łatwy do zaadoptowania. Fakt, nie ma tam nic o podfolderach. Do pierwszego poziomu można "dobrać się" Np w ten sposób [syntax=vb]Sub Lista1() Dim path1 As String, path2 As String, plik As String Dim folder As...
Hej, Mam prośbę o pomoc. Mam plik z makrem, który wskazuje folder, w którym znajdują się wszystkie dokumenty z których musze pobrac dane. Wszystkie dokumenty są zaszyfrowane z tym samym hasłem "1111". Dane muszę pobrac z zakładki, która jest veryhiden "do exportu" zakres komórek od j3 do bf3 Planowane działanie makra: 1) wskazuję folder gdzie znajdują...
nie mam zainstalowano VB .NET, przed 'label1.text = tlumacz(TextBox1.Text)' wejść MsgBox TextBox1.Text i zobaczyć, co będzie ile Pan współpracuje z VB .NET? można rozpocząć coś prostszego?
Chodzi o Nr wiersza? Wypróbuj takie coś: [syntax=vbscript]w = 2 max = 1000 Do While Cells(w, 1) <> "Nowy" w = w + 1 If w = max Then Exit Do Loop If w < max Then MsgBox w[/syntax] Może nawet ciut szybciej byłoby przez Columns(1).Find...
Przy sprawdzaniu 11 komórek nie opłaca się za bardzo optymalizować tego kodu w jakikolwiek sposób, ale gdybyś chciał coś podobnego robić na setkach komórek to po znalezieniu pierwszej pustej można przerwać pętlę i nie szukać dalej. W przypadku kilkunastu komórek może zostać "nieoptymalnie". :)
Najprościej stosując pętlę. Np[syntax=vb]Sub arkusze() msg = "Skoroszyt zawiera arkusze o nazwach:" For i = 1 To Sheets.Count msg = msg & Chr(10) & i & ") " & Sheets(i).Name Next MsgBox msg, vbInformation End Sub[/syntax]
Witam serdecznie. Chciałbym stworzyć prosty Msgbox, który po wybraniu w kolumnie H w komórce (ściślej mówiąc od H3:H) z listy rozwijanej "fail", wyświetli się komunikat "Do poprawy" za każdym razem gdy to wybierzemy. Czy ktoś może doradzić jaką pętlę tu zastosować? [syntax=vbscript]Private Sub Worksheet_Change(ByVal Target As Range) If Range("H:H")...
Oczywiście można wykonać w pętli dla wielu plików, wpleść w procedury opisane wyżej Próbuję ale nie ogarniam. Mój poziom to: (AutoOpen Stub Data) też się odkrył dlatego go wywołuję. Ale oczywiście to makro tylko do obróbki ręcznej - z pętlą nie poradzę.
zmieniłem kod na: Sheets(ark).Select With Range("a" & wrs & ":q" & wrs).Interior .ColorIndex = 3 End With i wszystko działa...:) Mam pytanie chce żeby wyświetlił się msgbox lecz nie zatrzyma on czytania kodu i w tym samym czasie bedzie obsługiwana pętla for. a jak ktoś nadusi w msgbox OK to zakończy działanie...
Rzucasz się od razu na głęboką wodę, mam nadzieję że już programowałeś wcześniej :) Są dwa sposoby rozwiązania Twojego problemu: 1. Przed wykonaniem UPDATE zrobić SELECT, i jeżeli nie zwróci on pożądanych wyników -> oznaczyć rekord jako nieistniejący w bazie. Sam czasami robię to w ten sposób: a. wykonać (z wykorzystaniem ADODB.Recordset) [syntax=vb]SELECT...
Przejrzyj dobrze kod. Ostatnią funkcję masz "zaremowaną". [syntax=vb]'Call GetOnlyGoodValues(x1, x2, x3, x4, x5, x6, x7, x8, x9)[/syntax] Wewnątrz GetOnlyGoodValues wykonywane jest przeszukiwanie. Działa to dobrze bo sprawdzałem, ale generowanie czegokolwiek trwa baaaardzo długo. Zapis do komórek Excela mija się z celem o czym już pisałem. Właśnie dodałem...
Po Bożemu powinniśmy zastosować pętlę, ale w przykładzie trzymam się pierwotnych założeń. Jeśli nagłówki są stałe, to można zastosować wyszukiwanie i przypisać zmiennym Nr kolumny odszukanego stringu. Cała sprawa bierze w łeb, jeśli nagłówki nie będą unikatowe. Zwróć uwagę na różnicę w sposobie wpisywania formuły do komórki. Składnia: "FormulaR1C1"...
Cześć. Stworzyłem pętlę która sprawdza czy w danym wierszu jest liczba czy nie. Udało mi się to zrobić pętlą for each dla konkretnego zakresu ale mam problem ze zrobieniem tego do ostatniego wypełnionego wiersza. Obecnie stworzyłem kod który jest błędny ponieważ wyświetla mi się zawsze prawda mimo tego że w jednym wierszu jest tekst. Gdzie zrobiłem...
:arrow: Smutny_k 1. Na przyszłość: załóż nowy temat z odnośnikiem do starego (jak dasz "pomógł" pomagierom?) 2. Popatrz na taką pętlę (ścieżka domyślna dokumentów użytkownika) i zamiast msgbox podstaw swoją procedurę. Sub pliki_xls() katalog = Application.DefaultFilePath & "\" 'katalog = "c:\xxx\" 'usuń pierwszą linię...
1. Time w VB zwraca czas. 2. Warunek pętli w związku z powyższym nigdy nie będzie spełniony. Po mojemu 5-sekundową pętlę można uzyskać Np tak: [syntax=vbscript]a = Time b = a + TimeSerial(0, 0, 5) Do While Time < b w = w + 1 Loop c = Time MsgBox Second(a) & " " & Second(c) & vbNewLine & w[/syntax]
Twoja pętla przypisuje kilkukrotnie te same wartości tym samym zmiennym. Dla mnie to nie ma sensu. Zobacz ten przykład działania pętli Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub proba() Dim Tekst As String Dim wartosc As Variant Dim a As Integer Dim startuj As Single, koniec As Single startuj...
Z Twojej procedury Sub Petla() If Range("Z2").Value <> "." Then oraz Arkusz1.Rows("2:2")... Shift:=xlUp Ale to już nie ma znaczenia... A co koledzy na to Sub Petla() a = 1 b = 1 With Sheets("Arkusz1") For i = 2 To Range("B65536").End...
Zaczynając od wiersza 2 wykonujesz pętlę dopóki w A jest niepuste. Czyli np. jakoś tak:[syntax=vbnet] Sub Sumowanie() Dim Y As Long, S As Double Y = 2: S = 0# Do While Cells(Y, "P") <> "" If Cells(Y, "P") <> 0 Then S = S + Cells(Y, "P") Else Cells(Y, "R") = S: S = 0# End If Y = Y + 1 Loop Cells(Y - 1, "R") = S MsgBox "Gotowe" End Sub [/syntax]
Pokombinuj z taką pętlą Sub SortujDziurawe() wrs1 = 1 Do Until wrs1 > 65500 wrs2 = Range("A" & wrs1).End(xlDown).Row MsgBox "sortujemy zakres: A" & wrs1 & ":A" & wrs2 Range(Cells(wrs1, 1), Cells(wrs2, 1)).Sort Key1:=Cells(wrs1, 1) wrs1 = Range("A"...
1. Procedury zdarzeniowe, takie jak ta poniżej: 877962
1. Pomyliłeś Labele. Powinno być [syntax=vb]If Label14.Caption = "" Then MsgBox "Musisz wybrać pracowników", vbCritical, "Pracownicy" Exit Sub End If[/syntax]i podobnie niżej, ale to nie będzie już potrzebne. 2. Zamiast podstawiania indeksu jako Nr wiersza (ostWrs = Label14.Caption), powinieneś zastosować pętlę. Podobną do tej w 'lstFiltr_Change'. Spróbuj...
Błagam o pomoc :) Ja to zrozumiałem tak (uszczuplone do granic możliwości :) na dwóch najprostszych pętlach ) [syntax=vbscript]Sub test() plik = "h:\macro\" & "zamowienie CRC 4-2" & lp & ".mac" Open plik For Output As #1 Print #1, "[PCOMM SCRIPT HEADER]" Print #1, "Language = VBSCRIPT" Print #1, "DESCRIPTION=" Print #1, "[PCOMM SCRIPT SOURCE]"...
Na DC też można wydrukować, ale należy napisać inny kod. Też działa ;) [syntax=vbscript]Sub Zlicz() Dim FolderPath As String, Filename As String, Plus As Integer FolderPath = ActiveWorkbook.path & "\pliki_pdf\" Filename = Dir(FolderPath & "\*.pdf") Plus = 2 Do While Filename <> "" q = Shell("C:\Program Files (x86)\Adobe\Acrobat Reader...
Do autora: Jak zauważyłeś twoja funkcja działa - więc już połowa sukcesu. (na marginesie zmienna "dzień" to nie to samo co zmienna "dzien"więc akurat ten kod który przedstawiłeś nie powinien działać ale ...) Przechodzimy do koncepcji i twojej procedury głównej. Bardzo dobrze pomyślałeś (dobra w tym przypadku koncepcja) że "biorę po kolei dni tygodnia...
Witam, mam takie zadanie aby zrobić formularz na którym jest textbox, command button, oraz label. Mam Ma to działać tak, że wpisuje hasło do textboxa on pobiera to hasło i sprawdza czy jest prawidłowe jak nie, to ma czekać aż wpisze znowu hasło do tego text boxa i znowu sprawdzić. Napisałem ten program ale nie działa prawidłowo, tj. jak się poda złe...
Dzień dobry. Dopiero zaczynam swoją przygodę z VBA nie wiem czemu jak zrobię pętle If ComboBox1 = "wybierz" Or TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Or ComboBox2 = "wybierz" Then 'pola msza byc wypełnione MsgBox ("WPROWADZ DANE") Unload Me Dodaj1.Show...
petla while excel msgbox petla naprawy
easun schemat regulatory załączania pompy wrzutniki monet programować
piekarnik elektrolux scania podłączyć światła
Darmowe mapy na Windows CE: MapFactor, MAPLORER i inne Yamaha FJ 1100 – podłączenie 3-pinowego przerywacza kierunkowskazów, schemat, kolory przewodów