Renata
Dankiewicz
Operations Manage
System Clerk
- 1
- 2
konto usunięte
Temat: Nazwy dla wielu arkuszy w skoroszycie
Najszybciej zrobisz to przy pomocy VBA. Wklej poniższy kod do modułu i uruchom (F5):
Sub ZmienNazwyArkuszy()
Dim Arkusz As Worksheet
Const WspolnaCzescNazwy As String = "wrzes"
For Each Arkusz In Worksheets
Arkusz.Name = WspolnaCzescNazwy & Arkusz.Index
Next Arkusz
End Sub
--
Paweł Kiraga, piszący blog o praktycznym wykorzystaniu pakietu Microsoft Office
Sławomir
Broda
VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...
Temat: Nazwy dla wielu arkuszy w skoroszycie
W zmiennej nazwa ustawiamy prefix.Numeracja jest nadawana na postawie pozycji danego arkusza w skoroszycie.
Sub nazwy()
Dim nazwa As String
Dim sh As Worksheet
nazwa = "wrzes"
For Each sh In Sheets
On Error GoTo err_h
sh.Name = nazwa & sh.Index
Next sh
Exit Sub
err_h:
Sheets(nazwa & sh.Index).Name = "temp" & CInt(Rnd() * 100)
Resume
End Sub
Sławomir
Broda
VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...
Temat: Nazwy dla wielu arkuszy w skoroszycie
Paweł K.:A kolejne uruchomienia wygenerują błąd :).
Najszybciej zrobisz to przy pomocy VBA. Wklej poniższy kod do modułu i uruchom (F5):
Sub ZmienNazwyArkuszy()
Dim Arkusz As Worksheet
Const WspolnaCzescNazwy As String = "wrzes"
For Each Arkusz In Worksheets
Arkusz.Name = WspolnaCzescNazwy & Arkusz.Index
Next Arkusz
End Sub
--
Paweł Kiraga, piszący blog o praktycznym wykorzystaniu pakietu Microsoft Office
konto usunięte
Temat: Nazwy dla wielu arkuszy w skoroszycie
Sławomir Broda:
Paweł K.:A kolejne uruchomienia wygenerują błąd :).
Najszybciej zrobisz to przy pomocy VBA. Wklej poniższy kod do modułu i uruchom (F5):
Sub ZmienNazwyArkuszy()
Dim Arkusz As Worksheet
Const WspolnaCzescNazwy As String = "wrzes"
For Each Arkusz In Worksheets
Arkusz.Name = WspolnaCzescNazwy & Arkusz.Index
Next Arkusz
End Sub
--
Paweł Kiraga, piszący blog o praktycznym wykorzystaniu pakietu Microsoft Office
Nie wydaje mie się ;-)
konto usunięte
Temat: Nazwy dla wielu arkuszy w skoroszycie
Sławomir Broda:
For Each sh In Sheets
Nie polecam używania kolekcji Sheets, gdy chcemy wykonać pętle tylko po arkuszach.
Renata
Dankiewicz
Operations Manage
System Clerk
Sławomir
Broda
VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...
Temat: Nazwy dla wielu arkuszy w skoroszycie
Paweł K.:A proszę przestawić jedną zakładkę :).
Sławomir Broda:
Paweł K.:A kolejne uruchomienia wygenerują błąd :).
Najszybciej zrobisz to przy pomocy VBA. Wklej poniższy kod do modułu i uruchom (F5):
Sub ZmienNazwyArkuszy()
Dim Arkusz As Worksheet
Const WspolnaCzescNazwy As String = "wrzes"
For Each Arkusz In Worksheets
Arkusz.Name = WspolnaCzescNazwy & Arkusz.Index
Next Arkusz
End Sub
--
Paweł Kiraga, piszący blog o praktycznym wykorzystaniu pakietu Microsoft Office
Nie wydaje mie się ;-)
konto usunięte
Temat: Nazwy dla wielu arkuszy w skoroszycie
Sławomir Broda:
Paweł K.:A proszę przestawić jedną zakładkę :).
Sławomir Broda:
Paweł K.:A kolejne uruchomienia wygenerują błąd :).
Najszybciej zrobisz to przy pomocy VBA. Wklej poniższy kod do modułu i uruchom (F5):
Sub ZmienNazwyArkuszy()
Dim Arkusz As Worksheet
Const WspolnaCzescNazwy As String = "wrzes"
For Each Arkusz In Worksheets
Arkusz.Name = WspolnaCzescNazwy & Arkusz.Index
Next Arkusz
End Sub
--
Paweł Kiraga, piszący blog o praktycznym wykorzystaniu pakietu Microsoft Office
Nie wydaje mie się ;-)
Procedura, którą podałem należy do serii szybkich, jednorazowych, doraźnych procedur, do użycia przez świadomego użytkownika. Zmieniach nazwy w jednym skoroszycie i temat zamknięty. Po co mam uruchamiać kolejny raz tę procedurę, skoro wynik działania był poprawny?
Zgodnie z Brzytwą Ockhama oraz regułą KISS, dla tego typu procedur nie dorabiam obsługi błędu, bo nie jest konieczna.
Procedura, którą podałeś zawiera obsługę błędu, jednak w tym samym przypadku (przestawienie pozycji arkusza i ponowne uruchomienie kodu) nie ma pewności, że CInt(Rnd() * 100) nie wygeneruje nam dwa razy takiej samej liczby, tak więc obsługa błedów nie zawsze zadziała dobrze. Przy jednym nie, bo jest prefix, ale jak pozmieniamy pozycję wielu arkuszy (jak szaleć, to szaleć), to już prawdopodobieństwo dubleka wzrasta.
Jeżeli już chcielibyśmy koniecznie dobrabiać obsługę błędów (co w tym przypadku moim zdaniem jest zbędne zbędne i tej wersji będę się trzymał, używamy prosty kod raz), to w procedurze pętlę ze zmianą nazw arkuszy powinniśmy uruchomić dwa razy: raz zmieniając nazwy na takie, żeby zmienić na unikalne (metoda dowolna), a drugie uruchomienie byłoby tym właściwym. Wtedy eliminujemy błąd oraz wynik zmian nazwy nie wymaga od nas już żadnych zmian (te arkusze z prefiksami trzeba będzie zmienić ręcznie).
Marek
Zadęcki
pracownik biurowy i
kadrowy
Temat: Nazwy dla wielu arkuszy w skoroszycie
Jeśli pozwolicie ja zadam pytanie innego rodzaju.Mam plik z arkuszami od styczeń do grudzień 2012 (poprawnie zapis wygląda styczeń_2012...grudzień_2012). Jak powinno wyglądać makro, które po zmianie roku w komórce A4 zmieni końcówkę nazwy wszystkich arkuszy?
W A4 mam link do listy rozwijalnej w innym arkuszu.
Z góry dziękuję za odpowiedź.
I jeszcze jeden kłopot - używam Excela 2003 - bardzo proszę o makro, które będzie działać w tej wersji i w wersji 2002 (taką mam w pracy).
konto usunięte
Temat: Nazwy dla wielu arkuszy w skoroszycie
Marek Zadęcki:Nie będę czekał, aż pozwolą, dam małą podpowiedź ode mnie. Po drobnych modyfikacjach można zastosować kody do zmiany nazw podane przez piszących w tym wątku.
Jeśli pozwolicie ja zadam pytanie innego rodzaju.
Mam plik z arkuszami od styczeń do grudzień 2012 (poprawnie zapis wygląda styczeń_2012...grudzień_2012). Jak powinno wyglądać makro, które po zmianie roku w komórce A4 zmieni końcówkę nazwy wszystkich arkuszy?Wartość z komórki A4 aktywnego arkusza odczytamy za pomocą
W A4 mam link do listy rozwijalnej w innym arkuszu.
Range("A4").Value
Czyli uruchamiamy makro z tego arkusza, gdzie jest to A4. Jeżeli z innego, to przed oczytaniem wartości należy dodać odwołanie do arkusza:
Worksheets("NazwaArkusza").Range("A4").Value
Przyda się też funkcja Len (sprawdziwmy długość nazwy poszczególnych arkuszy), Left (pobierzemy nazwę arkusza, ilość znaków nazwy pomniejszona o 4, bo będziemy zmieniać rok).
Z góry dziękuję za odpowiedź.Te wskazówki pozwolą napisać makro, które będzie działało również w tych starszych wersjach Excela.
I jeszcze jeden kłopot - używam Excela 2003 - bardzo proszę o makro, które będzie działać w tej wersji i w wersji 2002 (taką mam w pracy).
--
Paweł Kiraga, piszący blog o praktycznym wykorzystaniu pakietu Microsoft Office
Marek
Zadęcki
pracownik biurowy i
kadrowy
Temat: Nazwy dla wielu arkuszy w skoroszycie
Paweł K.:
Te wskazówki pozwolą napisać makro, które będzie działało również w tych starszych wersjach Excela.
--
Paweł Kiraga, piszący blog o praktycznym wykorzystaniu pakietu Microsoft Office
Bardzo przepraszam - czy mógłbym prosić o kod całego makra dostosowany do moich potrzeb.
Jestem ledwie raczkującym w dziedzinie pisania makr. Moje własne dokonania nie są warte publikacji. Wciąż się uczę wyznając zasadę, że najlepiej uczyć się od fachowców na ich przykładach.
Ideałem byłby załącznik. Ale o to nie śmiem prosić - poza tym skopiowanie i umieszczenie w module makra lub Worksheet to już nie jest filozofia.
Z góry dziękuję za poświęcony czas.
Sławomir
Broda
VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...
Temat: Nazwy dla wielu arkuszy w skoroszycie
Marek Zadęcki:Nauka to chyba nie przyklejanie gotowego kodu? Bo o to po raz kolejny na tym forum Pan prosi.
Paweł K.:
Te wskazówki pozwolą napisać makro, które będzie działało również w tych starszych wersjach Excela.
--
Paweł Kiraga, piszący blog o praktycznym wykorzystaniu pakietu Microsoft Office
Bardzo przepraszam - czy mógłbym prosić o kod całego makra dostosowany do moich potrzeb.
Jestem ledwie raczkującym w dziedzinie pisania makr. Moje własne dokonania nie są warte publikacji. Wciąż się uczę wyznając zasadę, że najlepiej uczyć się od fachowców na ich przykładach.
Ideałem byłby załącznik. Ale o to nie śmiem prosić - poza tym skopiowanie i umieszczenie w module makra lub Worksheet to już nie jest filozofia.
Z góry dziękuję za poświęcony czas.
Ps.: Proszę jeszcze czcionkę na 40 i migające kolory dodać, gdyby ktoś przez przypadek nie zauważył b i u.Sławomir Broda edytował(a) ten post dnia 08.09.12 o godzinie 11:10
Marek
Zadęcki
pracownik biurowy i
kadrowy
Temat: Nazwy dla wielu arkuszy w skoroszycie
Panie Sławku,pojęcia nie mam czemu w Panu tyle złośliwości? Czy Pan od urodzenia był geniuszem Excela?
Nie proszę dlatego, że mi się nie chce próbować (jak wynika z Pana tonu wypowiedzi).
Fizycznie nie mam czasu. Gdybym go miał - sam bym do wszystkiego dochodził.
Nie jest to forum do wynurzeń osobistych. Poprzestanę więc na tej skrótowej odpowiedzi.
Jeśli ktoś z Państwa może poświęcić swój cenny czas i podać mi pełny kod makra (dla Excela 2002) będę bardzo wdzięczny.
Jeśli nie - proszę o nie zamieszczanie złośliwych komentarzy. Jest mi przykro, że zmuszony jestem prosić o bezpłatną pomoc. Jak tylko mogę unikam tej formy. Niestety ostatnio życie zmusza mnie do bardzo szybkich decyzji i jeszcze szybszych reakcji.
Sławomir
Broda
VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...
Temat: Nazwy dla wielu arkuszy w skoroszycie
To nie złośliwość. To proste stwierdzenie faktu. Z jednej strony cały czas Pan chce się uczuć, a z drugiej cały czas chce gotowy kod. O tą sprzeczność mi chodzi.
Marek
Zadęcki
pracownik biurowy i
kadrowy
Temat: Nazwy dla wielu arkuszy w skoroszycie
Nie widzę w tym żadnej "sprzeczności". Fizycznie nie mam kiedy się uczyć.Zdaję sobie sprawę, że może to zostać odczytane jako wykręt, ale taka jest prawda. Na moje potrzeby najlepiej by było, by doba miała co najmniej 48 godzin. Nie lubię niczego odkładać na potem, jednak z konieczności muszę.
Dlatego proszę o "gotowca". Jestem przekonany, że to nie sprawi specjaliście w dziedzinie VBA żadnych problemów.
Tomasz
Gryzio
Dyrektor
zarządzający/Trener/
Konsultant - It
School
Temat: Nazwy dla wielu arkuszy w skoroszycie
Witam,Panie Marku proszę bardzo kod całego makra - makra z pierwszego postu autorstwa Kolegi Sławka Brody (i tutaj podkreślam, że pełne prawa do kodu i pozdrowienia lądują u Kolegi) dostosowany do Pana Potrzeb.
Pozdrawiam!Tomasz Gryzio edytował(a) ten post dnia 08.09.12 o godzinie 15:19
Sławomir
Broda
VBA, Excel, Access,
SAP i wszystko
związane z
automatyzac...
Temat: Nazwy dla wielu arkuszy w skoroszycie
Tomasz Gryzio:Kurczę, a już wisiałem na telefonie do prawnika żeby pozew pisać :(.
Witam,
Panie Marku proszę bardzo kod całego makra - makra z pierwszego postu autorstwa Kolegi Sławka Brody (i tutaj podkreślam, że pełne prawa do kodu i pozdrowienia lądują u Kolegi) dostosowany do Pana Potrzeb.
Pozdrawiam!
Co do jpg'a to gratuluję poczucia humoru :).
Marek
Zadęcki
pracownik biurowy i
kadrowy
Temat: Nazwy dla wielu arkuszy w skoroszycie
Tomasz Gryzio:
Witam,
Panie Marku proszę bardzo kod całego makra - makra z pierwszego postu autorstwa Kolegi Sławka Brody (i tutaj podkreślam, że pełne prawa do kodu i pozdrowienia lądują u Kolegi) dostosowany do Pana Potrzeb.
Pozdrawiam!
Faktycznie pomysł z jpg nauczy mnie przepisywać bezbłędnie. Dziękuję Panie Tomaszu.
Po przetestowaniu potrzebuję jeszcze modyfikacji
1. obecnie otrzymuję wrzes_13, wrzes1_13 itd
2. chciałbym by Excel modyfikował tylko nazwy arkuszy miesięcy (od stycznia do grudnia) a pozostałe nazwy zostawiał niezmienne.
3. jak w kodzie kończącym działanie makra zawrzeć nakaz zachowywania pliku z nazwą zakończoną "_rok " (np. kadry_13.xls)
Kombinowałem z tablicą
Array={styczeń, luty, marzec, kwiecień, maj, czerwiec, lipiec, sierpień, wrzesień, październik, listopad, grudzień}
ale nie wiem jak zmienić podany przez Pana kod.
Bardzo proszę o podpowiedź. Marek Zadęcki edytował(a) ten post dnia 09.09.12 o godzinie 00:20
Tomasz
Gryzio
Dyrektor
zarządzający/Trener/
Konsultant - It
School
Temat: Nazwy dla wielu arkuszy w skoroszycie
Panie Marku,Spokooojnieee... - jeden temat na raz.
ad 1
Każde makro jest uzależnione od warunku początkowego (dla jakiego jest uruchamiane) - określił go Pan zdaniem:
Mam plik z arkuszami od styczeń do grudzień 2012 (poprawnie zapis wygląda styczeń_2012...grudzień_2012). Jak powinno wyglądać makro, które po zmianie roku w komórce A4 zmieni końcówkę nazwy wszystkich arkuszy?.
Czy przepisane z obrazka makro dla powyższego warunku podczas testowania generuje: obecnie otrzymuję wrzes_13, wrzes1_13 itd ?
Mam wrażenie, że przepisał Pan Makro błędnie - myląc zmienną nazwa z .Name w kodzie lub testuje Pan makro nie dla przypadku, który określił Pan wyżej.
Dla pewności proszę o wklejenie kodu, który Pan przepisał.
ad 2
Zakładam, że chodzi Panu o to, że ma Pan więcej niż 12 arkuszy w jednym skoroszycie i chciałby Pan, żeby modyfikacji nazw podlegały jedynie te, które spełniają w sensie nazwy warunek: NazwaMiesiaca_NumerRoku ?
Proszę o wklejenie fragmentu kodu, który Pan przepisał, który odpowiedzialny jest za - Uwaga(!) - zmianę nazwy każdego arkusza ze zbioru arkuszy.
ad 3
Proszę o wklejenie kodu makra, który udało się Panu nagrać przy pomocy nagrywarki kodu czyniącego na skoroszycie np Zeszyt1.xls nie mniej i nie więcej niż:
1. Zapisz jako
2. Na pulpicie
3. Z nazwą Zeszyt1_13.xls
I od tego momentu będziemy myśleć dalej.
PozdrawiamTomasz Gryzio edytował(a) ten post dnia 09.09.12 o godzinie 13:52
- 1
- 2
Podobne tematy
-
Fani Excela » Zestawienie wielu arkuszy w jeden - Makro, pętla -
-
Fani Excela » Zmiana nazwy kolumny -
-
Fani Excela » arkusze widoczne tylko dla wybranych użytkowników -
-
Fani Excela » Suma warunków dla kilku exceli -
-
Fani Excela » Kurs: MS Excel dla średniozaawansowanych marzec 2014 Gliwice -
-
Fani Excela » pole kombi do arkuszy -
-
Fani Excela » Kopiowanie i wklejanie wielu komórek -
-
Fani Excela » DLA OSÓB KTÓRE POTRZEBUJĄ WPROWADZIĆ DO SUBIEKTA GT DUŻĄ... -
-
Fani Excela » Wczytanie wielu raportów w identycznych strukturalnie... -
-
Fani Excela » Wyszykiwanie najwcześniejszych dat dla wybranych warości -
Następna dyskusja: