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]
[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 :)
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
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...
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ć...
[syntax=vb]Sub lista() Dim r& r = 2 For Each sh In ThisWorkbook.Sheets If sh.Name <> "Lista" Then Sheets("Lista").Cells(r, 1) = sh.Name r = r + 1 End If Next End Sub [/syntax]
.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,...
jak zapisać dla zmiennych nazw arkuszy Jeśli zadeklarujesz jako stringi i będziesz tworzył funkcjami tekstowymi nowe nazwy arkuszy to możesz to zrealizować np [syntax=vbscript]Sheets("dest").Copy After:=Sheets(4) Sheets("dest (2)").Select Sheets("dest (2)").Name = nazwa dWb.Save[/syntax]
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'.
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...
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
Odwołanie do aktywnego arkusza może rozwiąże problem.
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))....
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ć.
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
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...
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...
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...
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())...
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...
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 <>...
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")...
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...
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")
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...
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]"...
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 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...
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
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...
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
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ę...
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]
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.
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
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...
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...
Możesz użyć MSQuery i następującej kwerendy: SELECT T1.data, T1.cena AS cena_A, T2.cena AS cena_B FROM [Arkusz1$] T1, [Arkusz2$] T2 WHERE T1.data = T2.data gdzie: Arkusz1, Arkusz2 - nazwy arkuszy z tabelami do porównania
Zdaje się, że gubi źródło. Spróbuj w funkcji zapodać pełne adresy: Workbooks("nazwa").Sheets("arkusz")...
Nie wiem po co początek kodu ale kod: For Each ark In Worksheets If ark.Name <> "Zestawienie_ogólne" Then Range("A7:A1000").... Cells(i, 1).Value = ark.Name i = i + 1 End If Next należy na spokojnie przeanalizować. Pętla ma być na wszystkich arkuszach. czyść od A7 do A1000 w komórce A7 wpisz nazwę arkusz...
Najwygodniej byłoby zrobić UserForm z dwoma ComboBox'ami, gdzie na podstawie wyboru pierwszego (nazwa arkusza) wypełniało by się drugi danymi z dwóch kolumn. Bardzo uprościłoby ujednolicenie nagłówków. Oczywiście jest to do zrobienia w obecnej postaci, ale nie we wszystkich arkuszach występują obie poszukiwane kolumny. Co w takim przypadku? http://obrazki.elektroda.pl/5048931400_1...
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-...
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
Witam. Czy ktoś może mi powiedzieć, jak stworzyć procedurę MsgBox która informuje o nazwach wszystkich kolejnych arkuszy w aktywnym skoroszycie?
A można zmienna i zamienić na nazwę arkusza a nie wartość liczbową to by rozwiązało problem. Po lewej stronie znaku "=" zmienna i to indeks arkusza. Wyrażenie "Sheets(i).Name" zwraca wartość tekstową (nazwę). Nie ma to znaczenia dla prawej strony. W nowym (standardowym) pliku "Arkusz1" i "Sheets(1).Name" to ten sam string. Kluczową sprawą w tym przypadku...
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...
No tak, gdyby nie te święta... [syntax=vb]nazwa1 = "tydzień40.xls" zmienna1 = "Zaległe" & Val(Right(Left(nazwa1, 9), 2)) - 1 & ".xls" If Weekday(Date, vbMonday) = 1 Then zmienna2 = StrConv(Format(Weekday(6), "dddd"), vbProperCase) Else zmienna2 = StrConv(Format(Date - 1, "dddd"), vbProperCase) End If[/syntax]
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...
To odwołaj się do indeksu lub nazwy kodowej.
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 :)
Próbowałem pozmieniać nazwy arkuszy na "ActiveSheet" A tak? [syntax=vbscript]Sub Sort1() With ActiveSheet .Range("F607:J617").Select .Sort.SortFields.Clear .Sort.SortFields.Add Key:=Range( _ "H607:H617"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _ xlSortNormal End With With ActiveSheet.Sort .SetRange Range("F607:J617") .Header = xlGuess...
To sprawdź sobie takie rozwiązanie.
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...
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).
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"...
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:
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...
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...
Odwołanie zewnętrzne robisz np tak. [syntax=vb]=SUMA('C:\Raporty\[Budżet.xls... Równie dobrze możesz zrobić wyszukiwanie. Musisz. 1. Znać nazwy arkuszy na etapie projektowania arkusza zbiorczego 2. Zadbać o ich istnienie, format itd. Ten sposób dotyczy arkuszy, które są ZAMKNIĘTE!. p.s. Ponowię prośbę do autorów postów dotyczących...
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))...
Mam dwa arkusze (planuje więcej) Dane jako baza do wszystkiego w niej są kolejne dni jako kolumny próbuje wstawić w makro w akruszu o nazwie "1" skrypt czytający nazwę aktualnego arkusza (1) i zakreślić zakres dajmy na to 1 odpowiadający c:c w arkuszu Dane. Coś nie bardzo mi to wychodzi... odpowiednio później 2 d:d, 3 e:e: 4 f:f: [syntax=vb]Set znaleziona...
Witam wszystkich. Jaka jest możliwość zmiany ścieżki dostępu do komórki w określonym skoroszycie i danym a arkuszu na zmienną? Mam takie odwołanie: ='D:\URLOPY 2010\[URLOP 2010.xls]STYCZEŃ'!AL68*8 jak zmienić segment tej ścieżki odpowiedzialny za nazwę arkusza STYCZEŃ na zmienną żebym mógł sobie w innej komórce wpisać nazwy innych miesięcy bez potrzeby...
Post pod postem, ale jakoś chcę zwrócić uwagę autora :) Tak z niedzielnych nudów zacząłem kombinować z tymi pętlami. A jak już jest (prawie) gotowe, to wrzucam. Może się przyda... Warunkiem jest umieszczenie pracowników w odpowiednich wierszach zgodnych z Nr ewidencyjnym i Lp. tzn jeśli Pani Monika ma NrEw. 2 i jest w 4 wierszu (Lp 3), to tak musi być...
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...
mam w skoroszycie kilkadziesiąt arkuszy, każdy o jakieś nazwie. Potrzebuję zrobić listę rozwijalną, która będzie pobierała nazwy wszystkich arkuszy i umożliwiała wybór. Po wybraniu odpowiedniej pozycji będzie przenosiła do wybranewgo arkusza. Proszę o pomoc.
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ć...
w necie znalazłem coś takiego No i dobrze. Jednak nie ma się to nijak do pytania z #1. Pozdrawiam.
Nie jest dla mnie to jasne. O ile kryteria stworzenia arkusza są jasne (bo jest on tworzony na podstawie formularza - i podejrzewam że arkuszy może być kilka) - to na jakiej podstawie ma być wybierany arkusz? Też na podstawie nazwy z formularza? W każdym razie FormulaR1C1 albo Value możesz zastosować do komórki w dowolnym arkuszu, nie tylko bieżącym:...
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.
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...
[syntax=txt]=MAX((INDIRECT(E1&"!C:C"...
...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.
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ą) :)
Czy jest coś takiego możliwe do zrealizowania? Tak :please: np tak jak na zrzucie 977452 i w załączniku :spoko: 977453
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:...
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...
Czy uruchomiłeś kod w pliku z załącznika, czy w swoim skoroszycie? Jeśli w swoim skoroszycie, to czy dodałeś arkusz o nazwie "Ostatni"? Te komunikaty wskazują, że ze skoroszytu próbuje się usunąć wszystkie arkusze. Wtedy przy usuwaniu ostatniego pojawiają się takie komunikaty.
Spróbuj [syntax=vb]Sub Makro_kopiowanie() ' This macro will import a file into this workbook PathName = Range("D3").Value Filename = Range("D4").Value ControlFile = ActiveWorkbook.Name wrs = 5 'nazwy arkuszy od "D5" Workbooks.Open Filename:=PathName & Filename Windows(ControlFile).Activate With Sheets("Podsumowanie") Do While .Cells(wrs, 4) <>...
Poprawiony kod, zmienne masz opisane, więc pozostaje przypisać do nich odpowiednie wartości (makro nie sprawdza czy arkusze o zadanych nazwach istnieją w skoroszycie): [syntax=vb]Sub kody_RegEXP() Dim sShSrc$ 'nazwa arkusza źródłowego Dim lRowSrc& 'od którego wiersza sprawdzać dane wejściowe Dim sCol$ 'kolumna z danymi wejściowymi Dim sShDest$ 'nazwa...
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...
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]
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
Np filedialog: .Filters.Add "Pliki Excel", "*.xls" Można i bez otwierania. Spróbuj coś z makr Excel4 arg = "'" & p & "[" & f & "]" & s & "'!" & Range(r).Range("A1"... , xlR1C1) ExecuteExcel4Macro(arg) Gdzie p to ścieżka do pliku, f nazwa...
Tak, oczywiście jest możliwe. Najprościej używając funkcji Dir w pętli Do Until , jednocześnie zmieniając nazwy kopiowanym arkuszom wg. aktualnie otwartego, pliku źródłowego.
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...
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...
Umieść to co już zrobiłeś. Postaram się skończyć.
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")....
With Arkusz1 jest dobrze, to jest nazwa kodowa arkusza. Na pierwszy rzut oka błędu nie widać. Ale nie widać też w którym wierszu ten błąd się pojawia. Wykonaj program krokowo i po ustaleniu miejsca błędu wykonaj jeszcze raz, zatrzymując się przed błędem i sprawdź wtedy co zawierają poszczególne zmienne. Np. Jaką wartość ma zmienna SelRow?
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,...
szablon.SaveAs Filename:=sciezka Proponuję użyć SaveCopyAs. Ale nie wiadomo, czy makro (jego nazwa sugeruje tworzenie arkuszy), czy też ma tworzyć nowe pliki.
Być może trzeba [syntax=vb] NextImportRow = Worksheets("Check-in").Cells(Rows.Count, "A").End(xlUp).Row + 1 [/syntax]
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.
Poprawiłem, co można było poprawić. Wywaliłem, co trzeba było wyrzucić. Uzupełniłem w to, co brakowało. Nie rozumiem kolorowania, więc odpuściłem. Jeśli dobrze pojąłem opis, powinno działać prawidłowo. Moje uwagi: 1. Odwołując się do nazw arkuszy, zmiennych, etc, pamiętaj: Wielkość liter ma znaczenie. 2. Każdą pętlę Do sprawdzaj krokowo (klawisz [F8],...
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...
Dlaczego, dlaczego... Taka jest składnia tego polecenia i już. Masz tu przykład połączenia kilku poleceń w jednej linijce - dodajesz nowy worksheet, w parametrze after:= podajesz po którym arkuszu ma go wstawić, a na końcu zmieniasz jego nazwę .Name na własną... Wpisz na google VBA worksheet add i otwórz tzn jak mozna to sprawdzic? Jak wyżej. Google:...
nazwa komórki nazwa arkusza makro nazwa arkusza nazwa arkusza komórki
pralka połowa załadunek budowa odbiornika skrzynia automatyczna dodge
Panasonic SC-AKX320 – komunikat REMOTE 1, pilot nie działa, synchronizacja kodu Moment dokręcenia śrub panewek korbowodu Audi A8 4.2