napisał: Trebor postów: 1209
umieszczony: 30 października 2012 16:45
|
|
Daj na forum plik, z którego chcesz zachować osobno arkusz summary. |
|
napisał: testsep1 postów: 6
umieszczony: 30 października 2012 10:27
edytowany: 30 października 2012 13:30
|
|
hmm niestety wciąż nie działa poprawnie, kopiowanie juz śmiga, poza polem z datą, bo ja nie chcę daty systemowej tylko datę z komórki która mam w A8 w arkuszu Summary. Problem jednak w tym ze makro działa aż za dobrze i robi mi miszmasz ze wszystkich otwartych arkuszy w pliku.
Za to coś takiego mi w miare dobrze działa:
Sub Makro1()
Sheets("Summary").Cells.Copy
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
Range("A1").Select
ActiveWorkbook.SaveAs Filename:="C:\" & Range("C8") & "_" & Range("B8") & "_" & Format(Now, "yyyy-mm-dd") & ".xls", FileFormat:=xlNormal, _
ReadOnlyRecommended:=True
End Sub
Tylko tu wrzuca mi cały arkusz a nie jeden skoroszyt Summary, do tego zawsze mi wyrzuca jakies komunikaty o błędach (prawdopodomnie z tego co się doczytałem to o tym ze nie kopiuje watości w innych arkuszach) i zamyka mi excela całkowicie, ale pliczek utworzony jest z poprawną nazwą i formatowaniem wewnątrz, tylko przy otwieraniu pyta o rekalkulacje danych i czy ma byc tylko do odczytu. Da radę coś z tym zrobić? |
|
napisał: Trebor postów: 1209
umieszczony: 29 października 2012 19:12
|
|
Spróbuj jak poniżej:
Sub zapisz()
Sheets("Summary").Cells.Copy
Workbooks.Add
Range("A1").PasteSpecial (xlPasteValues)
ActiveSheet.Name = "Summary"
ActiveWorkbook.SaveAs Filename:="C:\" & "SEP_Results_" & Range("B2").Value & "_" & Format(Now, "yyyy-mm-dd"), FileFormat:=xlNormal, _
ReadOnlyRecommended:=True
ActiveWorkbook.Close True
End Sub |
|
napisał: testsep1 postów: 6
umieszczony: 29 października 2012 11:56
|
|
Wszystko juz pięknie śmiga, tylko bolą mnie dwie rzeczy:
1. Wartości po exporcie wyświetlaja mi się jako #REF, bo kopiowane są formuły a nie wartości komórek, a z racji tego że do exportu idzie tylko jeden arkusz z całego skoroszytu to nie ma on skąd pobrac sobie wartosci.
2. Kiedy do nazwy chcę wczepić komórkę w której jest formuła pobierająca wartość z innego arkusza wyskakuje mi błąd kompilacji, czasem nawet excel sie restartuje.
Przykład:
Komórka B2 zawiera w sobie formułę:
Cytat:=IF(AB8=0;"----";IF(AC8="Empty";"----";INDIRECT($AC$8&"A"&$AB$8))) i tu mi się ładnie pobiera model sprzętu jednak nie mogę wyświetlić podczas eksportu i wywala błąd w kompilatorze makra
A linia kodu w makro odpowiedzialna za nazwę wygląda tak:
Cytat:ActiveWorkbook.SaveAs Filename:="C:\" & "SEP_Results_" & Range("B2") & "_" & Format(Now, "yyyy-mm-dd") & ".xls", FileFormat:=xlNormal, _
ReadOnlyRecommended:=True
Co wg was należy zmienić, żeby nazwa i dane w pliku były wyświetlane poprawnie? |
|
napisał: Trebor postów: 1209
umieszczony: 26 października 2012 16:22
edytowany: 26 października 2012 16:23
|
|
Pierwsza linia sprawdza czy w komórce D1 jest wpisana data. Jeśli jej tam nie ma to nic się nie dzieje. Z których komórek tworzona jest nazwa jak rozumiem umiesz zmienić. |
|
napisał: testsep1 postów: 6
umieszczony: 26 października 2012 16:12
|
|
Kurcze, żaden plik sie nie tworzy. Chciałbym aby nazwa była tworzona na podstawie komórki d27 gdzie będzie wpisana jakaś wartość |
|
napisał: Trebor postów: 1209
umieszczony: 25 października 2012 17:14
|
|
W skrócie to coś w rodzaju:
Sub zapisz_summary()
If Not IsDate(Sheets("Summary").Range("D1")) Then Exit Sub
Sheets("Summary").Copy
ActiveWorkbook.SaveAs "C:\" & Format(Range("D1").Value, "dd_mm_yyyy_") & Range("D2")
ActiveWorkbook.Close
End Sub
Jednak musisz zadbać, aby w komórce nie było znaków zakazanych w nazwach plików. |
|
napisał: testsep1 postów: 6
umieszczony: 24 października 2012 21:38
|
|
A gdybym chciał wyeksportować dany arkusz z całego skoroszytu, tak aby plik miał w nazwie datę z komórki i inne dane z komórek z arkusza.
Bo póki co się zastanawiam jak to makro powinno wyglądać, ale moje początkowe umiejętności mocno się ograniczają.
Przykładowa nazwa nowego pliku xlsx (zawiera wyeksportowany arkusz Summary z poprzedniego pliku): Date_[pa_no]_model.xlsx |
|
napisał: Trebor postów: 1209
umieszczony: 24 października 2012 04:11
|
|
=INDIRECT("Sheet1!C" & $B$7) |
|
napisał: testsep1 postów: 6
umieszczony: 23 października 2012 23:19
|
|
A po angielsku jak to może wyglądać, bo mam office eng. |
|
napisał: Trebor postów: 1209
umieszczony: 23 października 2012 19:22
|
|
Przykładowa formuła:
=ADR.POŚR("Sheet1!C" & $B$7) |
|
napisał: testsep1 postów: 6
umieszczony: 23 października 2012 18:28
|
|
Wszystko rozbija się o to, że chciałem ułatwić sobie zadanie z codziennym raportowaniem, jednak nie wiem jak zrobić to aby raport generował się automatycznie w określonych komórkach. Wszystko jest zawarte w pliku.
Sheet1- zawiera dane tabelaryczne (wpisy jak w rekordzie - czyli cały wiersz dotyczy jednego dnia, a poszczególne komórki stanowią pola owego rekordu)
Summary - tu powinien sie generować raport po podaniu identyfikatora wiersza z Sheet1, wartości powinny być umieszczone w odpowiednich dla nich komórkach.
Czy ktoś może mi pomóc, nie jestem jakimś wprawnym programistą.
Pozdrawiam |
|
wstecz 1 dalej wszystkich stron: 1
|