< návrat zpět

MS Excel


Téma: Vyhledej rss

Zaslal/a 23.4.2024 11:47

Zdravím.
Makro mi vyhledá označenou hodnotu z listu2 v listu1.
Ale jak to přesně funguje, on to hledá od spodu, nebo jak?
Když se vyskytuje v listu1 to jméno vícekrát tak makro skočí na to jméno co má ve sloupci A - PASS. Proč? Můžete mi to prosím vysvětlit?
Jde nějak ošetřit, aby to vyhledalo jméno , co má ve sl.A - ICA ?
Děkuji

Příloha: zip56468_hledej-s-vice-parametr.zip (20kB, staženo 3x)
Zaslat odpověď >

#056469
avatar
...chci prostě skočit na jméno se dvěma podmínkami, vybranéJmeno+ hodnota ve slA=ICAcitovat
#056470
elninoslov
Môžete použiť aj Evaluate
Sub tlačítko4_Kliknutí()
Dim Jmeno As String, R As Long
R = Selection.Row
If R > 1 Then
Jmeno = Cells(R, 1).Value2
If LenB(Jmeno) > 0 Then
R = Evaluate("=IFERROR(MATCH(1,('List1'!B1:B10000=""" & Jmeno & """)*('List1'!A1:A10000=""ICA""),0),0)")
If R = 0 Then MsgBox "Nenalezeno", vbExclamation: Exit Sub
Application.GoTo List1.Rows(R), True
End If
End If
End Sub

alebo cyklus
Sub tlačítko4_Kliknutí()
Dim L(), Jmeno As String, R As Long, i As Long
R = Selection.Row
If R > 1 Then
Jmeno = Cells(R, 1).Value2
If LenB(Jmeno) > 0 Then
L = List1.UsedRange.Columns(1).Resize(, 2).Value2
R = 0
For i = 1 To UBound(L, 1)
If L(i, 1) = "ICA" And L(i, 2) = Jmeno Then R = i: Exit For
Next i
If R = 0 Then MsgBox "Nenalezeno", vbExclamation: Exit Sub
Application.GoTo List1.Rows(R), True
End If
End If
End Sub
citovat
#056474
avatar
Zdravím.Děkuju
Můžete to prosím vysvětlit:

If LenB(Jmeno) > 0 Then
počítám počet znaku jmena, když je větší jak 0,jmeno má nějakou hodnotu

??? tady něco násobím??
R = Evaluate("=IFERROR(MATCH(1,('List1'!B1:B10000=""" & Jmeno & """)*('List1'!A1:A10000=""ICA""),0),0)")

add2 ??? prosím okomentovat princip
L = List1.UsedRange.Columns(1).Resize(, 2).Value2

R = 0

For i = 1 To UBound(L, 1)

If L(i, 1) = "ICA" And L(i, 2) = Jmeno Then R = i: Exit Forcitovat
#056478
avatar
když to aplikuju na jiné názvy listu nejde mi to.

nahrazuju název "List1" na "Test ICA"
Application.GoTo List1.Rows(R)
Application.GoTo Test ICA.Rows(R) a makro hodí eror.
název listu nesmí mít dvě slova bez _ ? nebo se to musí zapsat jako kodový název listu?citovat
#056479
elninoslov
Lepšie to popísať neviem

Áno ja som použil CodeName listu, ak chcete použiť názov z uška listu musíte použiť Worksheets("nejaký názov"). CodeName má výhodu práve v tom, že bude všetko fungovať nech si list pomenujete akokoľvek. A je o zlomok rýchlejší, lebo odkazuje hneď na objekt, naopak Worksheets najskôr nájde zhodu v kolekcii. Cez Worksheets sa dá zase pekne testovať existencia listu, alebo sa dá použiť pri výmene listov za nové aktuálne dáta a pod, vtedy zase CodeName zlyhá, lebo bude mať iný názov. Všetko má + a -
Příloha: zip56479_hledej-s-vice-parametr.zip (25kB, staženo 3x)
citovat
#056480
avatar
..UF. Vyčerpávájící. Hluboce před Vámi smekám.
a Samozřejmě DĚKUJI.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse