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.

vba/makra - automatyczne zapisaywanie pliku na różnych komputerach

maryluu2014 19 Sty 2017 09:43 345 5
  • #1 19 Sty 2017 09:43
    maryluu2014
    Poziom 6  

    Witam
    Bardzo proszę o pomoc w poprawieniu kodu. Na moim komputerze kod działa bez problemu. Zapisuje plik w "dokumentach", natomiast plik ten będzie obsługiwany prze kilka osób - u których pojawia się błąd w tym miejscu:
    ActiveWorkbook.SaveAs Filename:=nazwa -pewnie przy zapisywaniu
    Chciałam się dowiedzieć jak funkcja SaveAS działa( dlaczego zapisuje akurat w dokumentach) i jak mogłabym zmienić kod, by albo nie zapisywał w ogóle tylko dodawał,otwierał i nazywał nowy arkusz albo zapisywał u wszystkich w dokumentach, na pulpicie, gdziekolwiek.
    Próbowałam:
    NewWorkbooks.Open Filename:=nazwa
    i innych możliwości- zawsze pojawia się błąd
    mój kod:
    Sub NowyArkusz()
    Workbooks.Add
    a = Now()
    b = Year(a)
    c = Month(a)
    d = Day(a)
    nazwa = "pre-alert" & b & "-" & c & "-" & d
    ActiveWorkbook.SaveAs Filename:=nazwa
    Workbooks("PRE-ALERT").Worksheets(1).Activate
    Workbooks("PRE-ALERT").Sheets(1).Range("A1:J28").Copy Workbooks("pre-alert" & b & "-" & c & "-" & d).Sheets(1).Range("a1")
    Workbooks("pre-alert" & b & "-" & c & "-" & d).Sheets(1).Activate
    End Sub

    Bardzo proszę o jakiekolwiek rady.

    0 5
  • #2 19 Sty 2017 11:39
    clubs
    Poziom 30  

    Witam

    Możesz tak zapisze tam skąd uruchomiono makro

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    lub jak na każdym komputerze jest win7 to na pulpicie
    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    0
  • #3 19 Sty 2017 12:13
    maryluu2014
    Poziom 6  

    Dziękuję bardzo za pomoc. Problem niestety cały czas się pojawia- u mnie jest ok, ale na innych komputerach wyświetla błąd. Wszyscy korzystamy z tego samego pliku, jest on w lokalizacji dostępnej dla wszystkich.
    Dołączam też plik.

    0
  • Pomocny post
    #4 19 Sty 2017 12:42
    cbrman
    Poziom 27  

    Rozumiem, że makro ma być w pliku PRE-ALERT?
    Jeśli tak, to przetestuj poniższy kod:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #5 19 Sty 2017 12:47
    clubs
    Poziom 30  

    Lub jeszcze tak

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    0
  • #6 19 Sty 2017 14:10
    maryluu2014
    Poziom 6  

    Dziękuje bardzo :) . Działa super. Rozumiem, że problem powstał z nieprawidłowego zdefiniowania danych?

    Set wbkPrealert = ThisWorkbook
    Set oWSShell = CreateObject("Wscript.Shell")
    strPath = oWSShell.SpecialFolders("Desktop")

    nazwa = "pre-alert" & b & "-" & c & "-" & D
    ActiveWorkbook.SaveAs Filename:=strPath & "\" & nazwa, FileFormat:=51
    With wbkPrealert
    .Sheets(1).Range("A1:J28").Copy Workbooks("pre-alert" & b & "-" & c & "-" & D & ".xlsx").Sheets(1).Range("a1")
    Workbooks("pre-alert" & b & "-" & c & "-" & D & ".xlsx").Sheets(1).Activate
    End With

    0