[ jaskojsako @ 17.06.2023. 16:10 ] @
Pozdrav
jedno pitanje,da li se moze napraviti ,da se napravi jedna radna sveska za artikle,druga radna sveska za klijente a da se sa trece radne sveske povlace klijenti i artikli .
Ja trenutno povlacim artikle preko userforme na kojoj imam combox na osnovu odabira naziva popunjavam texboxove na userformi, (artikli su u istoj radnoj svesci) da li se moze povuci sa druge radne sveske,kao sto sad povlaci sa iste radne sveske.
Trebalo bi mi,jer sam planirao da koristim artikle i klijente zasebno da bi mogao povuci i iz drugih radni sveski po potrebi.
Nadam se da cete razumjeti pitanje.
Ako ko ima primjer bio bi zahvalan.

[ ib.kroki @ 17.06.2023. 17:14 ] @
Ako sam te dobro razumeo možeš sa Vlookup povlačiti informacije iz druge radne sveske.

Primer, ako u jednom fajlu želiš povući šifre iz fajla Sifre.xlsx koji se nalazi direktno na disku C, iskoristi 'C:\[Sifre.xlsx]Sheet1'!$A$1:$B$3 za pozivanje tabele odakle čitaš podatke.


Code:
=VLOOKUP(A1;'C:\[Sifre.xlsx]Sheet1'!$A$1:$B$3;2;FALSE)
[ jaskojsako @ 17.06.2023. 20:15 ] @
Hvala na odgovoru,ali mi ne odgovara preko Vlookup funkcije.
Ovako ide meni kod trenutno kad povlacim iz lista unutar radne sveske.

Code:


Private Sub ComboBox1_Change()
If ComboBox1.ListIndex >= 0 Then
TextBox1.Text = _
Sheets("dijelovi").Cells(ComboBox1.ListIndex + 2, 1).Value

TextBox2.Text = _
Sheets("dijelovi").Cells(ComboBox1.ListIndex + 2, 2).Value
..........................................................

Private Sub UserForm_Initialize()
ComboBox1.SetFocus
ComboBox1.RowSource =Sheets("dijelovi").Name & "!B2:B5000"
End Sub

Moze li se ovdje preurediti kod da dohvati sa drugog radnog lista.
[ Jpeca @ 18.06.2023. 10:26 ] @
Probaj da pozoveš tu drugu radnu svesku prilikom inicijalizacije UserForm. Npr

Code:
Private Sub UserForm_Initialize()
  ' Populate combo for another workbook
  ComboBox1.List = Workbooks("Test.xlsx").Worksheets("dijelovi").Range("B2:B5000").Value
End Sub



Pošto radna sveska treba da je otvorena, ako ti ne treba na drugom mestu možeš da je otvoriš (skrivenu za korisnika) u proceduri inicijalizacije forme

Code:
Private Sub UserForm_Initialize()
    ' Load list for combo
    '
    ' Otvaranje radne sveske sa podacima za combo u pozadini kao read only
     Application.ScreenUpdating = False
     Set wbSource = Workbooks.Open("C:\Folder\Test.xlsx", _
                     False, True)
     ' Vredosti za combo
     ListItems = wbSource.Worksheets("dijelovi").Range("B2:B5000").Value
     ' Zatvaranje radne sveske bez cuvanja
     wbSource.Close False
     Set wbSource = Nothing
     Application.ScreenUpdating = True
     With Me.ComboBox1
        .Clear ' remove existing entries from the listbox
        .List = ListItems
     End With
End Sub

[ jaskojsako @ 18.06.2023. 11:59 ] @
Hvala na odgovoru Jpeca
ovaj dio mi odgovara (Private Sub UserForm_Initialize()),kad sam ubacio nove probne artikle ucitao je i njih,i ovo radi kako treba,
medjutim kako izmjeniti kod da se textboxovi popune odabirom combox .

Code:


If ComboBox1.ListIndex >= 0 Then
TextBox1.Text = _
Sheets("dijelovi").Cells(ComboBox1.ListIndex + 2, 1).Value

TextBox2.Text = _
Sheets("dijelovi").Cells(ComboBox1.ListIndex + 2, 2).Value

Code:




hvala
[ Jpeca @ 18.06.2023. 22:05 ] @
Teško mi je da ispratim tačno šta treba da se dešava bez primera.

Probaj da proceduri inicijalizacije popuniš globanu promenljivu (varijant, definisanu u glavnom modulu kao public) iz kolone 1 i 2 lista dijelovi, pa da se onda refenciraš na te nizove u događaju ComboBox1_Change() za popunu text box, umesto na list iz druge radne sveske. Ako je drugi niz iz kolone 2 kao i combobox (?) možeš koristiti vrednosti iz comboboxa

Napravio sam neki primer, pa pogledaj prilog