Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[VBA] Pronalaženje vrednosti unutar opsega

[es] :: Office :: Excel :: [VBA] Pronalaženje vrednosti unutar opsega

[ Pregleda: 2204 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

neptuncokg
Predrag M
racunovodja
Kragujevac

Član broj: 230353
Poruke: 326
212.200.65.*



+9 Profil

icon [VBA] Pronalaženje vrednosti unutar opsega04.05.2010. u 18:18 - pre 169 meseci
Svojevremeno sam imao problem sa pretragom opsega, koji sam rešio uz JPecinu pomoć. Evo te procedure:

Dim rb As Range
Dim rngTest As Range
Set rngTest = Sheets("KPR").Range("F11:F65536")
For Each rb In rngTest
If rb.Value = Sheets("KALK").Range("I3").Value Then ' Nalazi redni broj u zadatom opsegu

'Salje izmenjene podatke u "KPR"
Sheets("KALK").Range("M3").Copy
rngTest.Cells(rb, -4).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
Next rb

Problem sa ovim resenjem je taj, što pronalazi redni broj u opsegu (npr. za ćeliju "F15", rb = 5), a meni u stvari treba NE REDNI BROJ ćelije, već apsolutni broj, nevezano od toga koji je po redu odozgo na dole. Konkretno, ako u Sheets("KALK").Range("I13").Value = npr. 20, hoću da pronađem u opsegu upravo tu ćeliju, sa brojem 20, a ne 20-tu ćeliju po redu. Mučim se podugo sa ovim. Probao sam da preradim proceduru, ali bezuspešno. Pokušao sam da promenim deklaraciju AS Range, ali ni jednu ne prima. Na kraju sam uveo i filtriranje, ali ni tu ne uspevam. Evo i makroa za filter:

Dim brK As Integer
brK = Sheets("KALK").Range("I3").Value
Sheets("KPR").Select
Range("F11:F65536").Select
Selection.AutoFilter Field:=1, Criteria1:=brK, Operator:=xlAnd

Sheets("KALK").Range("M3").Copy ' 1. kopiranje
ActiveCell.Offset(0, -5).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets("KALK").Range("J5").Copy ' 2. kopiranje
ActiveCell.Offset(0, -4).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

I to - NE RADI. Zaista ne znam gde grešim.

Dokumenat je preveliki da bih ga okačio, ali se nadam da sam objasnio suštinu problema. Zahvaljujem se unapred na svakoj pomoći. Pozdrav


 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2268
*.wimax.verat.net.

Sajt: www.gowi.rs


+109 Profil

icon Re: [VBA] Pronalaženje vrednosti unutar opsega04.05.2010. u 21:03 - pre 169 meseci
Koliko sam razumeo iz dugačke priče treba ti nadješ neku vrednost u opsegu ćelija. Za to se koristi metoda find, koju iz ranijih poruka vidim da si već koristio http://www.elitesecurity.org/t386414-0#2481098, tako da sam u nedoumici o čemu se radi.

Ako nije u pitanju find napavi neki skraćeni primer pa objasni šta ti treba.

Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

neptuncokg
Predrag M
racunovodja
Kragujevac

Član broj: 230353
Poruke: 326
212.200.65.*



+9 Profil

icon Re: [VBA] Pronalaženje vrednosti unutar opsega04.05.2010. u 21:43 - pre 169 meseci
Jesmo ovo imali kao resenje, (primer iz helpa), ali nisam ga koristio, jer si mi ti pojednostavio pricu sa onim primerom iz postavke teme. Probao sam i sa Find metodom, ali očigledno da nešto sistemski grešim. Evo makroa:

Dim brK As Integer
brK = Sheets("KALK").Range("I3").Value ' Ovo je zadata vrednost koja se trazi u Sheets("KPR") u rasponu F11:F65536

Sheets("KPR").Range("F11:F65536").Find(What:=brK).Select ' Pretraga u Shets("KPR")

Sheets("KALK").Range("F313").Copy ' Kad je nadjena, kopira se neko polje "F313" u celiju desno od "nadjene"
Selection.Offset(0, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Sheets("KALK").Range("M3").Copy ' Jos jedno kopiranje u celiju levo od "nadjene"
Selection.Offset(0, -1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False

I kao sto rekoh, ni ovo kod mene ne radi.
Okacicu jedan primer, koji sam "vezbao", sa potpuno istom procedurom, i koji - RADI. Hvala na trudu. Pozdrav
Prikačeni fajlovi
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2268
*.wimax.verat.net.

Sajt: www.gowi.rs


+109 Profil

icon Re: [VBA] Pronalaženje vrednosti unutar opsega05.05.2010. u 20:40 - pre 169 meseci
Ima nekoliko stvari koje bih ja uradio drugačije - npr. zašto copy/paste values umesto da jednostavno dodeliš vrednost ćeliji?- ali to nije razlog da što kod ne funkcioniše. Ovako na prvi pogled jedino mi je sumnjivo da li je list KPR akivan pre nego što radiš selekciju.

Dakle, ako baš hoćeš Select/Copy paste postavi

Code:
Sheets("KPR").Activate

pre komande Select .

Ono što je najčešći uzrok u situacijama kad ista procedura negde radi a negde ne su sami podaci.
Dakle, zaustavi izvršavanje nakon find i proveri u Immediate window šta je selektovano - da li je nešto uopšte nađeno? Možda neki problemi sa formatom? Dalje idi red po red (F8) i proveravaj šta se dešava da bi razumeo u čemu je greška.

Na kraju, evo kako bi izgledala tvoja procedura bez Select/Copy/PasteValues

Code:
Sub Test1()

Dim brK As Integer
Dim cl As Range

brK = Sheets("KALK").Range("I3").Value ' Ovo je zadata vrednost koja se trazi u Sheets("KPR") u rasponu F11:F65536
Set cl = Sheets("KPR").Range("F11:F65536").Find(What:=brK) ' Pretraga u Shets("KPR")

If Not cl Is Nothing Then
 cl.Offset(0, 1).Value = Sheets("KALK").Range("F313").Value ' Kad je nadjena, kopira se neko polje "F313" u celiju desno od "nadjene"
 cl.Offset(0, -1).Value = Sheets("KALK").Range("M3").Value ' Jos jedno kopiranje u celiju levo od "nadjene"
End If

End Sub


Nije to loše Rembrante, samo što ne bi dodao još malo boje?
Prikačeni fajlovi
 
Odgovor na temu

neptuncokg
Predrag M
racunovodja
Kragujevac

Član broj: 230353
Poruke: 326
*.dynamic.isp.telekom.rs.



+9 Profil

icon Re: [VBA] Pronalaženje vrednosti unutar opsega06.05.2010. u 03:57 - pre 169 meseci
Sa tvojim primerom radi kako treba. A zasto copy/paste... Pa verovatno linija manjeg otpora. Od sad vise nece. HVALA na kvadrat. Pozdrav
 
Odgovor na temu

[es] :: Office :: Excel :: [VBA] Pronalaženje vrednosti unutar opsega

[ Pregleda: 2204 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.