Makro pro zobrazení počtu výskytu určité hodnoty Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Ados
nováček
Příspěvky: 4
Registrován: březen 10
Pohlaví: Nespecifikováno
Stav:
Offline

Makro pro zobrazení počtu výskytu určité hodnoty

Příspěvekod Ados » 28 bře 2010 17:01

Zdravím vás lidi,
prosím vás budte tak hodní a poraďte mi jen s takovou maličkostí, která mi nejde.

Máte tabulku dejme tomu od A1 do F8 s jmény lidí
Pro představu načrtnu sem:

Středisko / Den Pondělí Úterý Středa Čtvrtek Pátek
A Hak Hak Janda Vach Nový
B Nový Nový Hak Flégl Král
C Janda Janda Dobrý Král Vach
D Dobrý Král Král Hak Hak
E Jiřička Starý Jiřička Janda Malý
F Král Flégl Flégl Malý Flégl
G Malý Malý Malý Jiřička Jiřička

1) Vyzve uživatele k zadání libovolného textového řetězce - příjmení (např. Hak)
2) Zjistí počet výskytů tohoto řetězce v tabulce (testuje vyplněnou oblast, která může být libovolně velká)
3) Zobrazí zjištěný výsledek

Já jsem se pokoušel to udělat takto ale nešlo to:

y = InputBox("Zadejte příjmení")
For Each x In Cells(1).CurrentRegion
If x = y Then
MsgBox (y)
' MsgBox (CInt(y))
End If
Next


Jednoduše, všechno funguje akorát to potřebuji nějak překonvertovat aby se v tom MsgBoxu ukázalo číslo, kolikrát je v té tabulce po zadání do InputBoxu to jméno, ovšem mě se pořád ukazuje jen to jméno. :o

Napište mi kdyžtak na mail: mladeznickaa@seznam.cz
Dokud na to nepříjdu, tak dneska neusnu :D ..
Děkuji všem :-)

// Změna názvu tématu z nic neříkajícího "MAKRO JEDNODUCHE - POMOC PROSIM"
// mike007

Reklama
Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13.5
Guru Level 13.5
Příspěvky: 23607
Registrován: březen 10
Pohlaví: Muž
Stav:
Offline

Re: MAKRO JEDNODUCHE - POMOC PROSIM

Příspěvekod ITCrowd » 28 bře 2010 17:32

No, já bych to zkusil přes další proměnnou třeba p.
na začátku bych dal p=0, a po then by bylo p=p+1
a zobrazil bych hodnotu p, což by byl počet rovnosti podmínek, čili počet výskytu jmen.
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Ados
nováček
Příspěvky: 4
Registrován: březen 10
Pohlaví: Nespecifikováno
Stav:
Offline

Re: MAKRO JEDNODUCHE - POMOC PROSIM

Příspěvekod Ados » 28 bře 2010 19:20

Jasně já to chápu ale když tam bude např. pět jmen se stejným názvem tak se ukáže:
MsgBox 1
MsgBox 2
.
.
.
Prostě pětkrát MsgBox přičemž v každém to je postupně v prvním je 1, druhém je 2 atd.
Možná to nějak sečíst. Ale nevim právě.
Dám sem přílohu jak to vypadá a zkuste se na to někdo kouknout.
Má to jen 25 kb
http://uloz.to/4399762/m3.xls

díky moc ..

Ados
nováček
Příspěvky: 4
Registrován: březen 10
Pohlaví: Nespecifikováno
Stav:
Offline

Re: MAKRO JEDNODUCHE - POMOC PROSIM

Příspěvekod Ados » 28 bře 2010 19:39

Tak dobrý,
už jsem to vyřešil, díky moc :-)

Uživatelský avatar
mike007
Master Level 7.5
Master Level 7.5
Příspěvky: 5860
Registrován: srpen 07
Bydliště: Pardubice
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Makro pro zobrazení počtu výskytu určité hodnoty

Příspěvekod mike007 » 29 bře 2010 15:45

A můžeš prosím ostatním uvést jak jsi to vyřešil, ať tu nemáme dotaz bez řešení.
Díky.
Nejlepší hra je Excel!
Pravidla fóra PC-helpJak označit téma za vyřešené
»»»»»»»»»»»»»»»»»»»»»»»
UPOZORNĚNÍ - můj Skype, Soukromé zprávy či email neslouží jako tech. podpora.
Dotazy pište do fóra. Od toho tu je.

Ados
nováček
Příspěvky: 4
Registrován: březen 10
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Makro pro zobrazení počtu výskytu určité hodnoty  Vyřešeno

Příspěvekod Ados » 29 bře 2010 17:54

Takže řešení: šlo vlastně o to udělat aby se každým krokem, kterým projede cyklus For Each tabulku při nalezení zadaného jména do InputBoxu
přičetla k proměnné p +1. A následně MsgBox umístit až za If a For Each, jinak by se objevoval MsgBox pořád dokola s tím, že by se např. jméno vyskytovalo pětkrát, tak pětkrát MsgBox a postupně v každém 1,2,3,4,5. Tímto vám chci poděkovat, až budu zas něco řešit, rád se tu ukážu. Mějte sa ..

Sub Makro1()
' Makro1 Makro

Cells(1).CurrentRegion.Columns(1).Interior.ColorIndex = 10
y = InputBox("Zadejte příjmení, které chcete vyhledat")
p = 0
For Each x In Cells(1).CurrentRegion
If x = y Then
p = p + 1

End If
Next
MsgBox ("příjmení se v tabulce vyskytuje " & p & "krát")
End Sub


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti