vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest sobota, 18 maja 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Prośba o pomoc. VBA .......... do excell


otwartyotwarty rozpoczął: adam00000 postów: 16



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


Sortuj posty: z