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-Excel] Deklaracja zmiennej nazwy pliku źródłowego

Forte12 27 Sty 2015 21:22 2040 28
  • #1 27 Sty 2015 21:22
    Forte12
    Poziom 6  

    witam,

    natrafiłem na problem związany z nazwą pliku.

    Mianowicie makro będzie zapisane w jednym pliku, a dane będą zaciągane z dwóch różnych plików .xlsx o zmiennej nazwie.

    Nie wiem za bardzo ja zadeklarować nazwę tych dwóch pliku tak aby makro działało niezależnie od nazwy.

    0 28
  • #2 27 Sty 2015 21:28
    -psiak-
    Poziom 32  

    %%1 i %%2 ?
    set nazwa1=abc.xlsx ?

    0
  • #3 27 Sty 2015 21:40
    Forte12
    Poziom 6  

    daje to jako
    dim nazwa As String
    dim nazwa 2 As String

    nazwa = i tutaj nie wiem jak mam napisać kod do nazwy pliku (Format pliku nazwa Dane "dowolny teks lub liczby"
    nazwa = 2 jw.

    0
  • #5 27 Sty 2015 22:19
    Forte12
    Poziom 6  

    ale nazwa nie będzie stała tylko raz abc 1 raz abc 2

    0
  • #6 27 Sty 2015 22:23
    -psiak-
    Poziom 32  

    Nie rozumiem, wg ciebie program ma zgadnąć czy ma być abc 1 czy abc 2 ?

    0
  • #7 27 Sty 2015 22:49
    Forte12
    Poziom 6  

    nie, program ma zaciągać dane z dwóch plików.

    W kodzie nazwy tych plików mam np. Należności i GL i są one sztywne tzn, jak uruchamiam makro to tak muszą nazywać :). Chciałbym zrobić tak aby można te pliki nazywać np Należności_DDMMRRR i odpowiednio GL_DDMMRR data będzie zmienną. Nie wiem w jaki sposób ma zadeklarować same nazwy, jak je zapisać w kodzie VBA.

    0
  • #8 27 Sty 2015 22:53
    marcinj12
    Poziom 40  

    Zakładając, że część DDMMRR wpiszesz sobie np. do komórki A2, robisz po prostu:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #9 27 Sty 2015 23:06
    Forte12
    Poziom 6  

    Te pliki będą już miały nazwę na Należności_28062914 i chciałbym tylko aby makro działało na nich. Podczas uruchamiania makra te dwa pliki będą otwarte.

    0
  • #10 27 Sty 2015 23:12
    -psiak-
    Poziom 32  

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Znajdujesz wśród otwartych ten co nazywa się z CL_

    0
  • #11 28 Sty 2015 08:14
    Forte12
    Poziom 6  

    Gdzie w tym kodzie jest mowa o nazwie CL_ ?

    0
  • #12 28 Sty 2015 09:48
    kinggustav
    Poziom 21  

    Nie ma, to musisz sobie dorobić, ale lista nazw już jest.

    0
  • #13 28 Sty 2015 10:04
    PRL
    Poziom 34  

    Cytat:
    Nie wiem za bardzo ja zadeklarować nazwę tych dwóch pliku tak aby makro działało niezależnie od nazwy.


    Nie może działać niezależnie od nazwy. Można za to w makro użyć OpenDialog.

    -1
  • #14 28 Sty 2015 10:14
    -psiak-
    Poziom 32  

    Forte12 napisał:
    Gdzie w tym kodzie jest mowa o nazwie CL_ ?

    Prostego warunku napisać nie potrafisz?
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #15 28 Sty 2015 19:42
    Forte12
    Poziom 6  

    no nie umiem, jakbym umiał tobym nie prosił o pomoc :)

    chodzi mi o to, że początek nazwy będzie np GL_coś tam coś tam i jak to zadeklarować.
    coś takiego znalazłem:

    Dim strName As String
    strName = "[" & "Magazyn" & " " & Format(Date, "dd.mm.yy") & ".xlsx]"
    Range("B1").FormulaR1C1 = "=VLOOKUP(""*10""," & "'" & strName & "Arkusz1'! R1C1:R5C4,2, FALSE)"

    chodzi mi aby nazwa pliku zaczynała się na GL i nie wiem jak zapisać tą drugą linię dla mojego przypadku:(

    0
  • #16 28 Sty 2015 22:28
    -psiak-
    Poziom 32  

    Wydaje mi się że skoro nie umiesz napisać If'a to powinieneś wynająć fachowca na tą robotę.
    Co najmniej sprawdź znaczenie słowa "pomóc" w słowniku - wydaje mi się że pomyliłeś z wyrazem "odwalić całą robotę"

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #17 29 Sty 2015 13:24
    Forte12
    Poziom 6  

    Dzięuję bardzo za kod. Wprowadziłe go do makra ale niestety pojawia się komunikat
    "No Excel Files are open (Excel is not running)" plik Należności i GL jest uruchomi

    0
  • #18 29 Sty 2015 14:09
    -psiak-
    Poziom 32  

    To masz jakiegoś nietypowego Excela którego klasa głowna nie nazywa się "Excel.Application"
    Podaj wersje excela
    Jeżeli odpalasz to pod excelem to możesz to uprościć oraz uniezależnić od wersji:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Jeżeli nie, to podaj w jaki sposób odpalasz ten skrypt

    0
  • #19 29 Sty 2015 14:39
    Forte12
    Poziom 6  

    Teraz tak jakby się udało ale nazwę jako pliku należności wpisuję jak niżej i nie działa :

    Windows("strNameNA").Activate
    Columns("A:A").Select

    czy ja to dobrze robię?

    0
  • #21 29 Sty 2015 15:11
    Forte12
    Poziom 6  

    tak wpsiałem i działa :) Dziękuję bardzo

    A w samej formule Range("D2:D" & ost).Formula = "=IF(ISNA(VLOOKUP(RC[-1],(strNameGL)Arkusz1!C7:C8,2,FALSE))=TRUE,""NIE ZAKSIEGOWANO"",VLOOKUP(RC[-1],(strNameGL)Arkusz1!C7:C8,2,FALSE))"

    dla pliku strNameGL z nawiasem?

    0
  • #23 29 Sty 2015 15:40
    Forte12
    Poziom 6  

    Wpisałem z [] i nie działa, ehh :(

    Range("D2:D" & ost).Formula = "=IF(ISNA(VLOOKUP(RC[-1],[strNameGL]Arkusz1!C7:C8,2,FALSE))=TRUE,""NIE ZAKSIEGOWANO"",VLOOKUP(RC[-1],[strNameGL]Arkusz1!C7:C8,2,FALSE))"

    0
  • #24 30 Sty 2015 15:01
    Forte12
    Poziom 6  

    teraz cos podziałałem ale niestety plik o nazwie strNameGL muszę aktualizować ręcznie, pojawia się komunikat aby wyskazać ścieżkę pliku.

    0
  • #25 30 Sty 2015 15:19
    -psiak-
    Poziom 32  

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #26 30 Sty 2015 15:27
    Forte12
    Poziom 6  

    ale gdzie to mam wpisac, sorki ale nie jestem w tym biegły :/

    0
  • #27 30 Sty 2015 15:28
    -psiak-
    Poziom 32  

    Chcesz pomocy czy odwalenia pracy za ciebie?

    0
  • #28 30 Sty 2015 15:39
    Forte12
    Poziom 6  

    no mecze sie z tym .....

    0
  • #29 30 Sty 2015 16:16
    -psiak-
    Poziom 32  

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0