problém 1) (kod je orientační, ten nekomenetujte, presny mam v praci, zajima me spis logika a procedury) VBA (excel 2003) 'vytvořit nový list v sešitě private sub novylist dim novy as string dim i as integer dim existuje as boolean existuje = false novy = input box("zadejte nazev") i = 0 for i = 0 to listboxseznamlistu.listcount if Cstr(listboxseznamlistu.listindex(i)) = Cstr(novy) then existuje = true endif next if existuje = true then elseif existuje = false sheets.add.name = novy endid end sub přidání error handleru mi nepomůže, protože excel automaticky vytvoří "list1" místo ba ynevytvořil na chybě nic. vůbec mám problémy pochopit ty proměnné...... kdykolic se snažim využít porovnání s nějákým polem nebo obsahem listboxu, nikdy to nefunguje, budot to prostě nedělá nic (nenajde shodu) nebo hodí chybu type mismatch. listbox byl nasycen _onload dim y as integer y = 0 for y = 0 to active.workbook.sheetscount listbox additem = activeworkbook.sheets.name(y) next y existuje nějáká krácený metoda na zjištění, zda jedna variable je členem nějákého ovládacího prvku nebo pole? nebo je jediná možnost kombinca boooleanske a for logiky jako mam vyse? (presny kod mam v praci, mozna mam nekde drobne nepresnosti, ty prosim ignorujte, v praci to jelo bez bugu velmi pěkné stránky 2) přidání řady do listboxu nebo pole pokud jsou data v excelu ve sloupci, lze je snadno zadat do listboxu: listbox.list = range(othersheet!A2:A100) jak to same ale udelat pro rady se mi nepovedlo zprovoznit, listbox ukazoval blbosti predpokladam ze musi byt pouzita nejaka metoda transpozice? v soucasne dobe mam kod za ktery se stydim: listbox.additem range(A1:A1) listbox.additem range(B1:B1) listbox.additem range(C1:C1) .... určitě existuje lepší způsob 3) dále mám dim user as string user = listbox.value puvodně jsem chtel využít pole, což by byl mnohem lepší kod, ale opět se objevil nenáviděný nepřítel type mismatch z příkladů zde ani jinde to nemůžu pochopit, protože jsou moc jednoduché
|