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 Makro - Uogólnienie ścieżek do plików w jednym folderze

Algier 02 Sie 2011 10:27 8405 7
REKLAMA
  • #1 9784891
    Algier
    Poziom 9  
    Posty: 38
    Ocena: 6
    Witajcie,
    chciałbym prosić o pomoc w następującej sprawie. Mam sporą bazę, składającą się z wielu plików excela. Jest ich niestety tak dużo, że pracownicy zaczęli się gubić w tym co gdzie jest (choć większość mieści się w jednym folderze). Postanowiłem się zrobić dodatkowy plik, w którym będą wymienione wszystkie bazy (lista rozwijana) i po naciśnięciu przycisku będzie się wybrany plik otwierać. Wszystko działa świetnie do momentu, aż cała baza nie zostanie przeniesiona np. na inny komputer i zmieni się ścieżka dostępu.. Póki co są one przypisane na sztywno, więc C:\.... I tutaj pytanie, czy da się tą ścieżkę jakoś uprościć/uogólnić? Oczywiście przy założeniu że będzie się wszystko znajdować w jednym folderze. Próbowałem z funkcją App.Path ale jak można się było spodziewać pojawia się błąd 424 - object required. Pozdrawiam
  • REKLAMA
  • #2 9785525
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Rozdziel ścieżkę i nazwy plików. Argumentem metody Open jest string, więc możesz podstawić ze zmiennych. Np Workbooks.Open sciezka & "\" & plik Gdzie wartość dla "sciezka" pobierana jest z komórki, inputbox'a, browsera, etc.
  • REKLAMA
  • #3 9787221
    Algier
    Poziom 9  
    Posty: 38
    Ocena: 6
    Dzięki Adamas za odpowiedź. Miałbym jeszcze pytanie i zarazem prośbę, czy byłbyś w stanie uprościć nieco swoją wypowiedź? :P Z góry dziękuję
  • REKLAMA
  • #4 9789207
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Jasne: Podstaw zmienne path & filename jako argument polecenia Workbooks.Open
    Np
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #5 9811132
    Algier
    Poziom 9  
    Posty: 38
    Ocena: 6
    Poradziłem sobie w inny sposób, po prostu zrobiłem kreator instalacji. Wszyscy mają wtedy pliki w jednym miejscu i jest jeden plik exe, który sobie instalują. Łatwiej również będzie z aktualizacjami. Ale pojawił się inny problem. Chciałbym zrobić makro - przycisk po naciśnięciu którego zapisze zmiany w arkuszu, zamknie go i przejdzie do innego pliku excela. Jest coś takiego wykonalne?

    mam taki kod i nie wiem co dalej, bo z programowaniem zupełnie sobie nie radzę...

    Sub powrot_z_zapisaniem()
    
    ActiveWorkbook.Close True
    
    Workbooks.Open Filename:="C:\Program Files\tabela.xls"
    
    End Sub
    
  • Pomocny post
    #6 9815016
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Raczej zmień kolejność ;)
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #7 9815300
    Algier
    Poziom 9  
    Posty: 38
    Ocena: 6
    Hmm słuszna uwaga ;) niestety tak też nie działa. Zamyka, ale nie otwiera

    Próbowałem użyć jeszcze
    Application.Workbooks.Open ("C:\Program Files\tabela.xls")

    ale również nie otwiera
  • REKLAMA
  • #8 9818184
    Algier
    Poziom 9  
    Posty: 38
    Ocena: 6
    Ok już działa, z takim kodem:

    Sub powrot_z_zapisaniem()
    
    Workbooks.Open Filename:="C:\Program Files\tabela.xls"
    ActiveWindow.Visible = True
    ThisWorkbook.Activate
    Application.ScreenUpdating = True
    
    ActiveWorkbook.Close True
    
    End Sub


    Dzięki adamas za wszelkie sugestie :) Pozdrawiam

Podsumowanie tematu

✨ Użytkownik poszukiwał rozwiązania na uproszczenie ścieżek dostępu do plików Excela w jednym folderze, aby uniknąć problemów po przeniesieniu bazy na inny komputer. Otrzymał sugestie dotyczące użycia zmiennych do dynamicznego określenia ścieżki i nazwy pliku w makrze VBA. Po kilku próbach, użytkownik zdecydował się na stworzenie instalatora, który umieszcza pliki w jednym miejscu. Następnie zadał pytanie o makro, które zapisuje zmiany w arkuszu, zamyka go i otwiera inny plik. Ostatecznie, po poprawkach, udało mu się stworzyć działające makro, które realizuje te funkcje.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA