[ anakin14 @ 24.01.2008. 19:38 ] @
u jednoj formi imam mogucnost da ako ponovo unesem isti proizvod da se preko prethodnog unosa unese novi. e sad u listboxu on duplira. kako da napravim da prepisuje i u listboxu?
evo te forme
[ Jpeca @ 25.01.2008. 09:43 ] @
U kodu nemaš ni komentara, a nisi korisitio ni uvlačenje tako da mi je teško za praćenje i nisam razumeo kako si zamislio da radi.
Primer realizacija ComboBox-a sa mogućnošću dodavanja novih stavki u "bazu" kako bih ja realizovao imaš u prilogu.

Osnovna ideja ovog rešenja:
a/ Imamo imenovani opseg ListaCombo
b/ RowSorce svojstvo za odgovarajući ComboBox (cmbTest) na formi ukazuje na ovaj imenovani opseg
c/ Kad se klikne na OK i time potvrdi izbor proverava se da li je tekuća vrednost već postoji na listi. Ukoliko ne onda se dodaje na kraj postojećeg opsega.
Code:

Private Sub cmdOK_Click()
  ' Završetak izbora
  If IsError(Application.Match(Me.cmbTest.Text, Me.cmbTest.List, 0)) Then   'Vrednost nije na listi
      'Upiši novu stavku
      Range("ListaCombo").End(xlDown).Offset(1, 0).Value = Me.cmbTest.Text
      ' Dodaj novu stavku u imenovan opseg
      Range("ListaCombo").Resize(Range("ListaCombo").Rows.Count + 1, Range("ListaCombo").Columns.Count).Name = "ListaCombo"
   End If
End Sub

[ anakin14 @ 25.01.2008. 11:40 ] @
Hvala ti sto si pogledao moj primer.
Evo kacim nov gde sam detaljno komentarisao i gde ce ti biti jasno sta je moj problem sa listbox-ovima (mrzim ih!!!


Code:
If IsError(Application.Match(Me.cmbTest.Text, Me.cmbTest.List, 0)) Then   'Vrednost nije na listi
      'Upiši novu stavku

Mozes li mi molim te detaljnje objasniti ovu liniju

sta radi application.match
sta radi me.cmbtest ?
sta radi cela linija?

Puno hvala!
[ Jpeca @ 25.01.2008. 12:53 ] @
Pogledaću kad stignem.
Me.cmbTest je referenca na ComboBox na formi. Trudim se da objektima na formi dajem neka "smislena" imena umesto ComboBox1, ComboBox2. Me je referenca na formu u kojoj je kod.

Me.CmbTest.List je dakle lista stavki za kombo box
a
Me.CmbTest.Text - uneta ili izabrana vrednost za isti kombo box.

Ukoliko si prilikom instalacije instalirao Help za VBA, onda ćeš lako da dobiješ odgovor šta koja funkcija radi. Selektuješ tu reč pa F1. Ja ne znam kako bi pisao kod bez VBA Helpa?

Dakle Match upoređuje datu vrednost sa listom vrednosti, gde je 0 parametar kako se vrši poređenje t.j. "exactly equal"
Ukoliko nađe vrednost Match funkcija daje poziciju na kojoj je nađena vrednost u listi, a ukoliko nije našao daje grešku N/A. (Sad se nešto prisećam, pa zar ti nisi u nekom od ranijih postova koristio ovu funkciju u okviru radnog lista?!) Application.WorksheetFunction objekat ti omogućuje korišćenje funkcija radnog lista u kodu.
[ anakin14 @ 25.01.2008. 13:07 ] @
To je nesto sto mi je mnogo trebalo a recimo nisam zno - kako da koritim funkcije radnog lista u kodu, zato i nisam znao sta znaci application.match
hvala
[ anakin14 @ 03.02.2008. 18:55 ] @
Moze il neko od znalaca da pogleda poslednji okaceni primer u komme sam komentarom napisao gde je problem.
Puno Hvala!!!