Centar za edukaciju-BiH


Odgovori na temu











Prosiri Boja Prosiri Velicina Spoiler WMP-Videos Neprimjereno
Podebljano Kurziv Podvuceno Slika Internet adresa (URL) Citat Van teme Neuredena lista Narucena lista Pretplata Nadredeni
Grinning Happy Cool Surprised Disappointed Laughing In love Angry No comment Embarrassing Shy Smiling Tongue Undecided Innocent Wink Sad Prosiri i skupi vise smajlica
Povecaj velicinu · Smanji velicinu Provjeri duzinu

Pretvori smajlice u postu
Pretvori & quot; vokable & quot; u postu


Upravljanje prilozima
Mozete priloziti 3 datoteke!



Posljednjih 15 postova u ovoj temi


Avko (06.08.2018 12:43):
Predmet: Re: kako koristiti vise kriterija u vba excel
namucio se.

neke celije nisu string
neke celije koje usporedujem su long ili single
ona prije funkcija pretrazuje cijelu tablu rangiranu sa rng dok ova usporeduje samo 1 kolonu i 2 kolonu
shvatio poantu , a to je suziti pretragu na dvije kolone koje trebam.
vrijeme pretrage smanjo sa 64,63 sec na 18,77 sec
na pocetku sam htio staviti u VBA index(match ) funkciju ali se na kraju svelo na obicnu for-next petlju

Function trazi(Col1_Fnd As Long, Col2_Fnd As Long, zadnjiRed As Long, kolona As Single) As Boolean
trazi = False'stavlja na default
Dim I As Integer

For I = 1 To zadnjiRed

If Col1_Fnd = Cells(I, kolona).Value And Col2_Fnd = Cells(I, kolona + 1).Value Then

trazi = True 'ako je nasao stavlja na true

Exit Function 'izlazi iz funkcije

End If
Next I
'ako nije nasao ostaje na default tj false
Exit Function

End Function

hvala

zxz (05.08.2018 10:39):
Predmet: Re: kako koristiti vise kriterija u vba excel
Ako je to tako onda bi procedura mogla izgledati ovako.
PreuzmiIzvorni kôd (Visual Basic):
  1. Function Trazi_Muju(Region As Range, Ime As String, Zanimanje As String)
  2. Dim I As Integer
  3. Dim Kolone(1) As Integer
  4. Dim Poredjenje(1) As String
  5.  
  6. Kolone(0) = Region.End(xlUp).Column
  7. Kolone(1) = Region.End(xlUp).Column + 1
  8.  
  9. If Region.EntireColumn.Columns.Count <> 2 Then GoTo Kraj
  10.  
  11. Poredjenje(0) = Ime & Zanimanje
  12. For I = 1 To Region.Rows.Count
  13. Poredjenje(1) = Region(I, Kolone(0)).Value & Region(I, Kolone(1)).Value
  14. If Poredjenje(0) = Poredjenje(1) Then
  15.     MsgBox "Red: " & I & "Ispunjava kriterij"
  16. End If
  17. Next I
  18. Exit Function
  19. Kraj:
  20. MsgBox "Pogrešna selekcija"
  21. End Function


Znaci da trazi u dvije kolone natpise koji se poklapaju sa ime i prezime

Avko (05.08.2018 06:24):
Predmet: Re: kako koristiti vise kriterija u vba excel
trebam muju ekonomistu

zxz (03.08.2018 14:58):
Predmet: Re: kako koristiti vise kriterija u vba excel
Cekaj sad te ne razumijem a ne razumijem ni tvoju proceduru.
Pitanje je bilo.
Citat:
htio bi za criterij [A] = 0001 i kriterij [B] = 02 da mi izbaci rezultat = empty, a recimo za
criterij [A] = 0002 i kriterij [B] = 02 da mi izbaci rezultat = KA

Moras pojasniti kako radi ja ne vidim da moze ovo uraditi ili zakaci primjer.
Mozda ja nisdam dobro razumio.

Avko (03.08.2018 12:07):
Predmet: Re: kako koristiti vise kriterija u vba excel
hvala na trudu

evo u meduvremnu pronasao nesto na internetu malo sam preuredio i neke stvari izbacio :

koristimo ovako :

PreuzmiIzvorni kôd (Text):
  1. sub proba()
  2.  
  3. if Two_Con_Vlookup(Range(Cells(odReda, odKolone), Cells(doReda, doKolone)), traziA, traziB) = False Then
  4.                     'ako nije nasao
  5.                     msgbox "greska"
  6. end if
  7. end sub
  8.  
  9. Function Two_Con_Vlookup(Table_Range As Range, Col1_Fnd, Col2_Fnd) As Boolean
  10.    
  11.     Dim rCheck As Range
  12.     Dim bFound As Boolean
  13.     Dim lLoop As Long
  14.  
  15.     On Error Resume Next
  16.  
  17.     Set rCheck = Table_Range.Columns(1).Cells(1, 1)
  18.     With WorksheetFunction
  19.         For lLoop = 1 To .CountIf(Table_Range.Columns(1), Col1_Fnd)
  20.            Set rCheck = Table_Range.Columns(1).Find(Col1_Fnd, rCheck, xlValues, xlWhole, xlNext, xlRows, False)
  21.            If UCase(rCheck(1, 2)) = UCase(Col2_Fnd) Then
  22.                 bFound = True
  23.                 Exit For
  24.             End If
  25.         Next lLoop
  26.     End With
  27.  
  28.     If bFound = True Then
  29.         Two_Con_Vlookup = True
  30.     Else
  31.         Two_Con_Vlookup = False
  32.     End If
  33.  
  34. End Function

zxz (02.08.2018 23:03):
Predmet: Re: kako koristiti vise kriterija u vba excel
PreuzmiIzvorni kôd (Visual Basic):
  1. Function Uporedi(Polje1 As Range, Polje2 As Range)
  2.  
  3. If Polje1 = "0001" Then
  4. Select Case Polje2
  5.  
  6. Case "01"
  7. Uporedi = "ZG"
  8. Case "02"
  9. Uporedi = "EMPTY"
  10. Case "03"
  11. Uporedi = "KA"
  12. End Select
  13.  
  14. ElseIf Polje1 = "0002" Then
  15. Select Case Polje2
  16.  
  17. Case "01"
  18. Uporedi = "ZG"
  19. Case "02"
  20. Uporedi = "KA"
  21. Case "03"
  22. Uporedi = "EMPTY"
  23. End Select
  24.  
  25. End If
  26.  
  27. End Function

Avko (02.08.2018 12:54):
Predmet: kako koristiti vise kriterija u vba excel
nevjerojatno, izgubo 10 dana a nisam rijesio problem

A BC
1000101ZG
2000102EMPTY
3000103KA
4000201ZG
5000202KA
6000203EMPTY

htio bi za criterij [A] = 0001 i kriterij [B] = 02 da mi izbaci rezultat = empty, a recimo za
criterij [A] = 0002 i kriterij [B] = 02 da mi izbaci rezultat = KA

probao sljedece:

PreuzmiIzvorni kôd (Text):
  1. broj_1=0001
  2. broj_2=02
  3.  
  4. With Application.WorksheetFunction
  5.  rezultat = .Index(Range(Cells(1, 1), Cells(6, 3)), _
  6.                 .Match(broj_1, Range(Cells(1, 1), Cells(6, 1)), 0) + _
  7.                 .Match(broj_2, Range(Cells(1, 2), Cells(6, 2)), 0) - 1)
  8. End With

PreuzmiIzvorni kôd (Text):
  1. broj_1=0001
  2. broj_2=02
  3.  
  4. With Application.WorksheetFunction
  5.  rezultat= .VLookup( broj_1 & broj_2, Range(Cells(1, 1), Cells(6, 3)), 3, 0)
  6. End With


jeli zna netko?

Sva vremena su GMT +01:00. Trenutno vrijeme: 8: 33 pm.