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: 75847 Skopiuj do schowka Makro łaczenie danych z wielu arkuszy
Autor Wiadomość
edta
Fan Excela


Wersja: Win Office 2016
Posty: 73
Wysłany: 16-05-2024, 21:47   Makro łaczenie danych z wielu arkuszy

Witam,
prośba o napisanie następującego makra zgodnie z załącznikiem.
Mam plik w którym danymi są arkusze "1","2", itd.- w przykładzie są tylko dwa takie arkusze ale tych arkuszy może być nieskończenie wiele i mogą mieć różne nazwy. Budowa każdego kolejnego kolejnego arkusza jest taka sama tzn. miejsce zapisu danych.
Chciałbym żeby makro tworzyło taką tabele jak w arkuszu dane- dane z wszystkich arkuszy poprzedzających arkusz "dane" w postaci takiej tabeli.
W tabeli z arkusza "Dane" kolumny numerowane 1,2,3...54 pozostają puste.
Z góry dziękuje za pomoc.

makro.xlsx
Pobierz Plik ściągnięto 19 raz(y) 39.15 KB

ID posta: 435374 Skopiuj do schowka
 
 
dm 
Excel Expert


Wersja: Win Office 2013
Pomógł: 622 razy
Posty: 1622
Wysłany: 17-05-2024, 12:59   

Testuj.
dm
Ps. W piątej linii od końca powinno być
Kod:
 .Range("D" & Lst).Resize(10, 27) = Application.Transpose(wsad)


makro.xlsm
Pobierz Plik ściągnięto 18 raz(y) 48.12 KB

ID posta: 435382 Skopiuj do schowka
 
 
edta
Fan Excela


Wersja: Win Office 2016
Posty: 73
Wysłany: 27-05-2024, 09:52   

Dziekuje za makro.
Uruchomiłem ale wiersze od nr. 2 do 21 są puste.
Jak zrobić żeby dane uzupełniały się od od drugiego wiersza?
ID posta: 435514 Skopiuj do schowka
 
 
dm 
Excel Expert


Wersja: Win Office 2013
Pomógł: 622 razy
Posty: 1622
Wysłany: 27-05-2024, 20:12   

Dzieje się tak, bo masz ukryty arkusz.
Zmień makro na
Kod:
Option Explicit
Option Base 1

Sub Makro()
Dim i As Long, r As Long, Lst As Long
Dim Sht As Worksheet
Dim wsad, wynik(10, 3)
   
    For Each Sht In Worksheets
        If Sht.Name <> "Dane" Then
            If Sht.Visible = True Then
                wsad = Sht.Range("E12").CurrentRegion
                r = 0
                For i = 5 To 14
                    r = r + 1
                    wynik(r, 1) = Sht.Cells(7, i)
                    wynik(r, 2) = Sht.Cells(5, i)
                    wynik(r, 3) = Sht.Cells(6, i)
                Next i
                With Sheets("Dane")
                    Lst = .Cells(.Rows.Count, "A").End(xlUp).Row
                    If Lst > 2 Then Lst = Lst + 1
                    .Range("A" & Lst).Resize(r, 3) = wynik
                    .Range("D" & Lst).Resize(10, 27) = Application.Transpose(wsad)
                End With
            End If
        End If
 Next Sht
End Sub
dm
ID posta: 435536 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.wip.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