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] Odczyt danych z plików, odczyt wartości z nazwy plik

kerim36 24 Lut 2011 16:43 10902 44
Najlepsze odpowiedzi

Jak w Excelu zautomatyzować numerację protokołów tak, aby po kliknięciu przycisku plik był zapisany pod kolejną nazwą, wydrukowany 2 razy i licznik został zwiększony o 1?

Najprościej trzymaj licznik protokołów poza szablonem, np. w pliku TXT, a makro z przycisku niech odczyta numer, pokaże `Save As` z domyślną nazwą, wydrukuje arkusz 2 razy i zapisze zwiększony numer z powrotem do TXT [#9198217][#9199240][#9199471] Do odczytu i zapisu pliku tekstowego można użyć `Open ... For Input/Output`, `Input$` i `Print #`, ewentualnie trybu `Append`, jeśli chcesz dopisywać kolejne wpisy [#9198217][#9199240] Okno zapisu można wywołać przez `Application.GetSaveAsFilename` albo `Application.Dialogs(xlDialogSaveAs).Show`, podając nazwę z prefiksu i licznika, np. `plik1.xls` [#9199366][#9199471] Jeśli zablokujesz zwykłe `Save` w `Workbook_BeforeSave`, to szablonu nie da się nadpisywać zwykłym zapisem, więc licznik nie powinien być przechowywany w samym pliku szablonu [#9198336]
Wygenerowane przez model językowy.
REKLAMA
  • #31 9268800
    kerim36
    Poziom 10  
    Posty: 45
    Ocena: 9
    Witajcie ponownie

    Jednak w racji rosnącego ciśnienia (muszę to mieć działające do 16 marca) muszę Was prosić o dalszą pomoc.

    Już skleciłem w miarę fajne makro dla pliku zestawienie, jednak proszę o podpowiedź jak prawidłowo go dokończyć.

    1. błache, ale dla mnie widać skomplikowane:
    Jak w makrze ustawić, aby wartości brane z plików zlecenieXXX były kopiowane:
    - do 5 wiersza komorki A5:C5 i pozniej co 11 wierszy - na chwilę obecną zaczyna mi od 11 wiersza i co leci co 11 :)
    - od 6 do 15 wiersza (D6:E15) były brany obszar (w pliku zlecenieXXX (A8:B17), pozniej wiersz przerwy i dane z nastepnego pliku zlecenieXXX

    w zalaczniku dolaczam przykladowo wypelniony plik zestawienie z prawie dzialajacym makro


    potrzebuje to dopracowac i upiekszyc :)

    z gory dzieki za wsparcie
    Załączniki:
    • ZESTAWIENIE SZEF.xls (40.5 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • Pomocny post
    #33 9273506
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 658
    Nie mam pewności czy trafiłem z zakresami :) Spróbuj
    Sub Przycisk1_Kliknięcie()
    
    Dim sciezka As String, Wybor As FileDialog, plik As String, wiersz As Integer
     
    'Set Wybor = Application.FileDialog(msoFileDialogFolderPicker)
    
    'With Wybor
     '  .Title = "Wybierz folder"
      ' .InitialFileName = ThisWorkbook.Path
       'If .Show Then
          sciezka = "c:\agata\dostawa\marzec1"
       'End If
    'End With
    plik = Dir(sciezka & "\zlecenie*-2011.xls")
    wiersz1 = 5
    Do
        If plik = "" Then Exit Do
            wiersz = 8
            Cells(wiersz1, 1) = "='" & sciezka & "\[" & plik & "]Arkusz1'!D4"
            Cells(wiersz1, 2) = "='" & sciezka & "\[" & plik & "]Arkusz1'!C8"
            Cells(wiersz1, 3) = "='" & sciezka & "\[" & plik & "]Arkusz1'!G4"
            
            For i = wiersz1 + 1 To wiersz1 + 10
              Cells(i, 4) = "='" & sciezka & "\[" & plik & "]Arkusz1'!A" & wiersz
              Cells(i, 5) = "='" & sciezka & "\[" & plik & "]Arkusz1'!B" & wiersz
              wiersz = wiersz + 1
            Next
        plik = Dir
        wiersz1 = wiersz1 + 11
    Loop
    
    End Sub

    p.s. Jakieś nietypowe te liczby...
  • REKLAMA
  • #34 9278560
    kerim36
    Poziom 10  
    Posty: 45
    Ocena: 9
    *adamas_nt

    Dzieki, rewelacja. Wydajemi sie, ze to jest to. Dzisiaj przetestuje na wiekszej ilosci prawidlowo wypelnionych zlecen :)
  • #35 9285244
    kerim36
    Poziom 10  
    Posty: 45
    Ocena: 9
    Witam ponownie.

    Dotychczasowa Wasza pomoc okazala sie bezcenna. Juz mam gotowe i dzialajace zestawienie, ktore dolaczam w zalaczniku.

    Mam do Was kolejne zapytanie.
    Jak uruchomicie to zestawienie to widac, ze jest juz ono uzupelnione. Jest dzialajace makro do wczytywania wartosci z plikow (dzieki Wam), dodalem makro ukrywajace wiersze gdzie pojawiaja sie wartosci 0 (zero), zeby wydruk niepotrzebnie nie byl za dlugi, jednak ze strony uzytkownika (szefa) pojawilo sie nowe wyzwanie:
    - sortowanie wg dat.

    Musi to dzialac , tak ze oczywiscie idzie od najstarszej do najmlodszej i jednoczesnie musza byc zachowane widoczne pozycje w kolumnach D i E.
    Jesli w wierszach kolumn D i E jest zero to mozna je pominac - ale na to juz zrobilem osobny przycisk z makrem.

    Wstepnie probowalem cos zrobic i stworzylem przycisk "Sortowanie" jednak nim nie ma sie co sugerowac, bo to tylko moje pierwsze przymiarki do tematu sortowania.

    Jestescie w stanie cos zaradzic??
    Załączniki:
    • ZESTAWIENIE SZEF(3)1.xls (440.5 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #36 9285293
    Aldrin
    Poziom 22  
    Posty: 317
    Pomógł: 68
    Ocena: 49
    kerim36 napisał:
    ze strony uzytkownika (szefa) pojawilo sie nowe wyzwanie:
    - sortowanie wg dat

    Czy kolejne numery zleceń nie są w porządku chronologicznym?
    zlecenie*-2011.xls

    A jeśli nie są (??), to co jest kryterium "daty" i kiedy jest to określane?
  • #37 9285334
    kerim36
    Poziom 10  
    Posty: 45
    Ocena: 9
    Aldrin napisał:
    kerim36 napisał:
    ze strony uzytkownika (szefa) pojawilo sie nowe wyzwanie:
    - sortowanie wg dat

    Czy kolejne numery zleceń nie są w porządku chronologicznym?
    zlecenie*-2011.xls

    A jeśli nie są (??), to co jest kryterium "daty"?


    nie jest to regula

    sortowanie jest wg daty dostawy towaru, a nie sprzedazy, wiec przykladowo zamowienie10 moze byc zrealizowane 10 marca, a zamowienie 9 dopiero 2maja
  • #38 9285359
    Aldrin
    Poziom 22  
    Posty: 317
    Pomógł: 68
    Ocena: 49
    Czyli sortowane ma być wg daty realizacji - kolumna C w zestawieniu szef, tak?

    To jest stałe kryterium, czy też szef może zechcieć pewnego dnia zobaczyć układ wg sortowania wg kolumny A? ;)
  • #39 9285389
    kerim36
    Poziom 10  
    Posty: 45
    Ocena: 9
    ah
    Przepraszam. Nie napisalem ze sortowanei ma byc wg kolumny C.

    Mysle, ze kolumna C to bedzie staly element sortowania i zmian w tym zakresie nie przewiduje.

    Gdyby sortowanie mialo byc wg kolumny B to mijaloby sie to z celem, poniewaz to akurat leci chronologicznie.
  • REKLAMA
  • #40 9285407
    Aldrin
    Poziom 22  
    Posty: 317
    Pomógł: 68
    Ocena: 49
    kerim36 napisał:
    Gdyby sortowanie mialo byc wg kolumny B to mijaloby sie to z celem

    Takie przecież było założenie wstępne ;)
    Stąd pytanie, że może i taki układ będzie czasami potrzebny, bo wtedy warto zrobić opcję przy generowaniu pliku dla szefa.

    Skoro sortowanie wg kolumny C jest jedynym słusznym rozwiązaniem i nie ma innych wariantów, to widzę dwie możliwości rozwiązania:
    1. najpierw wygenerować taki układ jak jest obecnie i później sortować cały arkusz "według C"
    2. najpierw posortować pliki zestawienia i dopiero później wczytywać je już w odpowiedniej kolejności do pliku Szef.

    Ad.1.
    Dane wstawione są "z dziurami" i trzeba ustawiać pomocnicze kolumny z jakimiś wartościami, które można sortować przy pomocy Excela, a później skasować.
    Ten wariant jakoś nie przypada mi do gustu.

    Ad.2.
    2A) Albo spisać daty z komórek E37 poszczególnych zestawień TUŻ przed generowaniem pliku dla szefa -> posortować pliki -> wczytać do Szefa, albo
    2B) w momencie zamykania ZLECENIA sprawdzić, czy E37 jest wypełnione i wtedy taki plik dopisać do listy w pliku .txt (Append). Jak rozumiem wtedy kolejność wpisów w tym pliku txt odpowiadałaby sortowaniu wg kolumny C, tak?
    Jeśli tak, to nic nie trzeba sortować, tylko wczytać kolejne zestawienia z listy w pliku txt, a jeśli nie to posortowac najpierw te dane (wtedy trzeba zapisać datę i godzinę, żeby było wg czego sortować), a później wg tego układu wczytywać kolejne pliki.
    W każdym razie do pliku Szef dane z kolejnych zestawień napływałyby już posortowane, a to jak to sortowanie będzie zrealizowane jest możliwe do realizacji w różny sposób w zależności od warunków ;)
  • #41 9296124
    kerim36
    Poziom 10  
    Posty: 45
    Ocena: 9
    Witajcie

    Jednak zostalo finalnie ustalone, ze sortowanie nie jest konieczne (na szczescie dla mnie) :)

    Mam do Was jeszcze pytanie.
    Spojrzcie prosze na wypelniony wzor "zestawienia" i powiedzcie mi jaki kod musze dodac, zeby zakres 5 komorek (O5:S5) kopiowal mi do zakresu (F5:J5) i dalej co 11 wierszy.

    Rejestr makra zrobil mi takie cos: (jest to juz widoczne w makrze)
    Range("O5:S5").Select
    Selection.Copy
    Range("F5").Select
    ActiveSheet.Paste

    i zapewne "F5" musze zmodyfikowac na jakas wartosc ale nie wiem na jaka.

    Z gory dzieki za podpowiedz
    Załączniki:
    • ZESTAWIENIE SZEF(3).xls (250 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #42 9296170
    kerim36
    Poziom 10  
    Posty: 45
    Ocena: 9
    wstepnie rozwiazalem to tak:

    Range("O5").Select
    Selection.Copy
    Cells(wiersz1, 6).Select
    ActiveSheet.Paste

    Range("P5").Select
    Selection.Copy
    Cells(wiersz1, 7).Select
    ActiveSheet.Paste

    Range("Q5").Select
    Selection.Copy
    Cells(wiersz1, 8).Select
    ActiveSheet.Paste

    Range("S5").Select
    Selection.Copy
    Cells(wiersz1, 10).Select
    ActiveSheet.Paste


    mozna jakos ladniej to zrobic??
  • REKLAMA
  • #43 9299345
    dmosio
    Poziom 11  
    Posty: 6
    Witam
    Czy jest możliwe stworzenie takiego makra, które dodawało by dane (nip i adres) do bazy adresów. Chodzi o to by program zapamiętał po pierwszym wprowadzeniu danych adres i nip. A następnie sam uzupełniał pola adresowe po wpisaniu nip-u, który już był raz podany.
    Z góry dzięki za pomoc.
    Sory ale nie mam punktów aby dać temat na ogólnym wątku.
    pozdrawiam
  • #44 9299507
    kerim36
    Poziom 10  
    Posty: 45
    Ocena: 9
    Witaj punkty mozna zawsze kupic :)

    Co do pytania to rozumiem, ze wpisujesz pierwszy raz firme i pozniej po wpisaniu np samej nazwy firmy makro ma skopiowac dalsza czesc w postaci adresu i nipu??
  • #45 9300469
    dmosio
    Poziom 11  
    Posty: 6
    Dokładnie o to chodzi.
    A punktach muszę doczytać

Podsumowanie tematu

✨ W dyskusji poruszono problem automatyzacji numeracji protokołów w plikach Excel, gdzie użytkownik potrzebował formuły lub kodu VBA do automatycznego zwiększania numeru protokołu przy zapisywaniu plików. Uczestnicy zaproponowali różne rozwiązania, w tym użycie makr do zwiększania licznika, zapisywania plików z odpowiednimi nazwami oraz drukowania dokumentów. Zasugerowano również możliwość przechowywania numeru protokołu w pliku tekstowym oraz odczytywania go przy każdym zapisie. W dalszej części dyskusji omawiano generowanie zestawienia z wielu plików oraz sortowanie danych według daty. Użytkownik uzyskał pomoc w zakresie kodu VBA do kopiowania danych między arkuszami oraz w implementacji funkcji sortowania.
Wygenerowane przez model językowy.
REKLAMA