logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Excel 2007 - Odejmowanie od wartości danej komórki wartości wklejonej ze schowka

Ipswich85 11 Gru 2014 14:37 5649 7
REKLAMA
  • #1 14212682
    Ipswich85
    Poziom 2  
    Posty: 3
    Witam,

    Szukam rozwiązania problemu z którym borykam się od jakiegoś czasu używając Excela 2007. Pracuje na arkuszu w który wklejam dane pochodzące z zewnetrznego programu (Sabre Red).

    Obecnie wygląda to tak:

    W jednej komórce (powiedzmy A1) znajduje się wartość od której muszę odjąć inną wartość (ze schowka), tak żeby w innej komórce (np B1) pojawił się wynik tego działania.

    Żeby to zrobić zaznaczam komórkę B1, wpisuję = po czym klikam w komórkę A1 następnie daje znak - i wklejam (ctrl+v) zawartosc schowka. Dzięki temu mam w komórce B1 formułę =A1-(jakas liczba), która po enterze zwróci mi pożądaną wartość. Działa to dobrze, ale zajmuje zbyt dużo czasu przy ilości danych, które sa wklejane.

    Zastanawiałem się czy istnieje możliwość napisania takiej formuły w komórce B1, która nie zostałaby nadpisana przez wklejenie do tej komórki wartości ze schowka i która jednocześnie odejmowałaby wklejoną wartość od wartości w komórce A1. Wiem, że dałoby się to zrobić wykorzystując dodatkową komórkę na zmienną np C1 i wklepanie w B1 =A1-C1 i wklejanie wartosci z Sabre do C1, ale to rozwiązanie z powodów narzuconych z góry (nie mogę zmienić układu arkusza) niestety nie wchodzi w grę.

    Jest w ogóle możliwe zrobienie czegoś takiego?


    Z gory dziekuje za pomoc,

    Pozdrawiam!
  • REKLAMA
  • #2 14212698
    marek003
    Poziom 40  
    Posty: 4600
    Pomógł: 799
    Ocena: 483
    W ogóle nie masz żadnej wolnej komórki by tam wklejać dane?
    A może dołóż dodatkowy arkusz (choć jeżeli to jedna liczba to trochę bez sensu)
    Pozostaje makro - ale czy to będzie szybciej?
  • REKLAMA
  • #3 14212738
    lesławek
    Poziom 32  
    Posty: 1529
    Pomógł: 190
    Ocena: 294
    Masz przecież opcję "wklej specjalnie" i odejmij
  • Pomocny post
    #4 14212776
    marek003
    Poziom 40  
    Posty: 4600
    Pomógł: 799
    Ocena: 483
    lesławek - tak się nie da. Sam spróbuj - ale skopiuj liczbę a nie komórkę.

    W załączeniu proste makro.
    Uruchomisz skrótem klawiszowym ctrl+m (można to zmienić)

    Makro odejmuje od komórki z lewej coś co jest w schowku i wprowadza to formułą w zaznaczonej komórce.

    Kod: text
    Zaloguj się, aby zobaczyć kod


    edit
    ---------------------------
    Dodałem prostą obsługę błędów gdy np. zamiast liczby w schowku będzie tekst z enterami albo jakieś zdjęcie.
    Załączniki:
    • Zeszyt1.xls (43 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • #5 14212843
    lesławek
    Poziom 32  
    Posty: 1529
    Pomógł: 190
    Ocena: 294
    No tak, ale w schowku jest jedna liczba? Mi się wydaje że przynajmniej kolumna.
  • REKLAMA
  • #6 14212867
    Ipswich85
    Poziom 2  
    Posty: 3
    @Lesławek w schowku jest jedna liczba.

    @marek003 makro to też jakieś rozwiązanie, dzięki! Nie wiem jeszcze czy okaże się szybsze, ale warto spróbować.

    Nie tylko wiem czy dobrze rozumiem:

    ActiveCell.FormulaR1C1 = "=RC[-1]-" & mem.GetText

    "=RC[-1]- odnosi się do pierwszej kolumny na lewo od miejsca w które chce wkleić dane? czyli np jak bym chciał brać daną od której odejmuję z komórki znajdującej się 8 komórek na lewo od niej, to należy zmienić to na "=RC[-8]-"? Niestety nie mam w tej chwili dostępu do Excela zeby to sprawdzić.

    Jeszcze raz dzięki.
  • Pomocny post
    #7 14213043
    marek003
    Poziom 40  
    Posty: 4600
    Pomógł: 799
    Ocena: 483
    Ipswich85 napisał:
    "=RC[-1]- odnosi się do pierwszej kolumny na lewo od miejsca w które chce wkleić dane? czyli np jak bym chciał brać daną od której odejmuję z komórki znajdującej się 8 komórek na lewo od niej, to należy zmienić to na "=RC[-8]-"?

    Tak

    Ipswich85 napisał:
    Nie wiem jeszcze czy okaże się szybsze, ale warto spróbować.


    Jeżeli podłączysz makro pod skrót klawiszowy (obsługiwany jedną ręką), np w stylu CTRL+D to wbrew pozorom będzie to szybsze niż to co teraz robisz.
    A szybciej nie osiągniesz nic więcej bo przecież też żeby wkleić wciskasz ctrl+v.

    Po prostu stajesz myszką na danej komórce, wciskasz ctrl+d i masz gotową formułę i wynik.

    Jedna rzecz :
    Jeżeli będziesz przenosił makro do swojego pliku to musisz sprawdzić czy masz włączoną bibliotekę. To za jedną ze stron:

    Tu masz rysunkowo jak włączyć tą bibliotekę (już w projekcie makra)
    Link do obrazków

    Poza włączeniem biblioteki reszta dotyczy kopiowania do schowka więc tobie na razie się nie przyda.
  • #8 14215217
    Ipswich85
    Poziom 2  
    Posty: 3
    @marek003

    Twoje macro dziala swietnie. Jako ze Ctrl + d uzywam zbyt czesto zeby sie go pozbyc, podpialem je pod ctrl + e i faktycznie szybciej sie chyba nie da.

    Dziekuje za pomoc i pozdrawiam.

Podsumowanie tematu

✨ Użytkownik poszukuje sposobu na automatyczne odejmowanie wartości ze schowka od wartości w komórce A1 w Excelu 2007, aby wynik pojawiał się w komórce B1. Obecnie stosuje ręczną metodę, co jest czasochłonne. Odpowiedzi sugerują użycie opcji "wklej specjalnie" oraz stworzenie makra, które automatycznie wprowadza formułę odejmującą wartość ze schowka od wartości w A1. Użytkownik potwierdza, że makro działa efektywnie, a przypisanie go do skrótu klawiszowego przyspiesza proces.
Wygenerowane przez model językowy.
REKLAMA