Jeśli plik, który jest otwierany, zawsze w tym samym folderze, np. C:\..\..\DaneCodzienne należy: w pliku makr osobistych w kodzie skoroszytu [syntax=vb] Private WithEvents App As Application Private Sub Workbook_Open() Set App = Application End Sub Private Sub App_WorkbookOpen(ByVal Wb As Workbook) If Wb.Path Like "*\DaneCodzienne" Then Wb.Sheets(1).Name...
Najprawdopodobniej zaznaczasz >1 komórkę. Dopisz warunek: [syntax=vb]Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Sh.Index > 10 Then If Target.Cells.Count = 1 Then If Target.Address(0, 0) = "A1" And Target.Value <> "" Then Sh.Name = Target.Value End If End If End If End Sub[/syntax]
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...
Jeżeli zdefiniuje nazwę danych to przy ich kopiowaniu, nazwa arkusza nie ma znaczenia. Przykład: jeden arkusz nazywam x a drugi y. Warkuszu x wprowadzam dane a analogiczne pojawiaja się w arkuszu y. Definiuje nazwe zakresu danych (nie B:B ) tylko np. dane1 a w arkuszu y wprowadzam formułke: odwołanie.xls!dane1. Przykład w załaczniku
Istnieje kilka sposobów zapisu odwołań do zakresów komórek w różnych arkuszach. Odwołanie bezpośrednie w stylu Excela: [syntax=vbscript]Range("'Samochód części automatic (2)'!B2#")[/syntax]Nazwa arkusza jest fragmentem adresu zakresu. Nazwę arkusza umieszczamy w apostrofach jeśli zawiera spacje, znaki specjalne lub jest liczbą; oddzielamy od adresu...
Ciekawy temat. Po wykonaniu kilku testów zauważyłem, że jak nazwa arkusza jest "R", to kod się sypie. Zmień nazwę arkusza na RR i będzie działać. Wygląda na jakiś 'bug'.
No to wygląda, że i tak masz dwa razy zdarzenie Workbook_Open. I to ma być 'Ten_skoroszyt', nie 'Ten arkusz'. Ten komunikat o kontrolce jest niezrozumiały. Masz tam jakieś ukryte kontrolki? "Front page" to oczywiście nazwa arkusza. Jeśli takiego arkusza nie masz, to to jest bez sensu i może generować błąd 'Subscript out of range'.
Chcę wydrukować tylko te arkusze, które spełniają mój warunek Opisz to dokładniej. Jaki warunek mają spełniać arkusze do drukowania? W zacytowanym kodzie sprawdzasz kolor komórek, ale nie bardzo wiadomo, dlaczego tak. Sprawdzanie koloru kilku komórek naraz może być nieskuteczne. Nie wystarczy jedna komórka? Poza tym linia kodu [syntax=vbscript]If shArkusz.Name...
Bez załącznika, w którym można to sprawdzić, to trudno mieć pewność, ale jeśli nazwa arkusza była w komórce [syntax=vbscript]Sheets("Data").Range("L... arkusz będzie [syntax=vbscript]Sheets(Sheets("Data").R... jeszcze konkretna komórka: [syntax=vbscript]Sheets(Sheets("Data").R...
Można to zrobić również formułami. Kluczową sprawą jest odczytanie numeru wagonu z nazwy arkusza, bo - o ile mogłem się zorientować - nigdzie w arkuszu nie jest ona wpisana. Jest to wyliczone w komórce D2. Oczywiście postać formuły jest dostosowana do nazw używanych w skoroszycie. Potem, gdy mamy już numer wagonu, dalej wystarczy WYSZUKAJ.PIONOWO (komórka...
Zamiast przerabiać było napisać nowe makro, bo np. po co ci pętle. Najpierw musisz "pobrać" nazwę arkusza z A1 potem nr wiersza z B1 A potem wprowadzić dane w arkusz o nazwie zapisanej w zmiennej "nazwa" w wierszu zapisanym w zmiennej "wiersz". C1 w kolumnie 2 a D1 w kolumnie 3 Private Sub CommandButton1_Click() nazwa = Worksheets("Arkusz1")....
Jeśli chodzi o odwołania do arkuszy, to można odwoływać się do numeru kolejnego arkusza np. Worksheets(liczba), gdzie liczba jest stałą lub zmienną typu całkowitego albo do jego nazwy np. Worksheets(nazwa), gdzie nazwa jest stałą tekstową w cudzysłowie lub zmienną typu tekstowego. Jeśli arkusze mają nazwy o postaci liczb, a w kodzie jest zmienna numeryczna...
Bardzo sobie skomplikowałeś to zadanie. Do tworzenia kopii służy polecenie SaveCopyAs. Przykładowy kod oparty na Twoim. [syntax=vbnet]Sub twórz() Dim x As String, nazwa As String nazwa = Replace(ThisWorkbook.Name, ".xls", "") x = ThisWorkbook.Path & "\Archiwum\" & "Kopia arkusza - " & nazwa & " _ " & Format(Now, "dd_MM_yyyy__hh_mm_ss") & "_" & ".xls"...
Użyłem tego makra we wszystkich od 01.YY do 13.YY i tylko pierwszy skopiował dane. W załączniku przesyłam cały plik, może będzie łatwiej rozwiązać zagadkę Już z tego miejsca pragnę bardzo podziękować za pomoc, ale chciałbym sprawę doprowadzić do końca. tak czy siak nie we wszystkich skoroszytach ci to zadziała musisz trzymać się jednej nazwy arkuszy...
Pętla sprawdzająca nazwy arkusza w kolekcji: [syntax=vb]For Each ws In Worksheets If ws.Name = "Arkusz2" Then MsgBox "Arkusz istnieje" Exit For End If Next ws[/syntax] Jeżeli tworzysz arkusze programowo, to całość powinieneś albo ująć w blok obsługi błędów (On Error GoTo myError) i/lub sprawdzać, czy nazwa jest prawidłowa (Excel ma ograniczenia co do...
Powinieneś dodać własny skoroszyt jako przykład, co chcesz osiągnąć, bo w Excelu różne drogi prowadzą do celu. W każdym razie jeśli używasz funkcji ADR.POŚR, to jej pierwszy (a często jedyny) argument musi być w cudzysłowie - jeśli oznacza adres, z którego chcemy pobrać dane. Natomiast bez cudzysłowu - jeśli to jest komórka, która dopiero zawiera potrzebny...
A jak zmienić kod aby do zmiany wartości była uwzględniana tylko kolumna C, ale skrypt był wyzwalany po zmianie w kolumnach B, C, D. Do tych kolumn wklejam jednocześnie dane, po wklejeniu danych do trzech kolumn skrypt nie działa. Wstępna ocena dostępnych informacji Witam ponownie, Zrozumiałem, że chce Pan zmodyfikować skrypt w Google Apps Script tak,...
Jak zrobić odwołanie do arkusza w innym skoroszycie_2 gdzie nazwa arkusza to pozycja "A2" ze skoroszytu_1? =[skoroszyt2.xlsx]nazwa_arkusza!... nazwa_arkusza = pozycja A2 z dowolnego arkusza skoroszytu_1 Użyj funkcji [syntax=vb]=ADR.POŚR(A2)[/syntax] A dokładniej [syntax=vb]=ADR.POŚR("[skoroszyt2.xlsx]"...
Tu jest szczęście[syntax=vb] Sub KopiaRobocza() Dim nazwa As String Dim path As String nazwa = Range("H19").Value path = "C:\" fileSaveName = path & nazwa & ".xlsx" ThisWorkbook.Worksheets("Kopia robocza").Range("A1:D45").Copy Workbooks.Add Selection.PasteSpecial Paste:=xlPasteValues ActiveWorkbook.SaveAs fileSaveName Application.OnKey "~", "SomeActions"...
W D3 nic nie ma to nie działa, miałeś to na sztywno ustawić, przecież chcesz stałą komórkę A1. Poniżej formuła z ustawionym na sztywno C2 (A1), bez C3. [syntax=actionscript]=HIPERŁĄCZE("#"&""&... Opis analogiczny jak wcześniej z C1, C2, C3: C1 - w tej komórce umieść nazwę arkusza C2 - tu wpisałem na sztywno A1 C3 - to pominąłem
wykorzystaj formułę wyszukaj.pionowo() w komórce B2 w drugim arkuszu wpisz: [syntax=excel]=WYSZUKAJ.PIONOWO(A2;Arkus... Arkusz1 w formule to nazwa pierwszego arkusza.) Daj enter a potem przeciągnij formułę w dół i już. Ewentualnie możesz wpisać warunej jeżeli gdy nie będzie danej z kolumny A drugiego arkusza w arkuszy pierwszym:...
arkusz i zapisał go w tym samym skoroszycie ale pod nazwa wzięta z komórki. Następnie zapisał by plik w określonym miejscu z nazwa rownież z określonej komórki. Napisz do wyjaśnienia adresów tych komórek. Ponadto sciezku dla zapisu Dodano po 1 [syntax=vb] Sub Kolejny_dzen() Sciezka = "D:\tmp\" '- to dopasuj do swoich potreb plik = Sciezka & Format(Int((Date...
Niby proste, a bez szczegołów to nadźgać tu można tyle różności, jak do tobołka ... Założenia: 1. Weryfikacja (jakakolwiek) kopiowanych danych 2. Plik zestawienia w tym samym katalogu co Wz-wzór, jeśli nie to ścieżkę trzeba wpisać "ręcznie" do zmiennej 3. Sprawdzanie, czy plik zestawienia nie jest przypadkiem już otwarty 4. Nazwa pliku zestawienia wpisana...
Chodzi o tę drugą pętlę? Wtedy Kod: vbscript Rozwiń Zaznacz wszystko Kopiuj do schowka If Cells(wiersz, 4) > 99 Then .Cells(wwrs, 4) = Cells(wiersz, 4) itd Raczej musi być przy tym warunku wiersz wpisany na stałe If Cells(128, 4) > 99, bo pętla rusza od 129 I tak zapytam autora po co te dwie pętle? i co jest w N? (nr wiersza czy nazwa arkusza chodzi...
chce żeby wyświetlił się msgbox lecz nie zatrzyma on czytania kodu Taka już rola MsgBox'a , żeby zatrzymywał i czekał na decyzję użytkownika. jak powstrzymać otwieranie nowego arkusza jak jego nazwa się powtórzy?? Excel z pewnością nie pozwoli na dublowanie nazw arkuszy. Jeśli chodzi o nadawanie nazw musiałbyś najpierw wykonać porównanie i dopiero...
Pozwolę sobie odpowiedzieć: zmień deklaracje typu zmiennych i będzie ok. Dim Nazwa_1 As Integer Dim Nazwa_2 As Integer Na Dim Nazwa_1 As String Dim Nazwa_2 As String Integer to liczby całkowite a String to ciąg tekstowy do którego też można zaliczyć "wizualnie" liczby (czyli liczby i cyfry jako tekst). I jeszcze jedno jak zmienić aby nazwy arkuszy zmieniały...
Witam, Nie mogę sobie poradzić z problematycznie nazwanym arkuszem. Otóż wyciągam dane z pliku A i kopiuje je do pliku B. Problem polega na tym, że jeden z arkuszy ma nazwę z literą "è" a muszę wykorzystać przypisanie: set ab = b.sheets(xxx) - i tu w miejscu xxx powinna być nazwa tego arkusza. w VBA nie mogę wpisać tego znaku, bo wyskakuje "?"....
Zakładając, że makro uruchamiasz przy aktywnym arkuszu wynikowym, konstrukcja powinna wyglądać mniej więcej tak ostWrs = tu szukamy ostatniej niepustej komórki w arkuszu wynikowym For Each sht In ThisWorkbook.Worksheets If sht.Name <> "tu nazwa arkusza wynikowego" Then ostWrsArk = tu szukamy ostatniej niepustej komórki w arkuszu źródłowym...
Powiem tak na szybko: :) Znaj moje dobre serce :) W załączeni przykład z różnymi układami. Wybierz który ci pasuje ewentualnie połącz w jedno. Ponieważ jest możliwość wielu wystąpień jednego tematu na chwilę obecną nie wiem jak to ugryźć bez wiersza pomocniczego (wiersz 2 - ukryty w arkuszu1 [komórka kopiowana w bok - w prawo]) I druga rzecz w w funkcji...
Wyszło mi coś takiego[syntax=vb]Sub Pobierz() Dim nazwa As String Dim ark As Worksheet Dim wrs As Long, j As Integer, i As Long nazwa = "Arkusz2" 'nazwa arkusza docelowego 'tutaj 2 dla porównania z 1 ThisWorkbook.Activate 'gdyby nie był Sheets(nazwa).Range("A2:H65536").ClearCo... 'czyścimy wrs = 2 '1-szy wiersz docelowy j = 3 '1-sza kolumna źródłowa...
Co do przycisku wywołujacego makro. Jeżeli masz więcej arkuszy i będzie to w nich wykorzystywane to kod umieść w module. Menu - Widok - paski narzędzi - Visual Basic. Na tym pasku wciśnij Edytor Visual Basic. Otworzy ci się edytor makr. Po lewej stronie będzie okienko "project -VBA project" . Znajdź pogrubioną nazwę twojego skoroszytu i prawokliknij...
A co z nagłówkami, powtarzanymi wielokrotnie ? Ma być tylko jeden, czy ileś tam za każdym razem nowy i w wyniku nagłówkowy przekładaniec ? Edycja: Nie przyjrzałem się ... kopiujesz bez nagłówka ... Ale może przy pierwszym kopiowaniu powinien on być przenoszony jednorazowo ? Ręczie go wklepujesz/kopiujesz ? Edycja: Sprawdź: [syntax=vba] Option Explicit...
Po pierwsze: z którym fragmentem nagranego kodu masz problem? Po drugie: Nagraj makro kopiowania całego arkusza do nowego pliku ze zmianą jego (pliku) nazwy. Masz 100% gwarancji zachowania formatowania. Jeśli w arkuszu jest nadmiar danych można dopisać usuwanie. Jeśli jesteś początkujący, to nagrywarka jest podstawą. Przykład: To jest nagrane makro...
po co w niej jest to: & "_Szychtownice" ? to chyba jest raczej niepotrzebne To nie mój wymysł. Tak miałeś w oryginale. w zakresie Sheets("Menu").Range("A6:A15") również są cyfry od 1 do 10 To skąd to? W s i nazwa jest *=2. Poniższy kod działa tylko, gdy nazwa arkusza jest poprawna. [syntax=vbscript]Private Sub CommandButton2_Click() Dim Sciezka As...
Mam tylko problem u mnie nazwa arkusza jest zawsze inna ( różne piliki są otwierane) Zamiast I jest jeszcze problem z zakresami, w pliku docelowym ma on być kopiowany w pierwszy wolny zakres. Więc tam, gdzie teraz jest przykładowo[syntax=vb]wswyn.Range("A2:D2... = wsSrc.Range("A2:D2").Value[/syntax] wstaw [syntax=vb]ost_w = wswyn.Cells(Rows.Count,...
lecz widoczny wynik to sam wiersz Sumy A jaki zakres komórek obejmuje nazwa Cena :?: :D Jeśli chcesz sumować "tylko widoczne" - zmień formułę na =SUMY.CZĘŚCIOWE(9;[Cena]) :idea:
Zmień na: [syntax=vb] Option Explicit Private Sub Workbook_Open() If ThisWorkbook.Name = "wzór.xlsm" Then With ThisWorkbook.Sheets("Arkusz1") '<--Tu nazwa twojego arkusza .Range("E18").ClearContents '<--czyści tylko wartości zostawia formatowanie .Range("E18").Clear '<--- czyści i wartości i formatowanie 'Range("E18").Value = "" wstawia do...
Witam Proszę o informację czy za pomocą kodu VBA można przypisać do zmiennej ścieżkę + nazwa arkusza Za pomocą kodu [syntax=vb]NowaZmienna = Application.GetOpenFilename(FileFilter:=... Excel (*.xls), (*.xls)")[/syntax] mogę przypisać do zmiennej ścieżkę do wskazanego pliku. Ale czy da się przypisać do zmiennej nazwę arkusza z którego chcę importować...
To jak ten kod bym całkiem uprościł. Jeżeli staniesz na dowolnej komórce a makro "cos" podepniesz pod przycisk (lub kod ze środka procedury cos przekleisz do procedury przycisku) to po przyciśnięciu albo ci napisze że nie ma arkusza albo przerzuci do danego arkusza. Wtedy też funkcja "Last" nie jest potrzebna. Sub cos() Dim Nazwa As String Nazwa...
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...
Zacznij od początku jeszcze raz bo coś za dużo usunąłeś z kodu (nie mam jak ci podesłać bo w pracy mam 2010 i rozwala mi plik) między tymi linjami kodu wprowadź warunek If IsNumeric(fragment2) Then fragment2 = "" kod = fragment1 & fragment2 Czyli ma wyglądać tak: If IsNumeric(fragment2) Then fragment2 = "" If...
Najprościej byłoby zastosować jakąś pętlę w VBA, ale można próbować po "excelowskiemu". Np dołożyć jeden arkusz roboczy, w którym tworzymy tabelę i szukamy wyniku, a w głównym dać tylko odwołanie... Całość oparta jest o funkcję ZNAJDŹ i jeśli nie ma tekstu z kolumny A w dowolnym wierszu kolumny B, to funkcja zwróci #ND! Na podanych przez Ciebie danych...
Przykład korzystania z okna zapisywania z filtrem ZapiszJako = Application.GetSaveAsFilename(fileFi... Excel (*.xls), *.xls") I jeśli domyślna ścieżka i nazwa z komórki to sciezka = Application.DefaultFilePath & "\" nazwa = Range("A1").Value ZapiszJako = Application.GetSaveAsFilename(Initia...
W Twoim kodzie było: [syntax=vbscript]ActiveWorkbook.Close[/s... tę linijkę po prostu przepisałem. Gdy zapisuje się plik pod nową nazwą przez SaveAs, otwarty skoroszyt przyjmuje nazwę zmienioną pod którą był zapis. Nie wiem, czy można zmienić nazwę otwartego skoroszytu inaczej niż przez zapisanie go. Zatem w tym przypadku proponuję ponowny zapis...
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...
Dzieje się tak, ponieważ każda zmienna jest domyślnie widoczna tylko w obrębie danej procedury. Nie możesz w CommandButton1_Click() przypisać Set wb = Workbooks.Open(sciezka), a próbować ją odczytać w innej: CommandButton2_Click(). Żeby nie kombinować ze zmiennymi globalnymi: 1. Albo w CommandButton1_Click() w miejscu komentarza '.......dalsza część...
Proponuję: 1) Zamiast formuły z funkcją JEŻELI zastosować formułę z funkcją MAX. Uniknie się w ten sposób dwukrotnego odwołania do tych samych danych. 2) Jeżeli będziesz przestrzegał zasady, że nowe arkusze są dodawane zawsze na początku (a nie na końcu, jak robi się zazwyczaj), to będziesz potrzebować zawsze odwołań do następnego arkusza w kolejności....
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...
próbowałem najpierw wkleić kod Gdzie próbowałeś wkleić kod? Zobacz w projekcie makra, że kod jest "bezpośrednio" w arkuszu a nie w module. U mnie działa: Nowy arkusz, wstawiam wykres, kopiuje kod makra do arkusza (nie do modułu) i zmieniam wartość w tabeli ... tatam. Na marginesie jeżeli już masz "coś" w tym arkuszu w którym chcesz ten kod wykorzystać:...
W takim razie w arkuszu z tą komórką wstaw taki fragment: [syntax=vb]Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$B$9" Then Call myCopy End If End Sub[/syntax] Nazwa makra - copy() - nie jest zbyt fortunna, bo pokrywa się z poleceniem VBA o takim samym tytule. Lepiej zmień ją np. na myCopy
nazwa komórki nazwa arkusza makro nazwa arkusza nazwa arkusza komórki
volvo silnika emulacja sterownika prywatny łączność
Montaż dekla osłony świateł mijania w Volvo V70 2003 Brak łączności drukarki HP Envy 4500 z komputerem: przyczyny i rozwiązania