| Author |
Message
|
bezdura Poziom 12

Joined: 20 Jan 2009 Posts: 85
|
|
| Back to top |
|
 |
technics6 Poziom 22

Joined: 19 May 2007 Posts: 2274 Location: Białystok
|
#2
17 Mar 2010 17:57 Re: Szukam rozwiazania w VBA excel |
|
|
|
Coś takiego lepiej było by potraktować accessem. W Excelu dużo roboty...
|
|
| Back to top |
|
 |
bezdura Poziom 12

Joined: 20 Jan 2009 Posts: 85
|
#3
17 Mar 2010 18:05 Re: Szukam rozwiazania w VBA excel |
|
|
|
Ok, nie ma znaczenia. Możesz podpowiedzieć jak sie do tego zabrać?
Dodano po 3 [minuty]:
Aczkolwiek wolałbym w excelu :( bo wszystko siedzi własnie w excelu.
Chyba że, moze łatwiej może da sie zrobić coś takiego żeby wybierało tylko najstarszą date druku z wszystkich komponentów oraz komponent i maszyne i poprostu wstawiało obok tego inikalnego Sp w arkuszu1.
|
|
| Back to top |
|
 |
technics6 Poziom 22

Joined: 19 May 2007 Posts: 2274 Location: Białystok
|
#4
17 Mar 2010 18:07 Re: Szukam rozwiazania w VBA excel |
|
|
|
Trzeba "latać" po komórkach w arkuszu docelowym jakąś pętlą i wyszukiwać czy jest tam tekst którego szukasz. Jeżeli jest - wstawić sąsiednią komórkę (albo kilka sąsiednich komórek) do arkusza docelowego.
A te dane w takiej durnej postaci muszą być?
Tj. nie w tabeli tylko w jakiejś... nie wiem jak to nazwać... tablicy?
|
|
| Back to top |
|
 |
bezdura Poziom 12

Joined: 20 Jan 2009 Posts: 85
|
#5
17 Mar 2010 18:12 Re: Szukam rozwiazania w VBA excel |
|
|
|
postac dowolna byle by były te dane.
moze jakis kod podrzucisz?
|
|
| Back to top |
|
 |
Google

|
#
17 Mar 2010 18:12 |
|
|
|
|
|
| Back to top |
|
 |
technics6 Poziom 22

Joined: 19 May 2007 Posts: 2274 Location: Białystok
|
#6
17 Mar 2010 18:16 Re: Szukam rozwiazania w VBA excel |
|
|
|
Co to jest to "sp"?
Dodano po 1 [minuty]:
Sorry, już nie ważne. Źle zrozumiałem problem.
|
|
| Back to top |
|
 |
bezdura Poziom 12

Joined: 20 Jan 2009 Posts: 85
|
#7
17 Mar 2010 18:34 Re: Szukam rozwiazania w VBA excel |
|
|
|
czyli mi nie pomożesz ?
|
|
| Back to top |
|
 |
technics6 Poziom 22

Joined: 19 May 2007 Posts: 2274 Location: Białystok
|
#8
17 Mar 2010 19:12 Re: Szukam rozwiazania w VBA excel |
|
|
|
Podpowiedź:
| Code: |
Public Sub RobCostam()
NazwaArkWej = "Arkusz1"
NazwaArkDocel = "Arkusz2"
'szukanie kolumny sp
For NumerWiersza = 1 To 10
For NumerKolumny = 1 To 10
If (Sheets(NazwaArkWej).Cells(NumerWiersza, NumerKolumny) = "sp") Then
PoczTabWejWiersz = NumerWiersza
PoczTabWejKolumny = NumerKolumny
Exit For
Exit For
End If
Next NumerKolumny
Next NumerWiersza
If MsgBox("Znalazłem początek tabeli z danymi." & Chr(13) & "Wiersz:" & NumerWiersza & " Kolumna:" & NumerKolumny & Chr(13) & "Kontynuować? (arkusz docelowy zostanie nadpisany)", vbYesNo) = vbNo Then Exit Sub
Sheets(NazwaArkDocel).Columns("A:D").Delete 'czysci kolumny przed wstawieniem danych
'niech się staną nagłówki
For x = 1 To 4
Sheets(NazwaArkDocel).Cells(1, x).Value = Sheets(NazwaArkWej).Cells(PoczTabWejWiersz, PoczTabWejKolumny + x - 1).Value
Next x
WierszWyj = 2
For WierszWej = 1 To 50 'przeszukuje 50 wierszy w tabeli wejściowej
'DALEJ MI SIĘ NIE CHCE, PRÓBUJ SAM
Next WierszWej
End Sub
|
|
|
| Back to top |
|
 |
Google

|
#
17 Mar 2010 19:12 |
|
|
|
|
|
| Back to top |
|
 |
bezdura Poziom 12

Joined: 20 Jan 2009 Posts: 85
|
#9
17 Mar 2010 21:22 Re: Szukam rozwiazania w VBA excel |
|
|
|
hm, coś tu jest zakrecone. Po co szukasz kolumny Sp. Musimy porównac dane z kolumny Sp w arkuszu 1 z arkusza2. To co nego napisałes to wydaje mi sie że mogłoby i bez tego też być. Sednem sprawy jest w przypadku odnalezienia dwóch takich samych nr Sp w arkuszach, przypisać do jednego Sp w arkuszu2 wartości z arkusza1 tyle tylko że z kilku rekordów (bo w arkuszu1 jest kilka takich samych Sp)
Sp to jest nr zadania
Dodano po 45 [minuty]:
kurcze zakręcone to jest.
Chyba weżme łatwiejszy wariant
Dla jednego Sp w arkuszu1 jest kilka rekordów i teraz chciał bym wybrać najstarszą date druku z tych rekordów.
Pomózcie prosze
|
|
| Back to top |
|
 |
technics6 Poziom 22

Joined: 19 May 2007 Posts: 2274 Location: Białystok
|
#10
17 Mar 2010 21:40 Re: Szukam rozwiazania w VBA excel |
|
|
|
Zrób pętlę która będzie "jechać" po wszystkich "rekordach" (po 3 komórki) i je wstawiać do nowego arkusza. Numer wiersza z tabeli wejściowej jest powiązany z SP. Łatwo to wyciągnąć...
Dodano po 52 [sekundy]:
A ten kod na górze to zbiór przykładów jak można się odwoływać do komórek, nie rozwiązanie Twojego problemu.
|
|
| Back to top |
|
 |
bezdura Poziom 12

Joined: 20 Jan 2009 Posts: 85
|
#11
17 Mar 2010 21:41 Re: Szukam rozwiazania w VBA excel |
|
|
|
taa, wszystko ładnie pięknie tylko że ja jestem bardzo początkujący jeżeli chodzi o VBA
|
|
| Back to top |
|
 |
technics6 Poziom 22

Joined: 19 May 2007 Posts: 2274 Location: Białystok
|
#12
17 Mar 2010 21:42 Re: Szukam rozwiazania w VBA excel |
|
|
|
Dane są w idiotycznym formacie i tyle. Żeby dane były jedne pod drugimi a nie obok, to zrobiło by się tabelę przestawną i by było załatwione.
Skąd bierzesz te dane?
|
|
| Back to top |
|
 |
bezdura Poziom 12

Joined: 20 Jan 2009 Posts: 85
|
#13
17 Mar 2010 21:50 Re: Szukam rozwiazania w VBA excel |
|
|
|
Dane mam w dwóch arkuszach. Arkusz1 gdzie mam kilka razy to samo sp z róznymi komponentami o róznych godzinach drukowane, natomiast w arkuszu2 jest tylko jedno unikalne sp. Jednakże oba arkusze nie moge zmienic gdyż takie są i tyle.
Pomoż mi wybrać max date druku dla Sp w arkuszu1 i przypisac te date do arkusz2 o tym samym Sp.
|
|
| Back to top |
|
 |
technics6 Poziom 22

Joined: 19 May 2007 Posts: 2274 Location: Białystok
|
#14
17 Mar 2010 21:55 Re: Szukam rozwiazania w VBA excel |
|
|
|
Zrób sobie obok danych źródłowych kolumnę "max data" i wpisz tam =MAX(C4;F4;I4;L4) i ustaw dla tej kolumny format data/czas.
|
|
| Back to top |
|
 |
bezdura Poziom 12

Joined: 20 Jan 2009 Posts: 85
|
#15
17 Mar 2010 22:30 Re: Szukam rozwiazania w VBA excel |
|
|
|
A mówiłeś coś o accesie. Wiesz jak to w nim zrobic??
|
|
| Back to top |
|
 |
Google

|
#
17 Mar 2010 22:30 |
|
|
|
|
|
| Back to top |
|
 |
technics6 Poziom 22

Joined: 19 May 2007 Posts: 2274 Location: Białystok
|
#16
17 Mar 2010 22:33 Re: Szukam rozwiazania w VBA excel |
|
|
|
Wiem, ale dzisiaj wykorzystałeś już wszystkie darmowe minuty :)
Jak nikt się nie odezwie to jutro coś wytworzę.
|
|
| Back to top |
|
 |
adamas_nt Poziom 22

Joined: 26 Jan 2008 Posts: 2112 Location: Nowy Tomyśl
|
#17
18 Mar 2010 10:44 Re: Szukam rozwiazania w VBA excel |
|
|
|
Takie moje kombinacje. Zamiast zagnieżdżać kilka pętli wykorzystałem tablicę. Procedura w kodzie arkusza uruchamiana przez zmianę wartości w komórce (kolumna A).
| Description: |
|
 Download |
| Filename: |
test(1).xls |
| Contents: |
|
| Filesize: |
42 KB |
| Punkty: |
0 |
|
|
| Back to top |
|
 |
technics6 Poziom 22

Joined: 19 May 2007 Posts: 2274 Location: Białystok
|
#18
18 Mar 2010 21:55 Re: Szukam rozwiazania w VBA excel |
|
|
|
adamas_nt mogłeś zrobić obsługę edycji więcej niż jednej komórki (np. gdyby autor zechciał wkleić do arkusza jakieś dane).
Kod kolegi adamas_nt po mojej aktualizacji:
| Code: |
Private Sub Worksheet_Change(ByVal TargetCells As Range)
Dim tmp As Variant
Dim tablica()
Dim wrt As Integer, i As Long, j As Integer
'If Target.Cells.Count > 1 Then Exit Sub
Application.EnableEvents = False
Dim Target As Range
For Each Target In TargetCells
'wyczysc wiersz
tmp = Target.Value
Rows(Target.Row).ClearContents
Target.Value = tmp
If Target.Column = 1 Then
With Sheets("Arkusz2")
wrt = 1
'wypełnienie tablicy
For i = 2 To .Range("A2").End(xlDown).Row
If .Cells(i, 1) = Target.Value Then
ReDim Preserve tablica(3, wrt)
tablica(1, wrt) = .Cells(i, 2)
tablica(2, wrt) = .Cells(i, 3)
tablica(3, wrt) = .Cells(i, 4)
wrt = wrt + 1
End If
Next
'i z tablicy do arkusza
j = 2 'Nr pierwszej kolumny w ark docelowym
For i = 1 To wrt - 1
Cells(Target.Row, j) = tablica(1, i)
Cells(Target.Row, j + 1) = tablica(2, i)
Cells(Target.Row, j + 2) = tablica(3, i)
j = j + 3
Next
End With
End If
Next Target
Application.EnableEvents = True
End Sub
|
|
|
| Back to top |
|
 |