Přeskočit navigaci | Přeskočit na novinky

Jste zde: Úvodní stránka » excel » vba-triky » vba-hledej-pozadavanou-hodnotu

Najdi pomoci VBA požadovanou hodnotu VBA

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

jak hledat pomocí VBA a při (ne)nalezení provést akci

Hledej

Potřebuji najít v zadaném sloupci hledanou hodnotu (případně jení část). Pokud je nalezeno ať se provede požadovaná akce. V našem případě se zobrazí hláška.

VBA kód

Sub NajdiPozadavanouHodnotu() ' ********************************************* ' * office.lasakovi.com ' ********************************************* ' Makro co hledá ve sloupci A ' omezeno na prvních 5 buněk HledanaHodnota = InputBox("Zadej hledanou hodnotu:") For I = 1 To 5 rozsah = "A" & I With Range(rozsah) Set FoundCell = .Cells.Find(what:=HledanaHodnota, _ after:=.Cells(.Cells.Count), _ LookIn:=xlFormulas, _ Lookat:=xlPart, _ searchorder:=xlByRows, _ searchdirection:=xlNext, _ MatchCase:=False) End With If FoundCell Is Nothing Then MsgBox "Nenalezeno :(" ' tady proveď požadavanou akci nebo ' tady to smaž je jen pro ověření Else MsgBox "Nalezeno :) " & FoundCell.Address ' tady proveď požadavanou akci nebo ' tady to smaž je jen pro ověření End If Next I End Sub

Závěr

Tak a víme, která buňka obsahuje hledaný výraz.

Článek byl aktualizován: 19.09.2020 11:07

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


Komentáře


Polda

Přidáno: 05.11.11 15:18

Pro hledání řetězce nebo části řetězce používám funkci InStr. Funkce prohledá text a porovná jej se zadáním a vrátí pozici, kde se řetězec nachází. Pokud text nenalezne, vrátí nulu: Sub HledejHodnotu() r = ActiveSheet.UsedRange.Rows.Count HledanaHodnota = InputBox("Zadej hledanou hodnotu:") PocetNalezeni = 0 For i = 1 To r If InStr(Cells(i, 6), HledanaHodnota) <> 0 Then 'něco udělej PocetNalezeni = PocetNalezeni + 1 End If Next i If PocetNalezeni = 0 Then MsgBox "Nebylo nalezeno nic, co by obsahovalo " & HledanaHodnota If PocetNalezeni <> 0 Then MsgBox "Bylo nalezeno " & PocetNalezeni & " výskytů " & HledanaHodnota End Sub Takto zapsaná funkce je Case Sensitive, pokud ji napíšeme takto: ... If InStr(1, Cells(i, 6), HledanaHodnota, 1) <> 0 Then 'něco udělej PocetNalezeni = PocetNalezeni + 1 End If ... pak velká písmena ignoruje...

skaj

Přidáno: 26.03.12 08:52

Dobrý den, potřeboval bych vědět, zda se dá v Excelu přenést do (jakékoli) buňky (systémový)údaj o velikosti souboru (sešitu)tak, aby tento údaj mohl být dále využíván.

skaj

Přidáno: 30.03.12 19:56

Odpovím si sám :-) - dá. Např. takto: velikostsouboru = "C:\PROGRAMY\ZKOUŠKA.xlsm" Range("l3").Value = FileLen(velikostsouboru)

mirah

Přidáno: 19.06.12 14:20

Dobrý den. Potřeboval bych poradit. Mám excelovský soubor 2010 čítající něco přes 10 000 stránek. Na stránce je vždy jedna tabulka s daty s tím, že některé další stránky mezi těmi s tabulkami jsou prázdné. Potřeboval bych vytisknout jen ty stránky s tabulkami a ty prázdné netisknout. Mohl by mi někdo poradit, jak na to? Předem děkuji.

Pavel Lasák

Přidáno: 21.06.12 12:12

To Mirah: Využít VBA.

Jan Bartoš

Přidáno: 19.07.12 22:29

Dobrý den, potřebuji vyhledat v tabulce zadanou hodnotu a následně celý řádek tabulky, případně více řádků obsahující danou hodnotu, překopírovat jinam byť je hodnota na jakékoliv pozici v řádku. Díky

Pavel Lasák

Přidáno: 20.07.12 11:27

To Jan Bartoš: Nutno použít VBA kód (makro).

Mika Patanen

Přidáno: 25.04.13 09:48

Dobrý den, chtěl bych se zeptat zda je mozno pres VBA naprogramovat nejaky kod, ktery by nasel v XML souboru pozadovane udaje. Napr. v sloupci A by byli jmena od A2 az A10. A ve sloupci B by se vypsalo zda je jmeno v souboru nebo neni. Dik moc za jakoukoliv radu

Pavel Lasák

Přidáno: 25.04.13 16:07

To Mika Patenen: Načíst XML a pak jen hledat viz kód výše. Info např zde http://msdn.microsoft.com/en-us/library/office/dd819387%28v=office.12%29.aspx#odc_xl2007__EditingExcelOOXMLDatawithVBA_FindingDatainaWorksheet

Veronika

Přidáno: 07.07.14 16:37

Dobrý den, při skrývání sloupců/řádků funkce Find nenalézá? Také mi Find najde datum pouze když hledaná hodnota má typ "String". Jinak ji z nějakého důvodu ignoruje. Lze tato omezení nějak obejít? Děkuji za odpověď, Veronika

Zdenča176

Přidáno: 14.12.14 18:13

Dobrý den, prosím, nemohl by mi někdo pomoc dát dohromady ve VBA předpis pro vyhledávání - něco jako je funkce vlookup, ale když chci najít více hodnot a vypsat je pod sebe do sloupečku? příklad: budu mit v sloupci A seznam zaku a v sloupci B z jake jsou tridy formou 1.A, 1.B,..... S tim, ze z jedne tridy muze byt vice zaku. A ja kdyz zadam do nejake bunky na dalsim liste 1.A tak potrebuji, aby mi to vyhodilo do bunek pod sebe vsechny ty zaky z te tridy. Děkuji, Z.

Jojo

Přidáno: 17.12.14 09:29

To Zdenča176: Má to byť naozaj cez VBA? Ja by som to asi riešil kontingenčnou tabulkou...

Jojo

Přidáno: 19.12.14 12:29

To Zdenča176: ...alebo by stačilo použiť filter

Kalixt

Přidáno: 07.05.15 09:54

Potreboval by som pomocou tvojho kodu najst naprikliad čast slova v jednej bunke a potom vypisat to slovo plus 4 znaky ktore po nom nasleduju. napriklad tabulka sdsd_dr253_gg suyd_dr263_gf sdsd_dr86_gg suyd_dr263_dg sdsd_dr791_gg suyd_dr284_gfg hladam "dr" a ten mi vypiše vedla do stlpca s niekolkimi znakmmi naviac "dr253_"

Ondra

Přidáno: 26.05.15 08:28

Dobrý den, mám ve sloupci písmena z rozsahu (a-z;A-Z). V každém řádku je jen jedno. Potřebuji ve VBA najít jaké je použito jako poslední, a do předem definované buňky zapsat následující znak (písmeno).

Luke

Přidáno: 15.12.15 15:08

Zdravím, mám na Listu 1 pár údajů jako číslo zakázky, výrobek číslo atp. ve sloupci J mám seznam 5 textových hodnot přičemž jedna je Vyřešeno-Oprávněná Reklamace, pokud člověk zatrhne tuto hodnotu chtěl bych aby se celý řádek (číslo zakázky, výrobek číslo...atp) zapsal na další list věděl někdo jak na to ? (v konečné fázi úplně nejlepší by bylo aby se řádek po zvolení v seznamu hodnoty vyřešeno propsal na další list a nešel upravovat, až třeba po zvolení jiné hodnoty ze seznamu by zase šel upravit (aby např když člověk zapomene nějákou hodnotu z listu zapsat třeba číslo výrobku, tak aby musel pro opravu odkliknout jinný stav než vyřešeno kvůli integritě a kompletu dat. můj mail: Depo8@seznam.cz

Lukáš V

Přidáno: 15.01.16 18:52

Dobrý den, potřeboval bych poradit s úpravou VBA kódu pro hledání ve sloupci A, který jste uvedl. Chtěl bych, aby makro vložilo hodnoty buněk z jiného listu o x řádků níže, než byla adresa buňky, ve které byla nalezena požadovaná hodnota. Děkuji.

Lukas V

Přidáno: 15.01.16 19:48

Oprava. " ..který jsi uvedl." ;-)

Lukas V

Přidáno: 15.01.16 20:36

Omlouvám se za spam, ale po prohledávání zdejších článků jsem našel co jsem hledal. FoundCell.Offset(5,0) = ":)". Vepíše smajlika 5 řádků pod adresu hledané hodnoty v buňce. Díky za články. Posílám DONATE

Jan Minařík

Přidáno: 20.09.16 15:48

Potřebuji pomoct, když potřebuji zapsat hodnutu z jednoho listu podle dvou kritérii, jeden sloupec město další sloupec ulice. Děkuji







Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2024 |