Stránka 1 z 2
Doplnění jména do seznamu - ověření dat
Napsal: 22 zář 2010 10:20
od m.niki
Dobrý den, chtěl bych se zeptat, zda je nějaký způsob jak makrem ošetřit následující situaci:
V jednom listě mám v buňce C4 rozevírací seznam přes ověření dat, kdy do buňky vypírám hodnotu ze seznamu z oblasti A2:A118 druhého listu. Chtěl bych, aby v případě, že do buňky C4 manuálně napíšu jméno, které není v seznamu, aby mi místo hlášky "zadaná hodnota není platná" vyskočil dotaz zda ho chci do seznamu doplnit, v případě že ano, aby se doplnilo na konec a propsalo se do buňky C4, v příapdě že ne, tak C4 zůstane prázdné, je toto možná makrem ošetřit?
díky moc, v příloze zasílám vzorový soubor
Re: Doplnění jména do seznamu - ověření dat
Napsal: 22 zář 2010 10:54
od navstevnik
Fukcionalita Overovani nedovoluje doplnovat seznam ani jakoukoliv zmenu overovacich kriterii, proto to je overovani dat.
Celkem jednoduse muzes data do seznamu pridat manualne:
V pripade jmena neobsazeneho v seznamu je po Enter chybove hlaseni, vyber Opakovat, kopirovat (Ctrl+C), Enter, vybrat Storno a vlozit do seznamu Ctrl+V.
Re: Doplnění jména do seznamu - ověření dat
Napsal: 22 zář 2010 11:10
od m.niki
A je možné aby po kliknutí na opakovat provedla kopírování automaticky procedura? seznam bude ve formuláří, ve kterým bude pracovat uživatel u kerého moc nechci aby něco dělal sám se seznamem - bude se jednat o více seznamů, větší množství dat, každá manuální práce je možnost že tam něco přepíše jinak než by měl apod.... nebo je nějaká možnost udělat v buňce C4 rozevírací seznam bez ověření dat a aby ověření proběhlo makrem, které by se spustilo při ukončení zápisu do buňky a provedlo případný zápis do seznamu viz původní dotaz?
Re: Doplnění jména do seznamu - ověření dat
Napsal: 22 zář 2010 11:15
od navstevnik
V pripade, ze pripustis "automaticke doplnovani" seznamu, se stava overovani - tedy ochrana pred vkladanim nezadoucich udaju - prakticky zbytecnym.
Samozrejme ze lze naprogramovat pozadovane, ale k cemu pak Overovani, jedine snad pro usporu psani na klavesnici (pokud nekdo datluje jednim prstem). Ovsem prohledavani dlouheho nesetrideneho seznamu je podstane delsi nez vepsani.
Re: Doplnění jména do seznamu - ověření dat
Napsal: 22 zář 2010 11:19
od m.niki
já tam to ověřování mám kvůli tomu, že tímto zplsobem řeším rozevírací seznam - neznám zplsob jak jej udělat jinak jednodušeji, vždycky mi to takto stačilo. Nejde mi tedy primárně o ověření dat, ale o to, aby v buňce byl rozevírací seznam s možností výběru hodnot již uložených v seznamu, a v případě, že tam tam hodnota nebude, tak aby šla do buňky napsat manuálně a do seznamu se doplnila.
Re: Doplnění jména do seznamu - ověření dat
Napsal: 22 zář 2010 11:29
od navstevnik
Excel 2000-2003 nebo 2007?
Tzv. Overovani se bude tykat jedne bunky nebo bloku benek?
Doplneni do seznamu na potvrzeni?
Rozeviraci seznam nebude v bunce, ale v ovladacim prvku, ma byt seznam setrideny?
Re: Doplnění jména do seznamu - ověření dat
Napsal: 22 zář 2010 11:32
od m.niki
excel 2007,
ověřování bude v jené buňce,
doplnňění seznamu po dotazu ANO/NE
seznam pokud možno setříděný
díky moc
Re: Doplnění jména do seznamu - ověření dat
Napsal: 22 zář 2010 14:22
od Poki
Zkuste tento kod vlozit do modulu listu1
Kód: Vybrat vše
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Found As Boolean
Found = False
If Target.Address = "$C$4" And IsEmpty(Target) = False Then
For i = 2 To Worksheets("Jména").Cells(50000, 1).End(xlUp).Row
If Worksheets("Jména").Cells(i, 1) = Target.Value Then
Found = True
Exit Sub
End If
Next i
If Found = False Then
zprava = MsgBox(Target.Value & " neni v seznamu, chcete ho tam přidat?", vbYesNo, "Jméno není v seznamu")
Select Case zprava
Case vbNo
Target.ClearContents
Target.Select
Case vbYes
Worksheets("Jména").Cells(Worksheets("Jména").Cells(1, 1).End(xlDown).Row + 1, 1) = Target.Value
End Select
End If
End If
End Sub
Re: Doplnění jména do seznamu - ověření dat
Napsal: 22 zář 2010 18:00
od navstevnik
V priloze je doplneny sesit, na listu1 je ovladaci prvek Pole se seznamem pro vyber jmena, vice v priloze.
Pri odebrani jmena ze seznamu seznam "rucne" setridit Data>Seradit>...
.
Re: Doplnění jména do seznamu - ověření dat
Napsal: 22 zář 2010 18:45
od m.niki
Oběma dekuji, ted nemohu otestovat, jsem v praci online jen na mobilu, zitra rano to hned otestuju.
Re: Doplnění jména do seznamu - ověření dat
Napsal: 22 zář 2010 22:16
od m.niki
tak jsem se konečně dostal k PC, otestoval jsem obě řešení:
Pro návštěvníka: funguje perfektně, jen jsem to trošku upravil, do buňky C4 jsem nastavil ověření dat s rozevíracím seznamem a vypnul chybové hlášení, takže potom nebyl třeba seznam v ovládacím prvku, jen jsem musel vymazat řádek který aktualizuje ListFillRange ovladaciho prvku cboSeznam.
Pro Pokiho: také funguje perfektně, stejně jako u návštěvníkova řešení jsem v buňce C4 u ověření dat vypnul chybové hlášení ověření dat.
Moc děkuji vám oběma a smekám před vašimi znalostmi.
Re: Doplnění jména do seznamu - ověření dat
Napsal: 22 zář 2010 23:41
od navstevnik
V procedure v modulu List2 si uprav radek na: .Header = xlGuess