Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 63932 Skopiuj do schowka Wstawienie formuły zależnie od aktualnej daty
Autor Wiadomość
ted11 
Exceloholic


Posty: 158
Wysłany: 31-01-2019, 11:42   

Dzięki za pomoc i wyjaśnienia. Po szybkich testach jest wszystko super :beer
Pozdrawiam
ID posta: 361651 Skopiuj do schowka
 
 
ted11 
Exceloholic


Posty: 158
Wysłany: 05-02-2019, 02:09   

Witam ponownie :)
W docelowym skoroszycie oprócz powyższego mam potrzebę skopiowania danych z tych samych komórek arkuszy o nazwie "Bilans ogólny" w każdym arkuszu m-ca (01_styczeń.xlsx; 02_luty.xlsx...itd) do skoroszytu Zestawienie2.xlsm odpowiednio w kolumnie D (Bilans ogólny) i kolumnie E (Bilans ogólny2). (wszystkie szczegóły przedstawiam w załączonym przykładzie) Niestety samodzielnie (mimo prób) nie jestem w stanie sobie z tym poradzić więc raz jeszcze proszę o pomoc ;-)

2019(5).zip
Oto przykład:
Pobierz Plik ściągnięto 9 raz(y) 90.71 KB

ID posta: 361967 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 2016
Pomógł: 1303 razy
Posty: 4486
Wysłany: 05-02-2019, 17:05   

Zobacz, czy załączony plik będzie Ci działać. Edytowałem swój plik, a nie ten z Twojego załącznika. Z tym Twoim jest jakiś problem, ale nie mogę odnaleźć przyczyny, dlaczego on zachowuje się inaczej.

Zestawienie2.xlsm
Pobierz Plik ściągnięto 14 raz(y) 26.76 KB

ID posta: 362010 Skopiuj do schowka
 
 
ted11 
Exceloholic


Posty: 158
Wysłany: 06-02-2019, 01:52   

Wszystko działa jak trzeba :) Dzięki wielkie :-D
Proszę jeszcze o o sprawdzenie, czy właściwie rozumiem ten kod VBA oraz wyjaśnienie wątpliwości zawartych w dołączonym przeze mnie komentarzu kodu (a najlepiej dodanie właściwego komentarza wyjaśniającego poszczególne kroki):
Kod:
Private Sub Workbook_Open()
  Dim mypath As String, npl As String, i As Long 'deklaracje zmiennych
  Application.DisplayAlerts = False 'wyłączenie komunikatu
  Me.SaveLinkValues = False 'Wyłączenie zapisanych wartości łączy zewn. wraz z plikiem
  For i = 1 To 12 'pętla plików poszczególnych m-cy
     With Me.Worksheets(1).Range("B" & i + 1)
     npl = mypath & "\[" & Format(i, "00") & "_" & Format(30 * i, "mmmm") & ".xlsx]" 'składnia nazwy plików
     mypath = Me.Path 'wartość zmiennej (czy chodzi o ścieżkę dostępu otwartego pliku ?)
       .Formula = "=IF(ISERROR('" & npl & "1'!$B$1),"""",COUNTA('" _
       & npl & "1:5'!$B$1:$K$6))"
     End With
     With Me.Worksheets(1).Range("C" & i + 1)
       .Formula = "=IF(ISERROR('" & npl & "1'!$B$1),"""",COUNTA('" _
       & npl & "1:5'!$B$8:$K$13))"
     End With
     With Me.Worksheets(1).Range("D" & i + 1)
       .Formula = "=IFERROR('" & npl & "Bilans ogólny'!$A$1,"""")" 'nie rozumiem znaczenia """"
     End With
     With Me.Worksheets(1).Range("E" & i + 1)
       .Formula = "=IFERROR('" & npl & "Bilans ogólny'!$B$1,"""")" 'nie rozumiem znaczenia """"
     End With
   Next i 'zakończenie pętli
  Application.DisplayAlerts = True 'przywrócenie komunikatu
End Sub

Bardzo zależy mi by jak najwięcej zrozumieć z tej lekcji ;-)
Pozdrawiam
ID posta: 362047 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 2016
Pomógł: 1303 razy
Posty: 4486
Wysłany: 06-02-2019, 09:43   

Instrukcja:
Kod:
mypath = Me.Path
odczytuje ścieżkę do otwartego (aktywnego) skoroszytu. Zakładamy, że wszystkie pliki miesięczne będą w tym samym katalogu. Ta instrukcja powinna być przed pętlą For, bo ścieżka się nie zmienia. Koniecznie musi być przed pierwszym użyciem wartości mypath.
Instrukcja:
Kod:
npl = mypath...
powinna być zaraz za For, bo konstrukcja nazwy pliku zależy tylko od i, więc nie ma potrzeby umieszczać jej w obrębie instrukcji With. To, co prawda, nie jest błąd, ale zaciemnia kod.
Cztery cudzysłowy są dlatego, że cała formuła jest zapisana jako tekst w cudzysłowie, więc wewnątrz tego tekstu cudzysłowy trzeba zapisywać podwójnie.
Kod:
Application.DisplayAlerts = True
zostało zapisane "dla symetrii". W istocie nie jest to konieczne, bo program sam przywraca wyświetlanie alertów po zakończeniu kodu.
ID posta: 362061 Skopiuj do schowka
 
 
ted11 
Exceloholic


Posty: 158
Wysłany: 06-02-2019, 13:25   

Serdecznie dziękuję :)
ID posta: 362072 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe