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

EXCEL - Makro odwolujace sie do danych z innego pliku

Lock@ 03 Lut 2015 09:27 747 9
  • #1 03 Lut 2015 09:27
    Lock@
    Poziom 10  

    Witam

    Mam takie makro

    Code:
    Sub zamien_znaki_fr()
    
    '
    ' zamien_znaki_fr Makro
    ' Zamiana krzaczkow na znaki francuskie
    '
    ' Klawisz skrótu: Ctrl+z
    '

    For x = 1 To 11

            Selection.Replace What:=Worksheets("kody").Cells(x + 1, 1).Value, Replacement:=Worksheets("kody").Cells(x + 1, 2).Value, LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
            ReplaceFormat:=False

    Next x
       
    End Sub


    Jak widać zamienia ono znaki nierozpoznawalne na poprawne (francuskie) w "arkusz1", po zaznaczeniu jakiegoś zakresu danych do poprawienia. Wyszukuje ich w arkuszu "kody". I wszystko działa póki arkusz "kody" jest w tym samym skoroszycie co "arkusz1".

    Jak zmienić to makro, aby arkusz "kody" mógł sobie być w innym pliku/katalogu?

    Próbowałem makra z tymczasowym kopiowaniem arkusza "kody" a potem usunięciem go, ale to takie toporne a poza tym "arkusz1" znajduje się w skoroszytach z różnymi nazwami plików.

    Szczerze mówiąc odnoszenie się do innych plików w makrach to dla mnie czarna magia.

    0 9
  • #2 03 Lut 2015 11:47
    -psiak-
    Poziom 32  

    Może wpisz je na żywca do kodu.

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #3 03 Lut 2015 11:55
    Lock@
    Poziom 10  

    Tak było początkowo, ale tego jest sporo i czasem się zmienia. Te 11 linijek to tylko przykład

    0
  • #4 03 Lut 2015 12:17
    -psiak-
    Poziom 32  

    Taa, ci francuzy co tydzień zmieniają swoje poprawne znaki.
    Jedno z:
    1. Zrób sobie kolekcje tychże tablic.
    2. Zapisz sobie makro w którym otwierasz inny plik i robisz kopię komórki A1, będziesz mieć kod.

    0
  • #5 03 Lut 2015 12:24
    PRL
    Poziom 33  

    Wystarczy plik otworzyć i odwoływać się:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #6 03 Lut 2015 12:28
    Lock@
    Poziom 10  

    Francuzi może i nie zmieniają, ale dane do arkuszy są generowane na różnych komputerach z różnych źródeł i nie wiem czemu ale znaki się zmieniają. Chodzi o nazwy własne, które mają czasem dziwne krzaczki.

    No nic, myślałem, że to się da jakoś fajnie wstawić gdzieś tu Selection.Replace What:=Worksheets("kody") ...

    Głównie mam problem ze ścieżkami, ale pewnie można to jakoś załatwić za pomocą ActiveWorksheet

    Dziękuję w każdym razie

    0
  • #7 03 Lut 2015 13:04
    -psiak-
    Poziom 32  

    Lock@ napisał:
    Francuzi może i nie zmieniają, ale dane do arkuszy są generowane na różnych komputerach z różnych źródeł i nie wiem czemu ale znaki się zmieniają.
    To nie generuj nowych arkuszy tylko dodawaj kolejne napotkane wersje tych znaków, po jakimś czasie będziesz mieć taki zestaw który przekoduje wszystko co się da.

    0
  • #8 03 Lut 2015 14:28
    Lock@
    Poziom 10  

    Może źle to ująłem.
    Arkusze z niepoprawnymi znakami są generowane przez różne osoby na różnych komputerach. No i mają krzaczki.
    Początkowo robiły one prostym Znajdź i zamień, ale kiedy trzeba tego zrobić kilkanaście razy to upierdliwe.
    Potem było makro do tego, podobne do propozycji -psiak-, ale nie każdy z użytkowników potrafi makra edytować i dodawać co mu tam potrzebne.
    Dlatego chciałem stworzyć jedną bazę - plik kody.xlsc, którą będzie można łatwiej edytować.

    Ale nie umiem jej zastosować w tym kodzie, ze względu na rózne ścieżki, nazwy plików i nazwy arkuszy które mają być poprawiane (te wygenerowane)

    Póki co zrobiłem to tworząc arkusz "kody" na końcu poprawianego skoroszytu a w nim formuły (makro je wpisuje) z odnośnikami do pliku kody.xlsc.

    Niby działa, ale to takie drętwe makro ;)

    0
  • #9 03 Lut 2015 15:30
    -psiak-
    Poziom 32  

    Nie rób tej bazy w Excelu, zrób tą bazę w zwykłym pliku tekstowym w normalnym notatniku, wczytaj plik, zrób podmiany.

    1
  • #10 03 Lut 2015 15:36
    Lock@
    Poziom 10  

    O widzisz i to jest nowy pomysl
    Dzieki

    0