napisał: adam00000 postów: 15
umieszczony: 13 czerwca 2006 14:26
|
|
THX. |
|
napisał: Trebor postów: 1209
umieszczony: 12 czerwca 2006 21:31
|
|
Cytat: Coś nie tak :) ale mam chyba lepszy pomysł na rozwizanie tej łamigłówki.
Zamiast "coś nie tak" napisz co konkretnie nie działa. Czy błąd popełniłem ja czy Ty podałeś nie do końca trafne informacje. Bardzo by mi ułatwiło dalsze działania.
W chwili obecnej zmianiamy tylko sposób wyszukiwania określonego stringu. Sądzę, że tu możesz już włożyć trochę swojej twórczości i pochwalić się tym na forum.
Czy chodzi o coś takiego:
Sub konto()
Dim a As Long
Dim b As String
For a = 1 To Range("A65536").End(xlUp).Row
If InStr(1, UCase(Right(Cells(a, 1), 11)), "STANDARD") > 0 _
Or InStr(1, UCase(Right(Cells(a, 1), 11)), "KREDYT") > 0 _
Or InStr(1, UCase(Right(Cells(a, 1), 11)), "INNA") > 0 Then b = Cells(a, 1) & " "
If Left(Cells(a, 1), 4) = "Poz " Or Left(Cells(a, 1), 4) = "Pod " Then
Cells(a, 2) = b & Left(Cells(a, 1), 28) & Cells(a + 1, 1) & Cells(a + 2, 1) & Cells(a + 3, 1) & Right(Cells(a, 1), 16)
a = a + 3
End If
Next a
End Sub
Pozdrawiam |
|
napisał: adam00000 postów: 15
umieszczony: 12 czerwca 2006 17:43
|
|
Proszę o kod VBA jak to zrobić ??? |
|
napisał: adam00000 postów: 15
umieszczony: 12 czerwca 2006 10:00
|
|
i oczywiście to w pętli aż znajdzie następnie "standard" .... |
|
napisał: adam00000 postów: 15
umieszczony: 12 czerwca 2006 09:58
|
|
Coś nie tak :) ale mam chyba lepszy pomysł na rozwizanie tej łamigłówki.
Jeśli z prawej strony ( 11 znaków ) wiersza znajdziej słowo "standard" , "kredyt" lub "inna" skopiuj ten tekst do złączonej wierszy "Poz" , "Pod".
Dzięki za cierpliwość i pomoc. |
|
napisał: Trebor postów: 1209
umieszczony: 11 czerwca 2006 09:14
|
|
Czy to spełnia dodatkowe warunki?
Sub konto()
Dim a As Long
Dim b As String
For a = 1 To Range("A65536").End(xlUp).Row
If Left(Cells(a, 1), 5) = "Poz 1" Then b = Cells(a - 2, 1) & " "
If Left(Cells(a, 1), 4) = "Poz " Or Left(Cells(a, 1), 4) = "Pod " Then
Cells(a, 2) = b & Left(Cells(a, 1), 28) & Cells(a + 1, 1) & Cells(a + 2, 1) & Cells(a + 3, 1) & Right(Cells(a, 1), 16)
a = a + 3
End If
Next a
End Sub
Pozdrawiam |
|
napisał: adam00000 postów: 15
umieszczony: 10 czerwca 2006 12:26
|
|
Nastapił czeski błąd ( przepraszam) ale terez juz jest poprawnie.
Do tego potrzebuje jeszcze wkleić kod VBA, który będzie dodatkowo cały wiersz znajdujacy się dwa wiersze powyżej znalezionej wartości "POZ 1" kopiował do wszystkich złączonych wartości wierszy "Poz" i "Pod" aż do momentu znalezienia nastepnej wartości "Poz 1" i tak w pętli.
i tak:
xxx-xxx-xxx 000-000-000
Poz 1 11111111-08B000-AAAAA- 100.00 01-06-06
809010-000000-00-000-9990-
10-5DD0001-0770-MCVAP-0000-
0000000000-00000-XX
Pod 1 14125731-086000-ABBBB- 150.00 01-06-06
809010-000000-00-000-9990-
10-5DD0001-0770-MCVAP-0000-
0000000000-00000-XX
yy-yy-yy 000-000-000
Poz 1 22221111-08B000-AAAAA- 100.00 01-06-06
809010-000000-00-000-9990-
10-5DD0001-0770-MCVAP-0000-
0000000000-00000-XX
Interesuje mnie efekt jak niżej :
xxx-xxx-xxx 000-000-000 Poz 1 11111111-08B000-AAAAA-809010-000000-00-000-9990-10-5DD0001-0770-MCVAP-0000-0000000000-00000-XX 100.00 01-06-06 (*jeden wiersz)
xxx-xxx-xxx 000-000-000 Pod 1 14125731-086000-ABBBB-809010-000000-00-000-9990-10-5DD0001-0770-MCVAP-0000-0000000000-00000-XX 150.00 01-06-06 (*jeden wiersz)
yy-yy-yy 000-000-000 Poz 1 22221111-08B000-AAAAA-809010-000000-00-000-9990-10-5DD0001-0770-MCVAP-0000-0000000000-00000-XX 100.00 01-06-06 (*jeden wiersz) |
|
napisał: adam00000 postów: 15
umieszczony: 10 czerwca 2006 12:21
|
|
Do tego potrzebuje jeszcze wkleić kod VBA, który będzie dodatkowo cały wiersz znajdujacy się dwa wiersze powyżej znalezionej wartości "POZ" kopiował do wszystkich złączonych wartości wierszy "Poz" i "Pod" aż do momentu znalezienia nastepnej wartości "Poz 1"
i tak:
xxx-xxx-xxx 000-000-000
Poz 1 11111111-08B000-AAAAA- 100.00 01-06-06
809010-000000-00-000-9990-
10-5DD0001-0770-MCVAP-0000-
0000000000-00000-XX
Pod 1 14125731-086000-ABBBB- 150.00 01-06-06
809010-000000-00-000-9990-
10-5DD0001-0770-MCVAP-0000-
0000000000-00000-XX
yy-yy-yy 000-000-000
Poz 1 22221111-08B000-AAAAA- 100.00 01-06-06
809010-000000-00-000-9990-
10-5DD0001-0770-MCVAP-0000-
0000000000-00000-XX
Interesuje mnie efekt jak niżej :
xxx-xxx-xxx 000-000-000 Poz 1 11111111-08B000-AAAAA-809010-000000-00-000-9990-10-5DD0001-0770-MCVAP-0000-0000000000-00000-XX 100.00 01-06-06 (*jeden wiersz)
yy-yy-yy 000-000-000 Pod 1 14125731-086000-ABBBB-809010-000000-00-000-9990-10-5DD0001-0770-MCVAP-0000-0000000000-00000-XX 150.00 01-06-06 (*jeden wiersz)
yy-yy-yy 000-000-000 Poz 1 22221111-08B000-AAAAA-809010-000000-00-000-9990-10-5DD0001-0770-MCVAP-0000-0000000000-00000-XX 100.00 01-06-06 (*jeden wiersz) |
|
napisał: adam00000 postów: 15
umieszczony: 9 czerwca 2006 11:14
|
|
Miało być JESTES WIELKI ... |
|
napisał: adam00000 postów: 15
umieszczony: 9 czerwca 2006 11:13
|
|
Działa jest WIELKI ... |
|
napisał: Trebor postów: 1209
umieszczony: 8 czerwca 2006 20:37
|
|
Hej
Sub konto()
Dim a As Long
For a = 1 To Range("A65536").End(xlUp).Row
If Left(Cells(a, 1), 4) = "Poz " Or Left(Cells(a, 1), 4) = "Pod " Then
Cells(a, 2) = Left(Cells(a, 1), 28) & Cells(a + 1, 1) & Cells(a + 2, 1) & Cells(a + 3, 1) & Right(Cells(a, 1), 16)
a = a + 3
End If
Next a
End Sub
Tam gdzie jest warunek If Left......4 (czwórka oznacza ilość sprawdzanych znaków), "Poz " to tekst (cztery znaki) z którymi porównujesz wyszukany tekst. Wpisz w tych miejscach co uważasz za stosowne. Sprawdzana jest pierwsza kolumna, a wynik wpisywany do drugiej kolumny.
Pozdrawiam |
|
napisał: adam00000 postów: 15
umieszczony: 8 czerwca 2006 10:19
|
|
Dodam może do tego takie info, że konto to występuje w lini poz 1,2,... ewentualnie pod 1,2,.. a pozostała częśc konta jest umiejcowiona zawsze dodatkowo w trzech liniach poniżej. |
|
napisał: adam00000 postów: 15
umieszczony: 8 czerwca 2006 10:13
|
|
Kod VBA działa, ale oprócz tych danych w kolumnie tej znahjduje sie inny potrzebny śmietnik danych.
Bardziej zależy na VBA które w tej kolumnie szuka Tekst Poz 1,2, 3,4,... oraz Pod 1, 2, 3, 4 .... a następnie łączy ten tekst.
Wielkie dzięki za rozwiązanie. |
|
napisał: adam00000 postów: 15
umieszczony: 7 czerwca 2006 07:37
|
|
Oczywiście nie jest to konto bankowe lecz księgowe. |
|
napisał: Trebor postów: 1209
umieszczony: 6 czerwca 2006 19:43
|
|
Hej
Cytat:
(ilość znaków tego konta jest stała)
Coś z tą ilością znaków nie tak.
Czy takie rozwiązanie będzie wystarczające?
For a = 1 To 100 Step 4
Cells(a, 2) = Left(Cells(a, 1), 28) & Cells(a + 1, 1) & Cells(a + 2, 1) & Cells(a + 3, 1) & Right(Cells(a, 1), 16)
Next a
Zakładam tekst w pierwszej kolumnie od komórki A1 w 100 kolejnych wierszach.
Pozdrawiam |
|
napisał: adam00000 postów: 15
umieszczony: 6 czerwca 2006 12:26
|
|
Jak za pomocą VBA po zaimportowaniu tekstu do jeden kulumny podzielić tekst na kolumny oraz złączyć tekst konta bankowego (ilość znaków tego konta jest stała)w jednym wierszu ?:
Poz 4 11111111-08B000-AAAAA- 100.00 01-06-06
809010-000000-00-000-9990-
10-5DD0001-0770-MCVAP-0000-
0000000000-00000-XX
Poz 5 14125731-086000-ABBBB- 150.00 01-06-06
809010-000000-00-000-9990-
10-5DD0001-0770-MCVAP-0000-
0000000000-00000-XX
Pod 6 21500041-00000000-RQQKQ- 22.00 01-06-06
000000-000000-00-000-9990-
10-0000000-0770-MCVTX-0000-
0000000000-00000-00
Pod 7 51300041-082000-ALXNQ- 22.50 01-06-06
809010-000000-00-000-9990-
10-5DD0001-0770-MCVAP-0000-
0000000000-00000-XX
Interesuje mnie efekt jak niżej :
Poz 4 11111111-08B000-AAAAA-809010-000000-00-000-9990-10-5DD0001-0770-MCVAP-0000-0000000000-00000-XX 100.00 01-06-06 ( *jeden wiersz)
Poz 5 14125731-086000-ABBBB-809010-000000-00-000-9990-10-5DD0001-0770-MCVAP-0000-0000000000-00000-XX 150.00 01-06-06 ( *jeden wiersz ) |
|
wstecz 1 dalej wszystkich stron: 1
|
|