< návrat zpět

MS Excel


Téma: Formulář - Listbox - proměnný zdroj rss

Zaslal/a 17.6.2016 21:21

Zdravím,

mám formulář, ze kterého spouštím makro. Ve formuláři mám listbox, kde se načítají .xls soubory, které chci použít jako vstup do makra, což mi bohužel nefunguje. Kód formuláře jsem přiložil. Nevěděl by prosím někdo, jak tento problém vyřešit a jak to pak zapsat do daného makra (jak nahradit „zdroj.xlsx“ v druhém kódu vybranou hodnotou z listboxu v formuláři)?


Dim Adresar As String

Private Sub CommandButton1_Click()
Dim OznacenySoubor As String

Set Adresar = ThisWorkbook.Path & "\Zdroj\"
If ListBox1.ListIndex = -1 Then MsgBox ("Označte soubor."): Exit Sub
OznacenySoubor = Adresar & ListBox1.Value


Select Case True
Case OptionButton1.Value: Call Module1.vyber1 (OznacenySoubor)
Case OptionButton3.Value: Call Module1.vyber2 (OznacenySoubor)
End Select

Unload Me

End Sub

Private Sub UserForm_Activate()
Dim SouboryKtere As String

Adresar = ThisWorkbook.Path & "\Zdroj\"

SouboryKtere = Dir(Adresar & "*.xls*")
With ListBox1
While SouboryKtere <> vbNullString
.AddItem SouboryKtere
SouboryKtere = Dir
Wend
End With
End Sub


Jak nahradit zdroj.xlsx za vybranou hodnotu z listboxu


Application.Workbooks.Open ("C:\Users\usr1\Desktop\J \ zdroj .xlsx"), UpdateLinks:=0

Workbooks("zdroj.xlsx").Worksheets("Data").Range("A40:B65").Copy


Popřípadě jestli to půjde takhle jednoduše nahradit i ve vzorci nepřímého odkazu (tj. název zdrojového sešitu v buňce M2)


Workbooks("makro.xlsm").Worksheets("Start").Range("F2:F28").Select
Selection.FormulaArray = _
"=VALUE(INDIRECT(""'[""&M2&"".xlsx]""&N3&""'!""&O4))"


Díky za pomoc

Zaslat odpověď >

#031798
elninoslov
Dajte si prosím tú práce, a vytvorte prílohu so zverejniteľnou časťou kódu, formulára, listu. Jasnovidectvo je na ústupe už pár storočí, takže je problém uhádnuť na čo myslíte. Aspoň názvy procedúr, ktoré postujete by nemali absentovať, aby sme si dali napr do súvisu, že Váš "druhý" kód, teda tretia procedúra je vlastne to volané makro v module, teda napr. "Module1.vyber1 (OznacenySoubor)".
Ten tretí kód, štvrtá procedúra, je divný. Čo má robiť ten vzorec ? Na čo je tam VALUE a INDIRECT ? Nestačí priamy odkaz na zošit ? Veď ak vkladáte vzorec makrom, tak predpokladám, že ho vkladáte pri zmene v tom listboxe. Alebo nie ? A určite nestačí Formula namiesto ArrayFormula ? Bez prílohy ani ranu !
Sub vyber1(OznacenySoubor As String)
Application.Workbooks.Open ("C:\Users\usr1\Desktop\J\" & OznacenySoubor), UpdateLinks:=0
Workbooks(OznacenySoubor).Worksheets("Data").Range("A40:B65").Copy
End Sub


Polepšite sa 4citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Vynásobit hodnoty kurzem - Power Query

Alfan • 26.4. 7:56

Relativní cesta - zdroje Power Query

Alfan • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

elninoslov • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

lubo • 25.4. 19:18

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 15:12

Relativní cesta - zdroje Power Query

Alfan • 25.4. 15:08

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 14:21