Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Rozwiązano] Automatyczne kopiowanie komórek Excel do drugiego arkusza

21 Maj 2020 11:21 279 9
  • Poziom 9  
    Czy można w jakikolwiek sposób tworzyć automatyczna kopię fragmentu arkusza do drugiego arkusza? Kopiowanie automatyczne samej zawartości jest proste, kopiowanie ręczne (kopiuj/wklej) z zachowaniem formatowania jest proste. Ale czy jest możliwość kopiowania automatycznego z formatowaniem?
  • Poziom 34  
    Czy rozważałeś grupowanie arkuszy? Co wpisujesz do jednego, automatycznie pojawia się w drugim (i kolejnych, jeśli więcej arkuszy należy do grupy).
    Poza tym przydałoby się, żebyś opisał dokładniej co chcesz osiągnąć. Co rozumiesz przez automatycznie? Co rozumiesz przez kopię fragmentu arkusza? To się trochę kłóci z automatyzmem. Chyba, że chodzi o wstępne ustalenie obszaru, w ramach którego ma być automatyczne kopiowanie, a poza tym obszarem nie kopiować. Coś takiego to tylko makrem, bo grupowanie działa w całych arkuszach, nie we fragmentach.
    A może chodzi o formuły (odwołania) do komórek z innych komórek? Najlepiej pokaż to w załączniku, bo ten opis jest niejasny.
  • Poziom 9  
    Konkrety:
    robię cennik z kolumnami: numer katalogowy, opis, cena, kolejne kolumny to kalkulacje. Chciałbym, aby część z numerem katalogowym, opisem i ceną końcową automatycznie kopiowała się wraz z formatowaniem kolumn do drugiego arkusza. Najlepiej jakby skasowanie wiersza w arkuszu źródłowym powodowało również skasowanie wiersza w arkuszu docelowym. Czy mój opis ma sens?
  • Poziom 34  
    Opis może i ma sens, ale nie wyjaśnia kolejności czynności i w związku z tym nie określa sposobu rozwiązania problemu. Jeśli możesz wprowadzić najpierw te kolumny, które mają być skopiowane, a później pozostałe, to możesz skorzystać z grupowania, a potem je wyłączyć. Musisz jednak zadbać o spójność danych, to znaczy jak chcesz usunąć wiersz, to tylko w trybie grupowania (albo powtórzyć w obu arkuszach), bo później jak zgrupujesz arkusze z przesuniętymi danymi, to zrobisz sobie bałagan.
    Możesz też zrobić makro zdarzeniowe, które będzie kopiować zmiany w komórkach w zaplanowanych z góry kolumnach. Wtedy nie będzie istotna kolejność wprowadzanych zmian, ale z kolei trudniejsza będzie poprawna obsługa wstawienia lub skasowania wiersza.
    Wszystko trzeba dobrze przemyśleć i przetestować wszystkie rodzaje czynności, które planujesz.
  • Poziom 9  
    Dotychczas robiłem to w taki sposób.
    1. w jednym arkuszu tworzę cennik (cennik1)
    2. kopiuję pierwsze trzy kolumny z cennika i wklejam do drugiego arkusza (cennik2) z zachowaniem formatowania
    3. w skopiowanym cenniku wartości w kolumnie cena odnoszę do ceny końcowej w cenniku (=Cennik1!C1)
    wszystko jest OK do czasu modyfikacji - jeżeli dodaję kolejny produkt to musze go ręcznie kopiować do cennika 2, to samo dotyczy usuwania. Próbowałem odniesienia wartości wszystkich kolumn, ale wtedy psuje się formatowanie.
  • Poziom 34  
    Pokaż w załączniku jak to wygląda, ceny możesz zmienić na fikcyjne. Na czym polega to formatowanie, które chcesz przenosić? Czy ono jest stałe dla całych kolumn, czy każda komórka ma własne?
    Po tym ostatnim opisie wydaje mi się, że grupowanie arkuszy powinno wystarczyć. Istotne tylko jest czy wiersze w obu arkuszach sobie zawsze będą odpowiadać, to znaczy czy np. wiersz 35. w obu arkuszach będzie oznaczać ten sam produkt?
  • Poziom 9  
    W załączeniu przykład. Teraz są przenoszone wartości w kolumnie C z arkusza calc do cennik pub. Najlepiej jakbym mógł przenosić wszystkie kolumny ABC z zachowaniem formatowania z arkusza calc. Formatowanie - mam na myśli wielkość i kolor czcionki, ewentualne scalenia komórek, itd.
  • Poziom 34  
    Wydaje mi się, że najlepszym rozwiązaniem w przypadku wartości stałych, wpisywanych z klawiatury jest stosowanie grupowania arkuszy. Wtedy w obu arkuszach jest dokładnie ta sama zawartość. Pozwala to również na formatowanie komórek, ukrywanie i odkrywanie wierszy, usuwanie i wstawianie wierszy. Trzeba tylko zadbać, żeby wiersze sobie odpowiadały. Poprawki można wprowadzać w dowolnym ze zgrupowanych arkuszy. I ważne, żeby nie zapomnieć rozgrupować arkuszy, zanim będziemy wprowadzać jakieś formuły specyficzne dla pojedynczego arkusza.
    Żeby zgrupować arkusze trzeba kliknąć drugi arkusz przy wciśniętym Shift lub Ctrl. Żeby je rozdzielić, należy kliknąć arkusz nienależący do grupy, albo pod prawym przyciskiem myszy z menu podręcznego wybrać Rozgrupuj arkusze.
    Jeśli chodzi o kolumnę C, gdzie w jednym arkuszu są formuły obliczeniowe, a w drugim odwołania do nich, to napisałem Ci funkcję UDF, która w połączeniu ze zdarzeniem Calculate, kopiuje wartość komórki źródłowej wraz z formatowaniem (ale tylko formatowaniem całej komórki). Wydaje mi się, że nie używasz formatowania pojedynczych znaków,więc to nie powinno być ograniczeniem.
    Trzeba tylko mieć świadomość, że zmiana samego formatowania nie powoduje przeliczenia arkusza, więc jeśli zmieniasz tylko formatowanie, to funkcja od razu nie zadziała. Trzeba wywołać formułę do edycji i przeliczyć ją. Funkcja nazywa się F_Copy i przyjmuje 1 argument - odwołanie do zakresu, który chcesz skopiować. Działa również tablicowo. Funkcja jest zapisana częściowo w module uniwersalnym, częściowo w module skoroszytu. Obie części muszą współdziałać.
    Możesz jej użyć również w kolumnach A i B, jeśli uznasz to za wygodniejsze od grupowania arkuszy. Trzeba poeksperymentować. Przy wstawianiu nowych wierszy funkcje trzeba jednak kopiować ręcznie. Chyba, że zastosujesz tabelę Excela.
  • Poziom 9  
    Dziękuję za pomoc. Najlepszym rozwiązaniem okazało się zrobienie makra, które kopiuje automatycznie zawartość pierwszych trzech kolumn do nowego arkusza.
  • Poziom 9  
    Dziękuję za pomoc. Najlepszym rozwiązaniem okazało się zrobienie makra, które kopiuje automatycznie zawartość pierwszych trzech kolumn do nowego arkusza.

    Dodano po 1 [minuty]:

    Nagrałem makro kopiujące potrzebne dane do nowego arkusza