Jak wyżej. Porównaj datę z systemową[syntax=vb]If Date < #7/17/2012# Then 'format USA: mm/dd/rrrr 'makro 'jeszcze tylko dziś Else MsgBox "komunikat" End If[/syntax]
[syntax=vbnet]Sub test() Lst = Array(1, 4, 9, 10, 11) For Each k In Lst MsgBox Str(k) Next End Sub[/syntax]
[syntax=vbscript]Sub Drukuj() If Dir(Range("B1")) <> "" Then Workbooks.Open (Range("B1")) For x = 1 To Sheets.Count If Sheets(x).Name Like "*jakiś*" Then MsgBox Sheets(x).PrintOut Exit For End If Next ActiveWorkbook.Close End If End Sub [/syntax]
[syntax=vb]xx = sciezka & "\Dokumenty\LZH\" & NazwiskoImie If Dir(xx, vbDirectory) = "" Then MsgBox "Nie ma Folderza": Exit Sub If Dir(xx & "\*.*") = "" Then MsgBox "Folderz pusty": Exit Sub With Application.FileDialog(msoFileDialogOpen... .InitialFileName = xx .Show End With [/syntax]
Słowem: korekta OstW (walek33) i UserForm zamiast MsgBox (marek003)...
trochę zmieniłem podejście Musisz założyć z góry co chcesz osiągnąć a nie co chwile wklejać jakieś makra. "Widzę", że chcesz pobrać tylko 5 wartości z kolumn(F,J,L,N,W) można to zrobisz tak j.w czy przez zwykłe kopiowanie. Chciałbym, żeby napisany kod mógł sprawdzić czy plik jest już otwarty i jeżeli tak, żeby pominął krok otwierania pliku - nie udało...
Makro wykonujące obydwie czynności może wyglądać np. tak: Private Sub CommandButton1_Click() poprz_wartosc = Empty For Each c In ActiveSheet.Range("C1:C6553... 'tu można zawęzić przeszukiwany zakres If c = "dolek" Then ActiveSheet.Cells(c.Row, 4) = poprz_wartosc If Not IsEmpty(poprz_wartosc) And...
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]
Jest prosty sposób na uruchomienie makra jeśli aktywowana będzie określona komórka. Powiedzmy, że zmieniasz dane w A1. Jeżeli posługujesz się klawiaturą to następna aktywowana komórka będzie A2 lub B1. Przykład uruchomienia makra dla B1 Private Sub Worksheet_SelectionChange(ByVal Target As Range) wiersz = 1 kolumna = 2 If Target.Row = wiersz...
Zrobiłem tak, jak to zwykle robią zawodowcy ;) 1. Nagrałem sobie makro przy zapisywaniu. Wyszło takie coś: [syntax=vbscript]Sub Makro1() ' ' Makro1 Makro ' ' ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "C:\Users\Adam\Desktop\Zeszyt1.pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=...
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...
Witaj, wszystko jest możliwe [syntax=vb] sub Idziemy() Dim tbl As Range Set tbl = Sheets("Jacek").Range("W:W").Cells If Application.Intersect(ActiveCell, Range("a1:k500")) Is Nothing Then MsgBox "Bledne odwolanie - wybierz poprawna komorke" Else r = Application.Match(ActiveCell, tbl, 0) Application.Goto tbl(r) End If end sub [/syntax]
makro stworzyłem poprzez nagrywanie. Poprzez nagrywanie makra nie ma możliwości, żeby Excel dodał MsgBox. [syntax=vbscript]ActiveWindow.Close False[/syntax]
W poście niżej masz to opisane Ale tu zrobiłbym ciut inaczej, Np [syntax=vb]Sub otworz() 'otwieranie pliku z okna dialogowego z filtrem Dim fd As FileDialog Dim wkb As Workbook Set fd = Application.FileDialog(msoFileDialogFile... With fd .InitialFileName = "H:\CCC\ccc\" .Filters.Clear .Filters.Add "Pliki Excel", "*.xl*; *.xls*" .AllowMultiSelect...
Jeśli w zakresie są formuły, to zmienia postać rzeczy. Spróbuj wykorzystać inne zdarzenie. [syntax=vb]Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim kom As Range For Each kom In Range("C13:G13") If kom.Value < 0 Then MsgBox "Błąd w " & kom.Address(False, False) Next End Sub[/syntax]Warto może ograniczyć Target.Range, bo zmiana...
Można umieścić kod w ThisWorkbook przy zdarzeniu Open. Żeby zabezpieczyć plik przed otwarciem bez makr można ustawić na kluczowe arkusze atrybut VeryHidden (z poziomu edytora VB) a widoczny zostawić dodatkowy pusty arkusz. Przy starcie jeśli warunki są spełnione wystarczy zamienić atrybuty. Tu konieczne hasło ochrony VBA. Przy zamknięciu ustawić na...
No to na zgodę: Wklej w kod arkusza "1" lub arkusza z pierwszym indeksem. Makro uruchamia się poprzez podwójne kliknięcie w komórkę z datą. Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Cancel = True If IsDate(Target) Then cel = Target.Address For i = 2 To Sheets.Count Sheets(i).Range(cel)...
row = Cells.SpecialCells(xlCellTypeLastCell).r... - może być puste row=cells(rows.count, 3).End(xlUP).row Aby przetestować: row = Cells.SpecialCells(xlCellTypeLastCell).r... MsgBox row
Nie precyzujesz co ma być zapisane w nowym pliku. Zakładam, że arkusz "dane". Wklej kod do modułu standardowego, zdefiniuj ścieżkę zapisu i podepnij pod przycisk [syntax=vb]Sub Zapis() sc = "C:\" 'wpisz path jako string, koniecznie z ukośnikiem na końcu nazwa = Range("B1") If Cells(1, 2) & Cells(2, 2) <> Empty Then With Sheets("dane2") ostWrs...
1. Ustawiasz w arkuszu układ danych, tak aby jak najlepiej pasował ci do wyliczeń 2. Określasz i deklarujesz typy zmiennych - jeśli będziesz je wykorzystywać 3. Zliczasz ilość komórek z danymi (liczby) 4. Dla średniej arytmetycznej wykonujesz dodawanie liczb, a następnie podział sumy przez ilość komórek z danymi (liczby) 5. Dla średniej kwadratowej...
W kodzie przycisku CmbAktualizujdane zmień/dodaj linie: 1 zmień) If POB <> "" Then kwadrat = POB * POB + Sqr(POB) 2 dodaj za linią pobrania = ) dodania = Val(UsfTowary.TxtDodan.Value) 3 zmień) If pobrania > dostepnosc + dodania Then 4 zmień) ifno = MsgBox("Stan Towaru po aktualizacji: " & dostepnosc - pobrania + dodania , vbInformation,...
A co jest przechowywane w a? znaczy się mychą coś zaznacza i dopiero puszczasz makro? a = Selection.Row ? Moja porada to za pomocą komendy msgbox wyświetlaj sobie na bierząco czy masz właściwą ścieżkę przechowywaną w "strName" po każdej modyfikacji rób: Msgbox strName Chyba wiem w czym tkwił błąd. Zapomniałeś jednego shesha:) strName = strPath & "\"...
Zamiast MsgBox ("1")
Bardzo prosto, wystarczy coś takiego: [syntax=vb]Private Sub CommandButton1_Click() On Error GoTo myErr Set wsdane = ThisWorkbook.Worksheets("Dane") Application.ScreenUpdating = False On Error Resume Next With wsdane .ShowAllData .Range("A2:A" & Rows.Count).ClearContents a = .UsedRange.Row End With On Error GoTo myErr Close #1 Open "c:\plik.txt" For...
ze tak czy siak potrzebne są dwa klawisze Można z jednym np. "end" wrzuć to do modułu [syntax=vbscript]Sub test() MsgBox "ok" End Sub[/syntax] a to do thisworkbook [syntax=vbscript]Private Sub Workbook_Open() Application.OnKey "{end}", "test" End Sub[/syntax] Zapisz zamknij i uruchom skoroszyt naciśnij "end"
Cześć, Czy jest możliwość w VBA ignorowania MsgBox, który wyskakuje tuż po otwarciu innego pliku? Mam makro - otwiera plik i wyskakuje MsgBox (coś sprwadza, służy komuś innemu - więc o usunieciu nie ma mowy). Jest jakieś obejście by dezaktywować MsgBox z innego pliku, lub nawet całe kody makr?
Witam Może być makro [syntax=vbscript]Sub Zapisz() Application.ScreenUpdating = False plik = Left(ActiveWorkbook.FullName, InStr(ActiveWorkbook.FullName, ".")) & "txt" ActiveSheet.Copy ActiveWorkbook.SaveAs Filename:=plik, FileFormat:=xlCSVMSDOS ActiveWorkbook.Close False MsgBox "zapisano " & plik End Sub[/syntax]
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 .
Można do przycisku przypisać Np takie makro Option Explicit Sub cmdWstaw() Dim pozycja As Integer, numer As Integer Dim kom As Range pozycja = Sheets("Arkusz1").Rang... + 1 If pozycja = 77 Then MsgBox "Osiągnięto koniec zakresu w zestawieniu..." Exit Sub End If For Each...
Skoro ma być w VBA... Przykład z tablicą i... InputBox'em ;) [syntax=vb]Sub aver() tekst = InputBox("Wpisz liczby oddzielając średnikiem", "Obliczanie średniej") tekst = Replace(tekst, " ", "") 'wyrzucamy spacje tekst = Replace(tekst, ":", ";") 'mogło się komuś omsknąć tekst = Replace(tekst, ".", ",") 'to sie często zdarza tablica = Split(tekst, ";")...
Excel wyświetlał MsgBox To się nazywa InputBox. W załączniku numerowanie FV.
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"...
Możesz zobaczyć to z inputboxem: [syntax=vb]Sub Przycisk2_Kliknięcie() Dim plik As Variant Dim openFile As Workbook Dim Nazwa_Pliku As String Nazwa_Pliku = ActiveWorkbook.Name MsgBox Nazwa_Pliku plik = Application.GetOpenFilename( _ FileFilter:=",*.xl*", _ Title:=" Wczytaj plik z danymi") If plik = False Then Exit Sub Set openFile = Workbooks.Open(Filename:=plik)...
Potrzebuje zrobić to co teraz wrzucilem OK, jeśli sam będziesz to obsługiwał to Twoja wola i Twój wybór. Odnośnie przedstawionego na rysunku wyliczenia to musisz zmienić kod dla przycisku "Oblicz" np na taki: [syntax=vbscript]Private Sub CommandButton5_Click() Dim a As Integer Dim b As Integer Dim b As Integer If TextBox15.Value > 0 Then If TextBox15.Value...
Jeżeli chodzi o sumowanie cyfr w liczbie to zostaje tylko makro, moge troszkę podpowiedzieć: Sub main() Dim c, x As Integer x = InputBox("") While x <> 0 c = c + x Mod 10 x = x \ 10 Wend MsgBox(c) End Sub
Przeczytaj jeszcze raz (deklaracja zmiennej i odwołanie się do wektora): 3. Nie przypiszesz zakresu do zmiennej tablicowej w ten sposób. Można Np tak Teraz, jeśli[syntax=vb] Set XlApp = GetObject(, "Excel.Application") Tablica = XlApp.Worksheets(1).Range("O4:O36")[/syn... owszem, zadeklarowałeś obiekt, ale co ze skoroszytem Excela? Musisz się do...
Dodaj do procedury MsgBox "Działam" i będziesz wiedziała, czy marko się uruchamia. Potem należy szukać dalej.
A powinno... Makra masz włączone?
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]....
Trzeba sobie radzić inaczej, Np przy pomocy funkcji Dir. Pierwszy, lepszy znaleziony przykład funkcji z wywołaniem.[syntax=vb]Sub testit() myvar = FileList("C:\users\adam\") If TypeName(myvar) <> "Boolean" Then For i = LBound(myvar) To UBound(myvar) Debug.Print myvar(i) Next Else MsgBox "No files found" End If End Sub Function FileList(fldr As...
Pozwolę sobie ubrać ten kod w wygodną procedurę. [syntax=vb]Sub WyslijMejla(Uzytkownik As String, Haslo As String, SerwerSMTP As String, Tytul As String, Tresc As String, OdKogo As String, DoKogo As String, Zalacznik As String) Dim KonfiguracjaKonta As Object, Mejl As Object Set KonfiguracjaKonta = CreateObject("CDO.Configuration") Set Mejl = CreateObject("CDO.Message")...
Coś takiego: [syntax=vb] Sub szukajDanejWartosci() Dim danaWartosc As Variant Dim liczbaWierszy As Integer Dim liczbaKolumn As Integer Dim i As Integer Dim j As Integer liczbaWierszy = 20 liczbaKolumn = 4 danaWartosc = 0 '<-- TEJ wartości szukasz w arkuszu For i = 1 To liczbaWierszy For j = 1 To liczbaKolumn If (Cells(i, j) = danaWartosc) Then 'MsgBox...
lesławek - tak się nie da. Sam spróbuj - ale skopiuj liczbę a nie komórkę. W załączeniu proste makro. Uruchomisz skrótem klawiszowym ctrl+m (można to zmienić) Makro odejmuje od komórki z lewej coś co jest w schowku i wprowadza to formułą w zaznaczonej komórce. [syntax=vb]Sub odejmij_schowek() Dim mem As DataObject On Error Resume Next Set mem = New...
Pewnie można, ale to już dłuższa historia... :) Najprościej - jeżeli plik-źródło jest w tej samej lokacji - wstawić kwerendę wybierającą dane (Dane->Importuj dane zewnętrzne->Nowa kwerenda bazy danych, wybrać Excel Files * i OK, wskazać plik-źródło (można zaznaczyć "Tylko do odczytu"), a dalej z kreatora" wybrać zakładkę, rozwinąć ją krzyżykiem, wybrać...
Spróbuj tak [syntax=vbscript] Dim fd As FileDialog Dim wkb1 As Workbook, wkb2 As Workbook Const fileName As String = "A.xlsx" ' nazwa pliku do otwarcia Application.ScreenUpdating = False Set wkb1 = ThisWorkbook Set fd = Application.FileDialog(msoFileDialogFile... With fd .InitialFileName = ThisWorkbook.Path .Filters.Clear .Filters.Add "Pliki Excel",...
Czy istnieje jakiś inny "sposób", aby to jednak formuła zmieniająca wartość komórki była tzw "wyzwalaczem" makro? Generalnie tak - możesz np. skorzystać z kodu typu: x=Target.Row :cry: Jak widzę w Twoim pliku radzisz sobie dobrze z modyfikacją i dostosowywaniem kodu VBA do swoich potrzeb :D
Nie wiem, czy akurat tego szukasz, ale... [syntax=vb]Public Sub BlokujWytnijWklej() Application.OnKey "^x", "dont_cut" Application.OnKey "^v", "dont_cut" Application.CutCopyMode = False Application.CommandBars("Standard").Cont... Application.CommandBars("Edit").Controls... Application.CommandBars("Edit").Controls... Application.CommandBars("Standard").Cont...
Upewnij się, że poustawiałeś odpowiednio niski poziom zabezpieczeń i spróbuj czegoś takiego: [syntax=vb]'Dodać referancję: Tools->References->Microsoft Visual Basic for Applications Extensibility 5.3 Private Sub CommandButton1_Click() Dim plik As Workbook Dim arkusz As Worksheet Set plik = Workbooks.Open("c:\\plik.xlsm") Set arkusz = plik.Worksheets("Arkusz2")...
Ale mnie chodzi o Makro wstawiające do bieżącego Skoroszytu (Zeszytu) Makro we we właściwości: Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) No i w czym problem? Ja podobnie jak adamas_nt nie rozumiem problemu... plik1.xls ok plik2.xls ok plik3.xls ok
Co zrobić, aby po po zmianie wartości w kolumnach 5,6,7,8; Data i godzina w kolumnach B i C pozostała niezmieniona. Odpowiadając tak na "sucho" ... trzeba do kodu dodać coś takiego: Wariant I If Target.Column = 5 Or Target.Column = 6 Or Target.Column = 7 Or Target.Column = 8 Then " można skrócić do " If Target.Column >= 5 And Target.Column <=...
Tak na szybko masz tu makro, które chyba robi to co chciałeś. założenia - pliki są w katalogu C:\dane - pobierasz nazwę do szukania z komórki B3 - szukasz takiego produktu w kolumnie B - w obu plikach arkusze nazywają się Dane - zakres poszukiwania w kolumnie B jest ograniczony do 30 - wartość dotycząca szukanego produktu jest pobierana z komórki sąsiedniej...
Spróbuj tak [syntax=vbscript]Private Sub Test_Click() Dim zakresy As Variant, z As Integer, zakres As Range, kom As Range zakresy = Array("AQ16:AQ22", "AQ26:AQ30", "AQ37:AQ39") Sheets("Klient").Range("A18:H32").ClearC... poz = 18 'For w = 18 To 79 For z = 0 To UBound(zakresy) Set zakres = Sheets("Wycena").Range(zakresy(z)) For Each kom In zakres...
[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...
Potrzebuję dodać do swojego kodu konieczność potwierdzania chęci usunięcia danych, jeśli wybrany zakres to więcej niż jedna komórka. Czyli jeśli użytkownik skasuje zawartość jednej komórki, to nic się nie dzieje, natomiast jeśli zaznaczy kilka i będzie chciał skasować ich zawartość, to pojawi się msgbox "czy na pewno chcesz skasować dane z zakresu ......
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...
Popełniłeś dwa błędy w jednym wierszu... Do wyboru If IsNumeric((Cells(i, "I").Value)) = True Then If IsNumeric((Cells(i, 9).Value)) = True Then Natomiast wyszukanie ostatniego wiersza z nazwiskiem możesz zrobić w pętli przez porównanie. Np (dla wierszy od D2 w dół) taką Sub petla() For...
Tak najprościej: On Error Resume Next 'wyłącza błąd jeżeli wpiszesz daną której nie ma w arkuszu 2 a = Sheets(1).Range("a1&quo... 'pobranie ciągu znaków z komórki A1 pierwszego arkusza w excelu kol = Sheets(2).Cells.Find(What... ' numer kolumny wpisanego ciągu znajdujacego się w drugim arkuszy excela...
Sub ZamienNaHiperlink() Dim komorka As Range Dim nazwaPliku As String Dim sciezka As String Set komorka = ActiveCell If IsEmpty(komorka.Value) Then MsgBox "Aktywna komórka jest pusta.", vbExclamation Exit Sub End If nazwaPliku = Trim(CStr(komorka.Value)) ' Buduje pełną ścieżkę z podwójnymi ukośnikami sciezka = "file:///D:\as\" & nazwaPliku &...
Na szybko, może Cię nakieruje dodaj jeszcze datę po nazwie: folderPath = Application.ActiveWorkbook.Path 'Wykrywa sciezke pliku Arkusz.Copy With ActiveWorkbook .SaveAs Filename:=folderPath & "\" & "nazwa_pliku" & ".xlsx" .Close SaveChanges:=True MsgBox "Plik został zapisany w bieżącym folderze." End With...
Jeśli ma się coś wydarzyć we wszystkich arkuszach, to spróbuj w pętli. For i = 1 To Sheets.Count MsgBox Sheets(i).Name Next Zmienna licznik podstawiana jast jako indeks arkusza.
jeśli więc nie masz "zbytnich wymagań" co do owego "zabezpieczania przed zapisem", to zastosuj odpowiednie warunki w zdarzeniach: "Workbook_BeforeClose" i "Workbook_BeforeSave". Dzięki za odpowiedź. Nie mam szczególnych wymagań co do zabezpieczeń i wystarczyło by makro ze spełnieniem warunku, jeśli E7="DOSTARCZONO". Dasz radę dorzucić do mojego kodu?
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
Witam (na chwilę) po świętach. Przepraszam za tak późny post ale święta świętami (i karp i choinka :) ) a ja mam koniec roku w firmie i niestety nie mam za dużo czasu. Wiem że pomagałem pisać to makro ale musiałem sobie trochę przypomnieć o co chodziło a to mimo wszystko wymaga czasu. Teraz z pełnym brzuchem (i w domu) mogę trochę pomóc :) Można zrobić...
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,...
gdyż mam makro które tworzy mi CSV Napisałem na szybko takie coś: [syntax=vb] ''' <summary> ''' Zapisuje bierzący arkusz do pliku CSV ''' </summary> Sub SaveCSV() Dim R As Range Dim cmax As Integer Dim rmax As Integer Dim srow As String Dim fname As String cmax = Excel.ActiveSheet.UsedRange.Columns.Coun... rmax = Excel.ActiveSheet.UsedRange.Rows.Count.....
No więc wpisałem coś takiego ale pojawia mi sie komunikat Run time error 424 - Object required :( [syntax=vbscript]Sub Zapis For Each ws In Worksheets If ws.Name <> Arkusz2.Name Then katalog = "C:\Users\KrzyszW1\Desktop\Dystrybucja V5\" & ws.Name ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=katalog & "\cennik.pdf", Quality:=xlQualityStandard,...
dzięki działa. To może jeszcze pomarudzę. Właśnie zmieniły się zasady wyskakiwania komunikatu - szefostwo buuu Makro ma sprawdzać zakres komórek, przyjmijmy że od a1 do a5 a okienko ma reagować na każdą wybraną z listy pozycję. przepraszam.
1-Zadaniem makra jest wyszukanie wszystkich takich samych nazwisk i wyświetlenie ich . 100 Kowalskich ma się wyświetlić w MsgBox? Jeżeli nie jest to zadanie ze szkoły, to proponuję umieścić w arkuszu wynikowym powtarzające się nazwiska oraz ilość ich powtórzeń.
te daty się kodują na kod daty ??? [syntax=vbscript]Private Sub Worksheet_Change(ByVal Target As Range) If Target = Range("$A$1") Then If IsDate(Target) Then Range("B1") = Left(Target, 4) Range("C1") = Mid(Target, 6, 2) Range("D1") = Right(Target, 2) Else Application.EnableEvents = False Range("A1") = "" Application.EnableEvents = True MsgBox "W komórce...
Ja próbowałem z rejestratorem, ale nie umiem tego połączyć. Próbowałem też wstawić to co napisałeś, ale mi nie idzie. Pewnie coś źle wstawiam [syntax=vbscript]Sub szukaj() On Error Resume Next With Sheets("Dane"): End With If Err = 0 Then MsgBox "Arkusz o takiej nazwie istnieje!" Sheets.Add Method(Excel) End Sub[/syntax]
Cześć, mam problem, którego nie potrafię rozwiązać. Mianowicie potrzebuje narzędzia, które będzie wyszukiwać zakładki w pliku excel po jego nazwie. Powinno być to w formie MsgBox. Np. mamy plik jak w załaczniku i chciałbym, żeby odrazu po uruchomieniu wyskoczył MsgBox, gdzie możemy wpisać interesujacy nas arkusz i otwiera się on po potwierdzeniu komunikatu....
Napisalem wszystko od nowa. Makro testuje czy folder istnieje jesli tak - zapisuje w nim nowy plik pod warunkiem ze plik juz sie tam nie znajduje, jesli nie - tworzy nowy folder i zapisuje w nim nowy plik - nowy miesiac. =INFO("Directory") nie dzialalo dobrze w moim przypadku gdyz nie zawsze pokazywalo prawidlowa lokalizacje. Co o tym myslicie? Czy...
Witam To jest makro wyszukane w jakiejś książce nie pamiętam. Tworzy nowe skoroszyty dla filtra z tabeli przestawnej. Zmień fragment aby tworzyło nowe arkusze Dodano po 6 Proponuję stronę helion.pl Tam do książek są przykłady na FTP. Skarbnica przykładów ;-)
[syntax=vbscript]Sub elka() s = ActiveWorkbook.Path & "\" & Range("B3") & ".dxf" If Dir(s) <> "" Then If (MsgBox("Wybrany plik istnieje czy chcesz go nadpisać?", vbYesNo) = vbYes) = False Then Exit Sub Open s For Output As #1 For Each c In Range("A7:A58") Print #1, Trim(c) Next Close #1 End Sub[/syntax]
Drukowanie ogarnąłem. Działa fajnie: Sheets("1").PrintOut Copies:=2, Collate:=True, _ IgnorePrintAreas:=False Dałbyś radę podesłać kod do BeforeDoubleClick dla komórki przykładowej B2. Po DoubleClicku komórki B2 przenosi mnie do Sheets("1"). I jeszcze taka prośba, do poniższego kodu chciałbym aby po klikneciu buttona jeszcze wyskoczył Msgbox "Czy na...
jak napisać program obliczający sumę 1+1/2 + 1/3 +1/4.... +1/n dla n podanego w polu edycyjnym , wynik pokaż w msg box lub label . Program ma być napisany w języku VBA Oczywiście, poniżej znajdziesz przykładowy kod napisany w VBA, który oblicza sumę ciągu harmonijnego 1 + 1/2 + 1/3 + ... + 1/n, gdzie n jest liczbą podaną przez użytkownika. Kod ten...
Sprawdzanie poprawności danych było by wystarczające jednak problem w tym że nie mogę tej opcji ustawić odgórnie, dlatego że plik w którym ma być ta opcja jest tworzony z innego głównego pliku i zakres w którym ma działać sprawdzanie danych jest ruchomy. Dlatego sprawdzanie danych musi być włączone przez makro. Zakres w którym ma być ustawione sprawdzanie...
Hej Testuję krótkie makro w VBA [syntax=text]Sub Sayhello() Msg = "Czy nazywasz się" & Application.UserName & "?" Ans = MsgBox(Msg, vbYesNo) If Ans - vbNo Then MsgBox "Nic się nie stało" Else MsgBox "Jestem Jasnowidzem!" End If End Sub [/syntax] I teraz jak je uruchamiam to pojęcia yes i no są odwrócone. Kiedy klikam Yes pojawia się komunikat "Nic się...
Można otworzyć dwa pliki w dwóch oknach w jednej instancji Excel'a Przełącza się to poleceniem w oknie imediate: Application.ShowWindowsInTaskbar = true Na pewno gdzieś w ustawieniach można to też przełączyć. Jeżeli koniecznie chcesz to z poziomu makra możesz stworzyć oddzielną instancję excel'a i do niej otworzyć. Chociaż jest to kłopotliwe bo często...
Witam Brakuje coś w nazwie drukarki powinno być jeszcze coś ala np. "na Ne01:" Ustaw tego lexmarka jako domyśla i uruchom te makro zobacz jaką nazwę pokaże (to samo zrób z tym dymo label) [syntax=vbscript]Sub test() MsgBox Application.ActivePrinter End Sub[/syntax]
Pewnie nie masz deklaracji w module funkcji z biblioteki 'user32'. Moja świetna myszka nie ma przycisku pod kółkiem. Sprawdzałem drugi przycisk i to działa, ale jest upierdliwe, bo gryzie się z menu kontekstowym. Dla testu podstaw ten kod w module arkusza (nie zapominając o zawartości 'Module1'): [syntax=vb]Private Const Przycisk = &H2 'PPM Private...
Jak można zrobić, żeby przed uruchomieniem tej procedury makro sprawdziło czy w tabeli ("A3:D&) nie ma już danych osoby wstawionej do komórek Przykładowo - sprawdzanie nazwiska (w praktyce trzeba by zastosować rozbudowany słownik bo mogą występować pracownicy o tym samym nazwisku :D ) można zrobić poprzez małą modyfikację Twojego kodu :spoko: [syntax=vbscript]...
Oczywiście, ale :) Excel lubi płatać figle. Zapisz jeden wiersz z CheckBoxem, skopiuj go 100 razy, po czym usuń przez zaznaczenie 80 wierszy. Ile jest CheckBoxów w arkuszu? I co będzie gdy uruchomisz powyższe makro? Raczej użyłbym czegoś w stylu For wiersz = 1 To Range("A65536").End... 'tu drukowanie zaznaczonych w gałęzi...
A makrem to można np. tak: Private Sub CommandButton1_Click() Set wsark1 = ThisWorkbook.Worksheets("Arkusz... 'arkusz źródło Set wsark2 = ThisWorkbook.Worksheets("Arkusz... 'arkusz cel poz = 2 'wiersz początkowy w arkuszu docelowym For i = 1 To 65536 If wsark1.Cells(i, 1) = "Razem konto"...
Tak, jest to możliwe. Zrób dokładnie to, o czym piszesz i już. Czego ci brakuje? Składni VBA? To doczytaj. Proponuję zacząć od napisania warunku porównania (if), wpisz datę w jakiejś komórce, zadbaj, żeby naprawdę to była data, zmieniaj tę datę i sprawdzaj czy się zgadza. To najprostsza część zadania, dalej rzeczywiście możesz potrzebować pomocy. Proponuję...
Tym razem nie napiszę gotowca, lecz pół;) [syntax=vbscript]Function KolejnyNumerPliku(Katalog As String) As Integer Dim Plik As String Plik = Dir(Katalog & "*.xlsx") x = 1 While Plik <> "" n = Val(Plik) If n > x Then x = n Plik = Dir Wend KolejnyNumerPliku = x + 1 End Function Sub Test() MsgBox (KolejnyNumerPliku("C:\PlikiExcela\")) End...
Czyli jak rozumiem, w VBA nie za bardzo daje się upublicznić tablicę Ależ można tylko trzeba uważać gdzie się wstawia deklarację globalną bo to ma znaczenie. [syntax=vb] ' (powyżej Tablica) ' Deklaracja zmiennych i stałych ' Public Tablica() As Double ' (poniżej Tablica) ' Deklaracja funkcji itp. ' Sub Czytaj() ReDim Tablica(1 To 10, 1 To 10) For i...
Na pierwszym arkuszu umieszczamy listę Combo. Żeby wyświetlić listę arkuszy można to zrobić w makro, które ładuje listę Combo przy otwarciu skoroszytu, w obsłudze zdarzenia Workbook_Open: [syntax=vb] Option Explicit Private Sub Workbook_Open() Dim iWiersz As Integer Dim ws As Worksheet iWiersz = 1 'Utwórz listę arkuszy w pierwszym arkuszu od drugiego...
1. Zmienne te muszą być liczbami, np. musi być: kol_pocz = 1 wiersz_pocz = 1 kol_fine = 27 ' (27 jest nr kolumny "AA") wiersz_fine = 100 2. "ZZ" - nie ma takiej kolumny (excel 97). 3. Makro to dla dużych zakresów będzie liczyło bardzo długo (musi przejść wszystkie komórki) 4. Należy usunąć wywołanie okien INPUTBOX i zmiennych z nim związanych (lub poprzedzić...
Może pliki nazywają się inaczej lub pełna ścieżka jest jednak inna? Zwróć proszę uwagę na spacje i rozszerzenia - wkleiłeś m.in. coś takiego: "D:\wodociagi\dane z ankiet\zbiorcze" " D:\wodociagi\dane z ankiet\a\15 - kopia\1.xlsx" "\za15.xlsx.xlsx" Obecność pliku w podanej lokalizacji można sprawdzić: If Dir(pełna_ścieżka_do_pliku)<>""...
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...
Na pewno masz w otwieranym skoroszycie Arkusz1? Pewnie nie bo używasz Sheet1 Poprawiłem kod na pewno mam w plikach karty oznaczone jako Arkusz 1 itd. niestety nadal nic się nie kopiuje, działa tylko MsgBox
: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ę...
Moje pierwsze w zasadzie makro VBA w wordzie (pisałem kilka makr w Excelu, ale swój poziom szacuję na podstawowy). Tak więc trochę mojego niechlujnego kodu: Const ilePyt = 50 Const ileOdp = 4 Const pytWTescie = 15 Należy ustawić odpowiednio ilość wszystkich pytań, ilość odpowiedzi na każde z pytań, a także z ilu pytań ma się składać test. Dokument źródłowy...
Ostatnio otwarty plik ma najwyższy indeks, więc wystarczy policzyć (Workbooks.Count). Pełną nazwę ze ścieżką możesz "wydłubać" zaraz za poleceniem Open. W przykładzie wstawiłem MsgBox'y w miejsce gdzie nazwę możesz przypisać do zmiennej Sub Otwarcie_skoroszytu() Dim fd As FileDialog Dim vrtSelectedItem As Variant Set fd = Application.FileDialog(msoFileDialog...
Witam Często muszę usuwać odfiltrowane wiersze w których znajduje się tez grafika. Znalazłem gotowe makro które działa dość szybko i usuwa je, jednak robi to bez grafiki. Dodam tylko że we właściwościach znajdujących się w pliku zdjęć mam zaznaczoną opcję "Przenoś i zmieniaj rozmiar razem z komórką". Czy da się zmodyfikować to aby razem z tymi odfiltrowanymi...
To powinno ci pomóc: Sub cos() a = Now() b = Year(a) c = Month(a) d = Day(a) MsgBox ("Teraz jest: " & a & Chr(10) & Chr(10) & "Rok:" & b & ", Miesiąc:" & c & ", Dzień:" & d) nazwa = "plik_" & b & "-" & c & "-"...
Spróbuj [syntax=vb]Sub Usundane() ' ' Usundane Makro ' Makro zarejestrowane 2012-05-22, autor XYZ ' If MsgBox("Czy na pewno chcesz usunąć dane osobowe z tej tabeli? Pamiętaj, że stracisz je bezpowrotnie!!!", vbOKCancel + vbCritical + vbDefaultButton2, "UWAGA! Usuwanie danych") = vbOK Then Range("C11:AC50").ClearContents End If End Sub[/syntax]
Tu trzeba już więcej wiedzy z VBA i czasu (którego niestety na chwilą obecną nie mam - gdyż makra znam na poziomie podstawowym i trzeba by było szukać i nagrywać a później wnioskować i wykorzystywać to co potrzebne). Jednak przedstawię pewien tok który może ci pomoże (bo o większość rzeczy już się pytałeś na forum i powinieneś je znać - szczególnie...
[syntax=vb]Sub kopia() If ActiveCell.Column <> 4 Then MsgBox "Wybierz indeks z kolumny D": Exit Sub ow = Sheets("Arkusz2").Range("C" & Rows.Count).End(xlUp).Row + 1 If ow < 15 Then ow = 15 r = ActiveCell.Row Range(Cells(r, "C"), Cells(r, "H")).Copy Sheets("Arkusz2").Range("C" & ow) End Sub [/syntax]
excel msgbox funkcja msgbox msgbox petla
transoptor dobór rezystorów zacięcie stacji serwisowej blokada klawiatury panasonic
elektroniczny licznik przepływu usterki bramy garażowej
Amiko A11 Green – brak możliwości instalacji Netflix, certyfikacja, Widevine L3, Android 11 Dioda blokująca do paneli fotowoltaicznych – STMicro, Vishay, TE Connectivity, dobór i zakup