< návrat zpět

MS Excel


Téma: Hledat slova - slovník na listu rss

Zaslal/a 12.6.2023 7:08

AlfanDobrý den, chtěl požádat o pomoc s makrem, makry pro hledání na listu "dictionary", kde jsou data ve formátu Tabulky s názvem "DataDictionary".
Chtěl bych, aby na listu "find" se do buňky "A2" zadal hledaný výraz, alespoň 2 písmena.
A pak by se podle kliknutí na příslušné tlačítko hledalo na listu "dictionary".
Pokud bych klikl na tlačítko "CZ --> EN" tak by se do buňky "A4" na listu "find" napsalo záhlaví z buňky "A1" z listu "dictionary" a do buňky "B4" záhlaví z buňky "B1" na listu "dictionary.
A pokud by se našla shoda se zadaným výrazem v buňce "A2", vypsaly by se všechny "nálezy" od řádku 5 na listu "find".
Písmo ve sloupci "A" na listu "find" by bylo tučně.
A analogicky by to bylo při použití tlačítka "EN --> CZ", akorát do buňky "A4" na listu "find" by se napsalo záhlaví z buňky "B1" z listu "dictionary"
Děkuji.
Radek

Příloha: zip55037_cz-en-dictionary-find.zip (20kB, staženo 7x)
Zaslat odpověď >

Strana:  1 2   další »
#055042
elninoslov
A potrebujete na to makro?
Příloha: xlsx55042_cz-en-dictionary-find.xlsx (32kB, staženo 12x)
citovat
#055043
elninoslov
makro
Příloha: zip55043_cz-en-dictionary-find.zip (29kB, staženo 10x)
citovat
#055044
Alfan
@elninoslov
klaním se mistrovi 1
Ta verze s makrem...SUPER, díky moc.
Pokud mám zase přispět na podporu fóra, rád to udělám ;-)citovat
#055045
elninoslov
Robte ako uznáte za vhodné. Mne je to šumák. Ja s fórom nič nemám, len ho mám fakt rád. A ja nič nechcem. Pekný deň. 5citovat
#055047
Alfan
Dobrý, tedy.
Poslal jsem příspěvek ;-)citovat
#055048
Alfan
@elninoslov
Mohu se, prosím, zeptat, jako lama...?
Kde v tom kódu je ta instance, která určí, na které tlačítko jsem kliknul?
Děkuji. Radek
Sub FindDict()
Dim Typ As Byte, Count As Long, i As Long
Dim D(), R(), H()
Dim FindVal As String

Typ = Split(Application.Caller, " ")(1)

With Worksheets("dictionary").ListObjects("DataDictionary")
H = .HeaderRowRange.Value
D = .DataBodyRange.Value
ReDim R(1 To UBound(D, 1), 1 To 2)
End With

Application.ScreenUpdating = False

With Worksheets("find")
.Range("A4:B4").Value = Array(H(1, Typ), H(1, 2 - Typ + 1))

FindVal = .Range("A2").Value2
If FindVal = "" Then MsgBox "Zadejte hledaný výraz", vbExclamation: GoTo FINAL

For i = 1 To UBound(D, 1)
If InStr(1, D(i, Typ), FindVal, vbTextCompare) > 0 Then
Count = Count + 1
R(Count, 1) = D(i, Typ)
R(Count, 2) = D(i, 2 - Typ + 1)
End If
Next i

i = .Cells(Rows.Count, "A").End(xlUp).Row - 4

With .Range("A5:B5")
If Count = 0 Then
If i > 0 Then .Resize(i).ClearContents
Else
If i > Count Then .Offset(Count).Resize(i - Count).ClearContents
.Resize(Count).Value2 = R
.Resize(Count, 1).Font.Bold = True
End If
End With
End With

FINAL:
Application.ScreenUpdating = True
End Sub
citovat
#055049
avatar
Application.Callercitovat
#055050
Alfan
Děkuji.
Ale jak pozná, které tlačítko to bylo?
Já nikde nenašel jejich označení nebo číslo?citovat
#055051
avatar
Vrací název tj. "Tlačítko 1" nebo "Tlačítko 2"
SPLIT text rozdělí
do Typ se přiřadí číslo tlačítkacitovat
#055052
Alfan
Aha.
Ale já pořád nevidím nebo nevím, kde je ten název "Tlačítko 1" nebo "Tlačítko 2" uvedený?
Já to právě hledal, abych pochopil logiku.
Omlouvám se za lama dotazy, ale fakt to nevím.
Radekcitovat

Strana:  1 2   další »

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje