Tworzę właśnie rozbudowany raport logistyczny w firmie, jednym z jego głównych atutów miała być automatyzacja procesów, ale tego problemu nie potrafię przeskoczyć. Aktualne raporty są trzy, a każdy z nich zbiera niemal te same dane, tyle że w różnych formach. Chciałbym, żeby po wypełnieniu jednego raportu, kolejny wypełniał się automatycznie, ale w kolejnych kolumnach - z przesunięciem. Dla przykładu dodaje załącznik: dwa skoroszyty (przypuszczamy, że raporty są dwa).
Makro miałoby wyglądać tak:
Dane z komórek H5:H14 (skoroszyt Raport 1) są sumowane, a ich suma zostaje wklejona do skoroszytu Raport 2, do komórki D5. Niby nic trudnego, ale to tylko część makra. Jak zobaczycie, w skoroszycie "Raport 1" jest przycisk "Generuj raport", do którego jest przypisane następujące makro:
Kod: Zaznacz cały
Sub Jeden()
Application.DisplayAlerts = False
ActiveSheet.Copy
ActiveWorkbook.SaveAs "C:\Raporty\Raport przyjęcia " & Format(Date, "yyyy-mm-dd")
ActiveWorkbook.Worksheets(1).Range("a1") = 0
ActiveSheet.Shapes.Range(Array("Rectangle 1")).Select
Selection.Delete
ActiveWorkbook.Save
ActiveWorkbook.Close
Range("F5:K33").Select
Selection.ClearContents
Range("Q5:Q28").Select
Selection.ClearContents
Range("A37").Select
ThisWorkbook.Save
If Err.Number = 1 Then MsgBox "Błąd. Raport został już wygenerowany", , "Błąd"
If Err.Number = 0 Then MsgBox "Raport został wygenerowany pomyślnie", , "Potwierdzenie"
End Sub
Chciałbym jednak, żeby oprócz tego dane były kopiowane do skoroszytu "Raport 2" tak jak pisałem powyżej. Dodatkowo, za każdym kliknięciem przycisku "Generuj raport" dane powinny być kopiowane do następnej kolumny, tak żeby nie nadpisywać poprzednich danych.
Szczerze mówiąc dopiero niedawno zacząłem przygodę z VBA i ledwo ogarniam podstawy, uczę się czytając poradniki i rejestrując makra, dlatego nie mam pojęcia jak się do tego zabrać. Gdyby nie fakt, że występuje przesunięcie danych, chyba nie byłoby problemu.
Z góry dziękuję za podpowiedzi i pozdrawiam.
Kod: Zaznacz cały
http://speedy.sh/2W4rC/Raport.xlsm