[ neptuncokg @ 03.12.2009. 01:51 ] @
Iz TextBoxa na formi podatak se upisuje u prvu praznu celiju Sheeta1,podrucja "D5:D500". Posto je rec o podacima koji ne smeju da se ponavljaju, tj, ne sme da postoje 2 ista broja, potrebno je pri samom unosu u Textbox, otkriti duplikat i porukom obavestiti korisnika. Pokusao sam u TextBox_Exit.. da stavim petlju:
Private Sub TextBox1_Exit..
Sheets("1").Select
Range("D5:D500").Select
Dim rb As Range
For Each rb In Selection
If rb.value = TextBox1.value Then MsgBox "Duplikat !"
Next rb
End Sub
Ali nema efekta. Pokusao sam isti kod da umetnem na kraju CommandButton1._Click, pa da se "ispreci" pri unosu svih podataka, ali nista se ne desava, tj. duplikat se unese. Resenje za ovo je verovatno jednostavno, ali ja ga trenutno nemam. Pozdrav i hvala unapred.
[ Jpeca @ 03.12.2009. 22:02 ] @
U petlji porediš vrednost textbox-a (string tip) i vrednost iz ćelije (numerička vrednost koliko sam razumeo iz tvog primera). Zbog toga uslov nije nikad zadovoljen. 400 <> "400".
Možeš npr. funkcijom Val da konvertuješ Textbox.Value u numerik.

Ovo je jednosatavan slučaj, ali je u komplikovanijim procedurama ovakve greške ponekad nije lako naći. Zato je pogodno koristiti debuger.
1/ Jednostavno u VBE označi pogodnu liniju u kodu (npr. početak petlje) kao breakpoint (crvena tačka).
2/ Zatim startuj program. Program će se zaustaviti na označenoj liniji
3/ Izvrši instrukciju jednu po jednu (F8) i gledaj sadržaj promenljivih
[ neptuncokg @ 03.12.2009. 22:48 ] @
Vec sam bio izgubio nadu u "pomoc prijatelja", pa sam petljao i dalje sam, i naravno nista nisam uradio. Ovaj makro je kod mene "OKINUO IZ PRVE", tj. to je ono sto mi je trebalo,a nisam umeo sam. H V A L A !
P.S. Mislim da ova ideja moze naci siroku primenu kod svih unosa iz forme VBA u excel, u smislu ogranicenja duplih unosa po raznim osnovama (npr. zabrana duplih brojeva faktura, PIB-ova kupaca, sifara kupaca-dobavljaca i sl.), pogotovu tamo gde nema numeracije po rastucem redu. Hvala jos jednom i pozdrav.