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.

VBA kopiowanie komorek excela do schowka UTKNĄŁEM:/co dalej?

01 Mar 2011 16:23 6793 5
  • Poziom 9  
    witam :)
    Chciałbym napisać w Excelu w VBA funkcje, która kopiowałaby z ustalonego zakresu komórek tekst do pamięci (do schowka) po czym można by go było gdziekolwiek wkleić z zachowanie formatu i stylu tekstu, dat, godzin itd.

    Najlepiej zobrazuje to zdjęcie poniżej i pliki z załącznika.

    VBA kopiowanie komorek excela do schowka UTKNĄŁEM:/co dalej?

    Efekt ten realizowany jest przez kopiowanie zawartości komórki, dodanie do tekstu spacji w tym samym formacie (czyli np z podkreśleniem) itd.
    Gdy jest jakiś pusty wiersz w tekście w schowku jest również linijka przerwy.
    Po skopiowaniu całego tekstu do schowka chciałbym aby była możliwość wklejenia tekstu np do Worda przy użyciu funkcji "wklej".
    I na koniec zasadnicze pytanie... jak się do tego zabrać, nie wiem od czego zacząć. Nie mam zielonego pojęcia jak się odwołać do schowka.
    Za każdą sugestie będę wdzięczny :)
    Pozdrawiam
  • Poziom 9  
    Po kilkudniowych męczarniach wpadłem na pewien pomysł z wykorzystaniem szablonu "makememos" z książki "Excel 2003 Programowanie w VBA Vademecum profesjonalisty".
    Sens jest taki że program ma tworzyć plik w wordzie gdzie kopiuje tekst z komórek , potem zaznacza cały tekst w wordzie i go kopiuje :).

    Jest jeszcze kilka nierozwiązanych kwestii i prosiłbym o pomoc bo ręce mi już opadają.

    1. nie wiem jaka formuła zaznacza dany wiersz w wordzie, chciałbym aby po wklejeniu tekstu z komórki zaznaczał sie wiersz i zmieniał sie format tekstu na odpowiedni (podkreślenie, pogrubiona czcionka itd)

    2. nie wiem jaka komenda powoduje zaznaczenie całego tekstu w wordzie, muszę wszytko zaznaczyć żeby to skopiować do schowka

    mój obecny programi wyglada tak :
    Kod: vb
    Zaloguj się, aby zobaczyć kod


    poniżej załącznik z plikiem excela
    Proszę Was o pomoc bo stanąłem w martwym punkcie
    Pozdrawiam
  • Pomocny post
    Poziom 40  
    Może wykorzystaj wklejanie przez schowek?
    Coś w s tylu:
    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • Poziom 9  
    Dziękuję za odzew ;)
    z przykrością muszę stwierdzić że nie do konca o to chodziło, zależy mi na NIE kopiowaniu całej tabeli tylko samego tekstu.

    Warto zauważyć ze w exccelu (patrz zdjęcie) w całym wierszu czcionka jest tak samo sformatowana (podkreślenie lub pogrubienie).
    Mój dotychczasowy program ma pętelki które powodują przejścia przez wszystkie komórki w jakimś tam zakresie.

    (istotne dywagacje pomiędzy liniami w poniższym kodzie)
    Kod: vb
    Zaloguj się, aby zobaczyć kod


    poniższe zdjęcie dokładnie przedstawia co chce osiągnąć
    VBA kopiowanie komorek excela do schowka UTKNĄŁEM:/co dalej?
    Pozdrawiam:)
  • Pomocny post
    Poziom 40  
    Za dużo kombinujesz ;)
    Wszystko można zmieścić w takim oto kodzie, komentarze - bez zbędnych dywagacji - w kodzie :) Mam nadzieję że zasadza działania jest jasna? W zasadzie to tylko pętla po wierszach i kolumnach + parę if'ów tłumaczących format excela na worda.
    "Sekret mnicha" tkwi w tym, żeby ustawić format paragrafu w Wordzie przed wypisaniem tekstu, wypisać tekst i wyczyścić format - podobnie można ustawić dowolny parametr, kolor tekstu, komórki etc. - odczytujesz go z excela i przekładasz na format paragrafu wordzie.

    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • Poziom 9  
    Trochę czasu zajmuje mi przeanalizowanie zmyślnych kodów. Prawda jest taka ze jestem laikiem który rzuca się na głęboką wodę. Analizuje niemal każda z formuł i staram się ja zastosować je w praktyce tak żeby się tego nauczyć. Nie pierwszy raz mi pomagasz za co bardzo Ci dziękuje. Materiał z tego zakresu uznaje za przyswojony ;). O wielu formułach które wykorzystujesz nigdy nie słyszałem i jak je poznaje to widzę różne fajne zastosowania ich. Nawet się nie przyznaje czego nie znałem z Twojego kodu w każdym bądź razie czuje się teraz bogatszy w wiedzę.

    Jeszcze raz bardzo Ci dziękuję :)