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...
Powinieneś załączyć przykładowy plik Excela, bo za dużo jest niejasności w tym, co napisałeś. Przykładowy kod, który działa wg Twojego opisu: [syntax=vbscript]Sub AddSheets() ' zakładamy, że nazwy nowych arkuszy ' są w komórkach od B5 w dół Dim ostw As Long, w As Long ostw = Arkusz1.Cells(5, 2).End(xlDown).Row For w = 5 To ostw Sheets.Add(After:=Sheets(Sheets.Count))....
Proszę jaśniej. Nazwa arkusza ma być pobierana z komórki, czy w komórce ma być odwołanie do nazwy arkusza? W jakim celu?
Do arkusza nie musisz odwoływać się po nazwie. Skoro nagrywałeś makro, to pewnie masz dodawanie nowych arkuszy na końcu. Możesz odwołać się np. do ostatniego lub przedostatniego arkusza w kolekcji:[syntax=vbscript]Worksheets(Wor... Worksheets(Worksheets.Count - 1)[/syntax]i na nich robić co tam potrzebujesz. Z tabelami podobnie - jeżeli masz...
Pomogę w ten sposób: Tak przypisujesz nazwę z danej komórki Nazwa_z_komorki = Worksheets("KON").Cell... 1).Value i podobnie ilość Ilosc_z_komorki = Worksheets("KON").Cell... 2).Value Do powyższego cells(nr wiersza,nr kolumny) dodanie arkusza: Sheets.Add Nadanie nazwy arkuszowi: ActiveSheet.Name...
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
Czy jest coś takiego możliwe do zrealizowania? Tak :please: np tak jak na zrzucie 977452 i w załączniku :spoko: 977453
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...
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"...
Proponuję, żeby Kolega (zakładając, że nie ma Kolega pojęciu o VBA) zaczął od zarejestrowania makro, w którym doda sobie Kolega arkusz, określi jego nazwę i kliknie sobie w dwie komórki po sobie. Potem może sobie Kolega obejrzeć kod makro, które zostało nagrane i wszystko powinno być jasne. Jeśli będzie miał Kolega problem z jakimś fragmentem kodu -...
[syntax=vbscript]Sub elka() For Each s In Sheets Sheets(s.Name).Range("w2:w" & Sheets(s.Name).Cells(Rows.Count, 1).End(xlUp).Row) = s.Name Next End Sub[/syntax] ........................................ ps. można usunąć nie widziałem, że już odp :)
Wypróbuj takie coś: [syntax=vbscript]' ========================================... ' ZAŁOŻENIA: ' 1. Wszystkie skoroszyty do scalenia znajdują się w jednym folderze ' 2. Nie ma tam żadnych skoroszytów przypadkowych (w tym docelowego) ' 3. Dane do scalenia są zawsze w pierwszym arkuszu i mają jednakowe kolumny ' 4. Dane do scalenia mają nagłówki...
jeśli stworze tabelkę z poszczególnym towarem to wyskakuje bląd Nowe tabelki muszą mieć skorygowane formuły - zwłaszcza te w "drugiej linii" :D 967206 a może być żeby sumowało ? Owszem :cunning: , może - ale wymaga zmiany formuł i zmiany tabeli "wyszukującej" :sm9: 967244 967247
każde kolejne sczytanie z czytnika do Arkusza "NAZWA ODDZIAŁU" A2 kolejno wklei dane do pustej komórki w Arkuszu "DANE" Jeśli skaner korzysta tylko z komórki A2 :?: to możesz wykorzystać makro jak w załączniku 1063586
Poza tym arkusz (sheets) nie ma w visible "opcji" True. Oczywiście ma :) Właściwość Visible obiektu może przyjąć wartość True, False. Tu raczej podejrzewam błąd w nazwie (1004), lub włączoną ochronę skoroszytu (struktura). Spróbuj marcinj12 . Wstawianie nowego: Można wykorzystać zdarzenie 'Private Sub Workbook_NewSheet(ByVal Sh As Object)'. Wyłączyć...
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'.
Być może trzeba [syntax=vb] NextImportRow = Worksheets("Check-in").Cells(Rows.Count, "A").End(xlUp).Row + 1 [/syntax]
Może to Ci podpasuje.
Z ActiveX nie trzeba aktywowac arkuszy i zaznaczyc checkBox,[może mieć taką samą nazwę (na różnych arkuszach)]
Nie widzę potrzeby stosowana makr. Formuły i formatowania powinny wystarczyć. Ad.1. Poprawność danych > lista Ad.2. WYSZUKAJ.PIONOWO z argumentem (nazwa arkusza) podstawianym przez ADR.POŚR
Sprawdź w załączniku, czy o to chodziło. Dopisałem procedurę Workbook_Open, która tworzy kształt w arkuszu Arkusz1 (nazwa kodowa) przy otwieraniu skoroszytu (jeśli go nie było) lub zmienia kolor na biały (jeśli był). Dopasuj sobie jeśli ma być w innym arkuszu.
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...
Umieść to co już zrobiłeś. Postaram się skończyć.
Musisz zrozumieć podstawy VBA, najlepiej coś na ten temat przeczytaj. Każdy zapis w VBA musi albo coś deklarować albo coś wykonywać. Twoja pierwsza linijka kodu ani nic nie deklaruje, ani nie wykonuje. Od drugiej powinno być dobrze pod warunkiem, że arkusz SPR jest aktywny. Nie możesz tak chaotycznie używać Range poprzedzonego nazwą arkusza i bez tej...
.Parent dla ActiveWorkbook jest program Excel, wtedy zapisze w sciezku Excel'a naprosto .Path jest sciezka do pliku Split(.Name,".")(0) daje np. 'faktura' Dodano po 2 wtedy[syntax=vb]With ActiveWorkbook Selection.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=.Path & "\" & _ Split(.Name, ".")(0) & ".pdf", _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True,...
To trzeba wykonywać program krokowo i gdy wystąpi błąd sprawdzić wartości wszystkich zmiennych. Opis błędu wskazuje, że nie ma arkusza o wskazywanej nazwie, więc trzeba dokładnie sprawdzić jakie są nazwy arkuszy, a co jest w komórkach. Jeśli nie znajdziesz sam przyczyny błędu, załącz przykładowy plik, bo tak to można tylko zgadywać.
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...
Można w poniższy sposób, wpisując w tablicy "arkusze" wszystkie nazwy arkuszy, w których kod ma się wykonać. [syntax=vbscript]Sub Wstaw() Dim arkusze, arkusz arkusze = Array("Arkusz1", "Arkusz2", "Arkusz3") For Each arkusz In arkusze Worksheets(arkusz).Rows(5).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Next End Sub[/syntax] andie
Z arkusza1 robię raporty w osobnych arkuszach Efekt taki jak na zrzucie 1041538 automatycznego kopiowania wyfiltrowanych danych z arkusza1 do kilku arkuszy :idea: (z nazwami arkuszy wg filtrowanych danych :D ) można zrealizować przykładowo tak jak w załączonym pliku. 1041541 Makro można uruchomić skrótem klawiaturowym ctrl+r :!: , dla dowolnej (jeśli...
Moim zdaniem to można znacznie uprościć, nie dzielić na raty, tylko od razu filtrować i drukować arkuszami, bez kolorowania. Mam tylko dwie wątpliwości. 1) W jakim stanie mają być arkusze po zakończeniu operacji? W pliku, który załączyłeś były włączone autofiltry w arkuszach, a Twój kod je usuwa. 2) Po co jest ustawiona opcja wyświetlenia (publikacji)...
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...
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]"...
Jednak najpierw sprawdziłbym, a następnie warunkowo dodawał. Najprościej przez próbę aktywowania po 'On Error Resume Next'. Jeśli bez błędu (arkusz istnieje), komunikat, w przeciwnym wypadku wstawiamy. Taka odwrotność powyższej, ale mniej zamieszania. [syntax=vbscript]Sub DodajArkusz() nazwa = " " & Date On Error Resume Next Sheets(nazwa).Activate If...
A czy dana nie ląduje czasem w innym arkuszu niż zakładasz? Sheets(1) to arkusz o indeksie jeden. Jeśli "1" to nazwa arkusza, to posługuj się nazwą Sheets("1") Poza tym Workbook s ("jeden.xls")
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...
Po zmianie początkowej części kodu z function onEdit(e) { // Nazwa arkusza, w którym skrypt ma działać var nazwaArkuszaDocelowego = "Nazwa_Arkusza"; // Proszę wpisać rzeczywistą nazwę arkusza na function onEdit(e) { // Nazwa arkusza, w którym skrypt ma działać var nazwaArkuszaDocelowego = "Arkusz1"; // Proszę wpisać rzeczywistą nazwę arkusza podczas...
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...
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'.
Innymi słowy nazwy plików jak i nazwy arkuszy w "" a poprawnie jest wokbooks a nie workbook
Można zdefiniować tablicę z nazwami arkuszy w których mają być dokonywane zmiany i przejść pętlą po arkuszach wpisanych do tej tablicy: [syntax=vb]Sub zz() Dim tblArkusze() Dim i& Dim rngTmp As Excel.Range tblArkusze() = Array("I L", "II L", "III L") 'nazwy arkuszy w których mają być wykonane zmiany For i = LBound(tblArkusze()) To UBound(tblArkusze())...
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...
Ale nie rozumiem jak jest z zapisem liczby z kalkulatora do jakieś komórki w arkuszu Jak można nie rozumieć, że ty sam napisałes? To znaczy: Z pierwszego arusza "Sheets(1)" odczytaj komórkę A1 i dodaj do niej liczbę z TextBox1 ("TextBox1.Value" = przekształć tekst na liczbę). Wynik zapisz do pierwszego arkusza "Sheets(1)" do komórki A1 = "Range("A1")...
Witam. W arkuszu mam utworzone makro do odznaczania pola wyboru Sub czyszczenie_komórek() Worksheets("wydatki").CheckBoxes.Value = False End Sub Problem pojawia się gdy chcę zmienić nazwę arkusza (lub wykonać jego kopię - co również powoduje zmianę nazwy). Wówczas makro przestaje działać, bo w kodzie makra jest odwołanie do nazwy arkusza, która przecież...
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.
Witam ,chociaż już po Świetach to życzę zdrówka wszystkim. A co do problemu z jakim się zwracam to potrzebuję do pliku załączonego aby dołożył ktoś makro lub formułe, w zależności czym będzie lepiej uzyskać efekt ,który przydałby mi się na co dzień. Mianowicie w skoroszycie mam kilka arkuszy z nazwą powtarzającą się w kolumnach "B". Po otwarciu skoroszytu...
Prościej chyba zastosować formułę niż makro. Np: http://obrazki.elektroda.pl/1848695100_1... Uzupełnić w JEŻELI(CZY.BŁĄD i stosowny tekst w przypadku błędu i będzie elegancko.
A co tak? [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").Copy ActiveWorkbook.SaveAs fileSaveName Application.OnKey "~", "SomeActions" ActiveWorkbook.Close End Sub [/syntax]
Przy okacji trochę mi sie koncepcja zmieniła - gdybym musiał wykluczyć więcej niż jeden arkusz - to dałoby się? Można wykluczać arkusze, można też uwzględnić tylko te z listy... Wykluczanie generalnie można zrobić tak: - wykluczasz Arkusz1, Arkusz2 i Arkusz3, drukujesz pozostałe[syntax=vbscript]If ws.Name <> Arkusz1.Name And ws.Name <>...
bozio891 W twoim arkuszu wystarczy zmienić zakres obowiązywania nazwy AktywnyWiersz z arkusza na cały skoroszyt (najprościej usunąć nazwę, przypisać ją ponownie ale zakres dać skoroszyt i odwołanie "=0") Zaznaczanie będzie działać w każdym arkuszu gdzie masz ustawione formatowanie warunkowe (październik i grudzień nie mają) :)
Niby spoko ale czasochłonne dla mnie :cunning: Widać, że masz niewiele doświadczenia z Excelem i nie potrafisz nawet wykorzystać natywnych możliwości programu :cry: Pierwsze 6 wierszy (te z kryteriami filtrowania) możesz zawsze ukryć przed użyszkodnikami :D tego arkusza. Warunki filtrowania zapisane są w postaci samo aktualizujących się formuł więc...
Przypisz nazwę dla zakresu np. A2:A20 w arkuszu '2' Dla A4 użyj 'Poprawność danych' - lista, żródło - nazwa zakresu Dla B4, E4 - funkcja WYSZUKAJ.PIONOWO
Jeśli chodzi tylko o zaznaczenie duplikatów, a nie o manipulowanie wpisami można posłużyć się formatowaniem warunkowym. Trzeba tylko doprecyzować, gdzie są te dane do porównania. Czy one są w osobnych plikach (skoroszytach), czy w innych arkuszach tego samego skoroszytu? Założyłem, że to drugie. Gdyby to były osobne pliki, to najlepiej skopiować te...
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")....
Wstawiłem tabelę, włączyłem rejestrator makr, zmieniłem nazwę w 'Narzędzia tabel'. Nagrało się m/in: https://obrazki.elektroda.pl/2689543600_... Odpowiedź: Tak, można
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...
Czyli algorytm mniej więcej taki: 1. Wyszukujesz ostatni arkusz i zapamiętujesz jego nazwę w zmiennej tekstowej, np Src. Metoda wyszukania dowolna, arkuszy jest zwykle nie tak dużo, można przejrzeć w pętli wszystkie. 2. Tworzysz w zmiennej np Dst nazwę nowego arkusza i tworzysz arkusz z taką nazwą: Sheets.Add.Name = Dst 3. Kopiujesz dane z jednego arkusza...
Po kliknięciu komórki np. C16 ma się utworzyć arkusz o tej nazwie tj. "C16"? Czy raczej arkusz z nazwą projektu? Jeżeli to drugie, to zamiast używać tabeli przestawnej proponuje: 1. utworzyć arkusz z polem/formantem kombi dla którego źródłem danych będzie pole (kolumna) "nazwa" z arkusza Dane. Po wybraniu elementu z listy zwraca się pozycję tego elementu...
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...
Zdaje się, że gubi źródło. Spróbuj w funkcji zapodać pełne adresy: Workbooks("nazwa").Sheets("arkusz")...
Tak jak w tytule Czy jest możliwe ? aby program VBA zmieniał automatycznie nazwę tabeli znajdującej się w komórkach arkusza A1:F10. na nazwę arkusza Nazwa arkusza np. Janek - nazwa tabeli Janek. pozdrawiam
A jak sądzisz kolego co oznacza komentarz przed tą prywatną funkcją FiltrZaawan: " The VBA AdvanceFilter method will NOT extract from a workbook that is SHARED" ??? :not:
Pętlę możesz utworzyć na różny sposób, np. Sub Kopia_co_5() Application.ScreenUpdating = False Dim x As Long For x = 1 To 1000 ' na początek wstaw np. 50 zamiast 1000 Sheets("Arkusz1").Select Rows(5 * x).Select Selection.Copy Sheets("Arkusz2").Select Rows(x).Select ActiveSheet.Paste Sheets("Arkusz1").Select Next x Range("A" & x).Select Application.CutCopyMode...
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:...
Problem polega na tym, ze nazwy w kolumnie A czasami sa dłuższe niż 31 znaków i wywala mi bład w tej linijce: temp.name = ark.Cells(i, 1) Wystarczy zrobić: Run _ time erroe '9'. Subscript out of range. A całe makro zatrzymuje się na linijce With Workbooks(cleanName & ".xls") Wydaje mi się, że chcesz osiągnąć inny efekt, niż próbujesz. Chcesz wysyłać...
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...
Makra włączone? Może problem z nazwa/indeks. Spróbuj Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo byk If Target.Column = 1 Then Sheets(Trim(Str(Target.Row... = Target.Value End If Exit Sub byk: If Target.Value <> "" Then MsgBox "Brak arkusza o...
Witaj. Zobacz, czy o coś takiego Ci chodzi: Dodano po 2 Możesz też w jednej linijce ubić wszystkie wykresy :) Dodano po 3 Możesz też usuwać nie po nazwie, a po numerze wykresu: [syntax=vb]Activesheet.ChartObjects.Item... To skasuje wykres o indeksie numer 1.
Kręcisz się w kółko. Zrozum, że w komórce nie zapiszesz danych jako VBComponent, Object, etc. W związku z tym nie uda Ci się ich pobrać i przekazać do funkcji w taki sposób. Możesz zapisać w tablicy nazwy obiektów, ale w odwołaniu musiałbyś używać jej indeksu w tablicy (liczby), nie nazwy. Metodę pobrania nazwy arkusza (Properties.Item) znając nazwę...
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...
Tak po prostu się nie da. Chyba, że znasz na pamięć nazwy wszystkich arkuszy ;) Gdzieś tę listę trzeba wyświetlić i przekazać do zmiennej nazwę wybranego arkusza... W załączniku przykład z wykorzystaniem do tego celu formularz(yk)a. Zwróć uwagę na dwie zmienne publiczne (muszą być zadeklarowane w module).
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...
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...
Moim zdaniem wychodzisz z błędnego założenia. Sugeruję kolejność: 1. Kliknięcie przycisku w arkuszu otwiera formularz (i nic więcej). 2. Wypełnienie formularza przez użytkownika. Koniecznie zablokuj kontynuowanie bez wypełnienia kluczowych pól. Po wypełnieniu formularza można pobrać wartości potrzebne do przede wszystkim nadania nazwy wstawianego, nowego...
Witam mam problem z nazwami arkuszy a używaniem funkcji worksheets mianowicie np: worksheets("nazwa").Cells(1,1) powyższa funkcja działa ale tylko jeżeli nazwa arkusza nie zawiera spacji. Co zrobić żeby działała gdy nazwa arkusza ma spację. Tylko proszę nie pisać żeby zlikwidować spację w nazwie :)
Te arkusze mają za każdym razem te same nazwy w jakiś powtarzalny sposób czy losowe? Tak,docelowo chciałbym,żeby nazwe zlecenia z komórki pobierało do nazwy arkusza + zawsze powtarzalna nazwa do danego arkusza.:) np. B2 + Obróbka_naczepa (czyli A/15684 Obróbka_naczepa.pdf)
Niestety z tego co napisałeś i pokazałeś w pliku nie wynika, jak chcesz tego używać. W załączonym pliku nie ma Arkusza1a, a arkusze 2 i 3 są puste. Więc nie wiem, czy to ma być używane w jednym arkuszu, czy w kilku. Generalnie proponowałbym nadanie nazw zakresom i odwoływanie się do tych nazw w makrach. Gdy rozszerzasz taki zakres przez dodanie wiersza...
pierwszy arkusz(po lewej) jest Sheets(1) lub Worksheets(1)
ws to zmienna tymczasowa, w której pętla for each przechowuje Worksheet z kolekcji na którym akurat jest. To makro działa na arkuszach workbooka, na którym zostało uruchomione (ThisWorkbook.Worksheets), jego nazwa nie ma nic do rzeczy...
Być może było to: Sheets("rejestr").range("N1") = Target.Row ale nazwy arkuszy może mieć symbole narodowe (ś, Ł, ó itp), że w redaktorze WBA nie mógł napisać. W menedżera nazew zadałem nazwę dla komorki N1 'wiersz', które następnie mogą być używane w formule
Wystarczy np. taka prosta przeróbka: [syntax=vb]strPlik = Application.GetOpenFilename("Pliki Excela (*.xlsx),*.xlsx", 2) sFileName = Split(strPlik, "\")(UBound(Split(strPlik, "\"))) If strPlik = "False" Or UCase(Left(sFileName, 3)) <> "KWS" Then Exit Sub End If[/syntax]
Moja propozycja to: zdefiniuj sobie jakąś nazwę np Dane jako zakres danych do formuły. W formule zamiast nazwy arkusza uzyj zdefiniowanej nazwy. Wtedy gdy pojawi się nowy arkusz to zmieniasz tylko nazwe arkusza w definicji nazwy i wszystkie funkcje zgodnie z zaktualizowaną definicją nazwy odwołają sie do nowego arkusza.
Nie pomogło - ale dziękuję za pochylenie się nad tematem. Drukuje dobrze czyli tylko te arkusze, w których w komórce d21 jest wartość > 0 (pomijając wskazane arkusze), ale problemem jest zapis tych arkuszy wg nazwy z komórki F7 (nazwa inna w każdym arkuszu). Aktualnie zadziałało to w ten sposób, że wydrukowało OK, zapisało tyle pików w ilu jest wartość...
Jeżeli oczekuje kolega jakiejkolwiek pomocy, to proszę usunąć pobieranie punktów za zamieszczony plik.
1. Każdy plik ma unikalną nazwę. 2. W każdym pliku są 2 arkusze o nazwach (ORYGINAL i KOPIA). Chciałbym, żeby nazwa arkusza była taka sama jak pliku. Czyli dla pierwszego skoroszytu: Arkusz1 = nazwa pliku Arkusz 2 = nazwa pliku(2) lub nazwa pliku(K)
Nie ma uniwersalnego rozwiązania w takim przypadku. Można oczywiście zapisać plik z makrem jako dodatek i aktywować go w oknie "dodatki", ALE: jeśli ktoś zmieni nazwy, kolejność indeksów arkuszy (jeśli nie nazwy) to kicha. Spróbuj może w ten sposób: 1. Dostajesz plik z logami (gdzieś trzeba by go zapisać). Tutaj arkusz z danymi musi być rozpoznawalny....
...jak to przenieść aby ta druga kolumna wyświetlała się w arkuszu 2? Normalnie. Skopiuj pierwszą formułę i dodaj do nazw kolumny B:B nazwę arkusza. Na marginesie zaznaczam że aby to działało źródła jak i odwołania muszą być w tych samych wierszach.
Taka kombinacja z arkuszem pomocniczym, listami przez poprawność danych, nazwami zakresów... Może działaj w tym kierunku?
Witajcie, Może ktoś ma rozwiązanie takiego problemu, a mianowicie.. Mam plik xls z 3ma arkuszami (nazwy miesiąca) w powiedzmy 4rtym arkuszu chcę zdefiniowac polę "nazwa" , gdzie będzie ono nazwą arkusza z którego chce skopiować wartość, oraz "wartość" - wartość pobrana z arkusza o nazwie zdefiniowanej w polu "nazwa". chodzi o jakiś sposób aby formuła...
Witam, potrzebuję wkopiować kilka arkuszy o różnych nazwach z jednego skoroszytu do kilku odrębnych. Jestem nowicjuszką i zupełnie nie wiem, jak sobie z tym poradzić. Znalazłam takie makro, niestety nie wiem jak dopasować je do mojego zadania. Sub Splitbook() MyPath = ThisWorkbook.Path For Each sht In ThisWorkbook.Sheets sht.Copy '(I got...
Wybierz gdzieś komórka dla nazwy arkusza. (np. arkusz3!Z1) [syntax=vb]Private Sub Workbook_BeforeClose(Cancel As Boolean) Range("arkusz3!Z1") = ActiveSheet.Name End Sub Private Sub Workbook_Open() Sheets(Range("arkusz3!Z1")).Activate End Sub [/syntax]
szablon.SaveAs Filename:=sciezka Proponuję użyć SaveCopyAs. Ale nie wiadomo, czy makro (jego nazwa sugeruje tworzenie arkuszy), czy też ma tworzyć nowe pliki.
A może wykonać kopię całego skoroszytu? Wtedy autofiltr zostanie. Najeżdża się na dół skoroszytu gdzie są nazwy arkuszy, najeżdża się myszką na arkusz który należy przekopiować, wciska się prawy guzik myszy, wybiera się opcję "przenieś albo kopiuj" i zaznacza się okienko opcji "kopiuj". Wtedy autofiltr pozostanie.
Można to zrobić na wiele sposobów - mniej lub bardziej elegancko. Np. obszary danych w arkuszach źródłowych oznaczasz nazwami, powiedzmy Z1_A1, Z1_A2, Z1_A3, Z2_A4, Z2_A5, Z2_A6 (zaznaczyć obszar, później Wstaw/Nazwa/Definiuj). Tworzysz pusty skoroszyt Zeszyt3.xls z arkuszami Arkusz1 .. Arkusz6. W kolejnych arkuszach wstawiasz w pierwszej komórce obszaru...
Spróbuj w ten sposób. W C2 wklej =SUMA.JEŻELI(ADR.POŚR("' "&C$1&"'!B$3:B$181"... "&C$1&"'!AH$3:AH$181"... i możesz kopiować we wszystkie strony. Jest jeden kłopot. Nazwy arkuszy rozpoczynają się od spacji, w nagłówkach jest różnie. W formule przyjąłem, że spacja jest...
Ale makro działa , a co to ten 'CommandBoxa'?
Na pewno funkcją, jaką należy zastosować jest LICZ.WARUNKI. Jeśli z pierwszą częścią nie powinno być większych problemów, to z drugą... Spróbuj: [syntax=text]=LICZ.JEŻELI(A!C1:C24;"B")-... auta")[/syntax]Przy takich nazwach arkuszy, Excel "traci orientację" (patrz apostrofy) ;) kryteria2 równie dobrze będzie...
Piszesz, że dane są kopiowane z faktury do arkusza "Raport zbiorczy" ale z kodu wynika, że operujesz cały czas na jednym arkuszu - odwołujesz się do Range niepoprzedzonego innymi nazwami arkuszy... Najpierw przypisujesz jakieś wartości komórek do zmiennych, a potem te zmienne wypisujesz na inne komórki - nigdzie tu nie widać zmiany arkusza. To jak to...
z kilku innych arkuszy Z arkuszy, czy ze skoroszytów? Jeśli z arkuszy (w tym samym skoroszycie) to wstawiasz nazwę arkusza, wykrzyknik i odnosisz się do jego zakresu/komórki. Np. w ten sposób odwołasz się np. do A1: [syntax=vb]=Arkusz1!A1[/syntax] Jeśli ze skoroszytów, to tutaj wyjaśnienie: http://office.microsoft.com/pl-pl/excel-...
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...
Witaj [syntax=vb] Dim Sh As Worksheet Dim intName As Integer Dim shName As String Dim strNazwa As String ActiveWorkbook.Sheets("Template").Copy After:=ActiveWorkbook.Sheets("Template") strNazwa = "projekt" ' tutaj ustawiamy jak ma wyglądać początek nazwy arkusza intName = 0 For Each Sh In ActiveWorkbook.Worksheets shName = Sh.Name If Left(shName, Len(strNazwa))...
nazwa komórka nazwa arkusz nazwa arkusz odwołać nazwa arkusz excel
bascom input bajty airbag kasowanie części żelazka
dobra antena pokojowa wykrywacz metali schemat
Koszt obudowy do prostownika TELWIN LEADER 400 Start Spirala grzejna w suszarce Babyliss Pro Ceramic & Ionic