Tak na dynamické objekty už jsi odkaz dostal. Tím nastrkáním do polí myslím práci ve VBA, kdy si objekty (resp. odkazy na ně) vložíš do pole a pak na ně odkazuješ přes to pole. Příklad:
Rem Deklarace pole pro ulozeni odkazu na ComboBoxy ve Frame1 (dynamicke pole)
Dim aCbxFrm1() As Variant
Rem Pridani odkazu na ComboBox do pole
Pocet = Pocet + 1                 ' Promenna POCET obsahuje pocet doposud nactenych comboboxu
ReDim aCbxFrm1(Pocet) Preserve    ' Predeklarovani pole (zvetseni o 1)
Set aCbxFrm1(Pocet) = CbxVyber1   ' Prirazeni odkazu na ComboBox, pojmenovany "CbxVyber1"
Rem Prace s Comboboxy pomoci odkazu v poli
Vyber = aCbxFrm1(1).ListIndex     ' Zjisteni vybrane polozky v Comboboxu
For i = 1 to UBound(aCbxFrm1)     ' Cyklus pres vsechyn Comboboxy v poli
  aCbxFrm1(i).ForeColor = -2147483630   ' Zmena barvy popredi vsech Comboboxu
Next i
Dále, co jsem se ještě zběžně díval, bych Ti doporučil:
- vše z procedury UserForm_Activate přesuň do UserForm_Initialize
- na začátek této části přidej "Application.ScreenUpdating = False" a na konec "Application.ScreenUpdating = True"
- v těch jednotlivých procedurách "nacitajxx" a "naplnxx" vymaž přepínače překreslování obrazovky (Application.ScreenUpdating = False/True). To by mělo odstranit to blikání při startu aplikace
- dále doporučuji vytvořit zkratku na worksheet, zjednoduší to práci (zejména pokud bys potřeboval ten list přejmenovat) a zpřehlední kód:
Rem Deklarace promenne
Dim wsh1 As Worksheet  
Rem Prirazeni
Set wsh1 = ThisWorkbook.Worksheets("Sheet1")
Rem Prace s odkazem (zkrati a zprehledni se kod programu)
UserForm1.CheckBox5 = wsh1.CheckBox5
- pokud to s VBA myslíš vážně, doporučuji tuhle knihu. Sám ji mám pro Excel 2003 a většinu zde uvedených tipů mám právě z té knihy, nemůžu si ji vynachválit.
 
 
