ID tematu: 27905
 |
Dodawanie nowych danych- Błaganie o pomoc ;( |
| Autor |
Wiadomość |
niko777
słuchacz

Posty: 7
|
Wysłany: 2012-02-08, 10:52 Dodawanie nowych danych- Błaganie o pomoc ;(
|
|
|
Witam ponownie kolegów i proszę o pomoc.
Mam makro które pobiera dane z arkuszy i tworzy nowy plik z tabelą do której wstawiane są odpowiednie dane (pobiera dane od końca określonej kolumny)
oto jak ono wygląda
| Kod: | Sub Zestawieniedanych()
Dim ListaZbiorów, NazwaZb
Dim ostatniWiersz As Long
Dim InputWb As Workbook
Dim wrkSh As Worksheet
'Set InputWb = ActiveWorkbook
Dim OutCel As Range
ListaZbiorów = Application.GetOpenFilename("Excel (*.xls),*.xls", , "wybierz dane", , True)
If Not IsArray(ListaZbiorów) Then Exit Sub
' With Workbooks.Add(1).ActiveSheet
' With Worksheets.Add
With Worksheets("Dane")
Set OutCel = .Cells(5, 1)
End With
For Each NazwaZb In ListaZbiorów
Set InputWb = Workbooks.Open(NazwaZb, 0, True)
For Each wrkSh In InputWb.Worksheets
ostatniWiersz = 0
On Error Resume Next
' ostatniWiersz = wrkSh.Columns("K").Find("*", , xlValues, xlWhole, xlByRows, xlPrevious, False, False).Row
ostatniWiersz = wrkSh.Columns("j").Find("*", , xlValues, xlWhole, xlByRows, xlPrevious, False, False).Row
On Error GoTo 0
Set OutCel = OutCel.Cells(2, 1)
ThisWorkbook.Sheets("Dane").Hyperlinks.Add Anchor:=OutCel, Address:= _
NazwaZb, SubAddress:=wrkSh.Name & "!" & "A1", TextToDisplay:=wrkSh.Name
OutCel.Cells(1, 2).Value = InputWb.Name
If ostatniWiersz >= 6 Then
OutCel.Cells(1, 1 + 1 + 1).Value = wrkSh.Cells(ostatniWiersz, "j").Value
OutCel.Cells(1, 1 + 2 + 1).Value = wrkSh.Cells(ostatniWiersz - 1, "j").Value
OutCel.Cells(1, 1 + 3 + 1).Value = wrkSh.Cells(ostatniWiersz - 2, "j").Value
OutCel.Cells(1, 1 + 4 + 1).Value = wrkSh.Cells(ostatniWiersz - 3, "j").Value
OutCel.Cells(1, 1 + 5 + 1).Value = wrkSh.Cells(ostatniWiersz - 4, "j").Value
OutCel.Cells(1, 1 + 6 + 1).Value = wrkSh.Cells(ostatniWiersz - 7, "j").Value
End If
Next
Application.DisplayAlerts = False
InputWb.Close False
Set InputWb = Nothing
Application.DisplayAlerts = True
Next
End Sub
|
Mam wielką prośbę potrzebuje żeby pobierało jeszcze z każdego arkusza i wstawiało do tej tabeli dane z komórek J1 , J2 , J3 , J4 .
Pewnie to prosta sprawa , ale nie chciałbym coś namieszać ...
Z góry dziękuje za pomoc
Edit: Proszę stosować TAGi [CODE] |
|
 | ID posta:
147865
|
|
|
 |
|
EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email
|
negatyv
Excel Expert


Zaproszone osoby: 4
Pomógł: 195 razy Posty: 910
|
Wysłany: 2012-02-08, 18:48
|
|
|
Twoje komórki określasz po prostu:
,
Musisz tylko zdecydować, gdzie te dane wkleić. Np.
| Kod: | | OutCel.Cells(1, 1 + 7 + 1).Value = wrkSh.Range("J1") |
|
|
 | ID posta:
147931
|
|
|
 |
|
EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email
|
niko777
słuchacz

Posty: 7
|
Wysłany: 2012-02-09, 10:38
|
|
|
| negatyv napisał/a: | Twoje komórki określasz po prostu:
,
Musisz tylko zdecydować, gdzie te dane wkleić. Np.
| Kod: | | OutCel.Cells(1, 1 + 7 + 1).Value = wrkSh.Range("J1") |
|
Kurcze jak dla mnie nadal czarna magia ... chcę żeby dane z komórek J1 ,J2 ,J3, J4 tworzyły kolejna kolumnę w zestawieniu wiec to chyba tak
| Kod: | OutCel.Cells(1, 1 + 1 + 1).Value = wrkSh.Cells(ostatniWiersz, "j").Value OutCel.Cells(1, 1 + 2 + 1).Value = wrkSh.Cells(ostatniWiersz - 1, "j").Value
OutCel.Cells(1, 1 + 3 + 1).Value = wrkSh.Cells(ostatniWiersz - 2, "j").Value
OutCel.Cells(1, 1 + 4 + 1).Value = wrkSh.Cells(ostatniWiersz - 3, "j").Value
OutCel.Cells(1, 1 + 5 + 1).Value = wrkSh.Cells(ostatniWiersz - 4, "j").Value
OutCel.Cells(1, 1 + 6 + 1).Value = wrkSh.Cells(ostatniWiersz - 7, "j").Value |
tu jest tworzona tabela z pobieranymi dotychczas danymi... a żeby dodać następne z danymi z komórek J1,J2,J3,J4 to chyba tak:
| Kod: | OutCel.Cells(1, 1 + 7 + 1).Value = wrkSh.Range("J1").Value
OutCel.Cells(1, 1 + 8 + 1).Value = wrkSh.Range("J2").Value
OutCel.Cells(1, 1 + 9 + 1).Value = wrkSh.Range("J3").Value
OutCel.Cells(1, 1 + 10 + 1).Value = wrkSh.Range("J4").Value | ,
mam rację?
w którym miejscu wstawić to
i dlaczego wcześniej mam tam
Kurcze jak dla mnie to masakra jakaś...
żeby było jasne o co mi chodzi... to chcę żeby do dotychczas pobieranych danych z tych arkuszy pobrać jeszcze dane z komórek J1,J2,J3,J4 i umieścić je w kolejnych kolumnach tabeli |
|
 | ID posta:
147988
|
|
|
 |
negatyv
Excel Expert


Zaproszone osoby: 4
Pomógł: 195 razy Posty: 910
|
Wysłany: 2012-02-09, 11:09
|
|
|
Dobrze zrobiłeś :) Coś nie działa?
Zapis wrksh.range("J1") to to samo co wrkSh.Range("J1").Value, po prostu Excel się domyśla, że podając range chcesz uzyskać jego wartość (value).
To "cells" to inna metoda wskazywania komórek. Używasz takiego, jakie jest w tej chwili wygodne.
wrsk.cells(1,1) to to samo co wrsk.range("A1") |
_________________ http://www.123office.pl - blog poświęcony programom pakietu MS Office. |
|
 | ID posta:
147994
|
|
|
 |
|
EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email
|
niko777
słuchacz

Posty: 7
|
Wysłany: 2012-02-09, 14:54
|
|
|
Kolego jesteś WIELKI !!
Dzięki
Jeszcze mam jedną prośbę ... czy da się tak zrobić żeby najpierw czyściło z danych arkusz do którego są pobierane?
Bo w tej chwili np wczytuje 30 wierszy i jest ok , następnie chce wczytać dane z innych arkuszy których jest np 10. I wtedy mam tak ze mam te 10 wierszy z danymi i poniżej 20 starych danych. chodzi mi o to żeby przed pobraniem danych wyczyściło stare dane w tym arkuszu
Pozdrawiam |
|
 | ID posta:
148032
|
|
|
 |
negatyv
Excel Expert


Zaproszone osoby: 4
Pomógł: 195 razy Posty: 910
|
Wysłany: 2012-02-09, 15:02
|
|
|
Myślę, że jeśli chodzi o Excela to są tutaj więksi ode mnie :)
| Kod: | | Worksheets("nazwa arkusza").Cells.ClearContents |
|
_________________ http://www.123office.pl - blog poświęcony programom pakietu MS Office. |
|
 | ID posta:
148034
|
|
|
 |
|
EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email
|
niko777
słuchacz

Posty: 7
|
Wysłany: 2012-02-23, 11:00
|
|
|
Działa , tylko czyści wszystko w arkuszu a ja mam tam przygotowaną tabele do której są wczytywane te dane .
Chodzi mi bardziej o polecenie "wyczyść zawartość" z danego zakresu np pd D1 do K200
Jakiś pomysł? |
|
 | ID posta:
149967
|
|
|
 |
negatyv
Excel Expert


Zaproszone osoby: 4
Pomógł: 195 razy Posty: 910
|
|
 | ID posta:
149978
|
|
|
 |
|
EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email
|
|
|
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
|
| |
| |