< návrat zpět

MS Excel


Téma: Ovladani jineho souboru makrem rss

Zaslal/a 26.1.2018 0:41

Dobrý den,
potrebuju ovladat jednim souborem radu dalsich.
vytvroil jsem si makro, ktere chci spoustet ve vsech ovladanych souborech, ale nedari se mi to rozchodit.
vsechny "podsoubory" mam v jedne slozce a halvni makro by je melo po jednom pootvirat a v kazdem spustit dalsi makro.
nevim jak zadat cestu do souboru. navic pri otevirani kazdeho souboru, excel vyhodi hlasku "Soubor, který chcete otevřít.. je v jiném formátu , než určuje přípona souboru...Chcete soubor nyní otevřít?" potreboval bych aby makro automaticky odpovedelo Ano.
Sub nejmakro()
Application.ScreenUpdating = True

'On Error GoTo my_error

Dim poleNazvu()
Dim a As Integer
Dim c As Integer
Dim x As Integer

Dim xlApp As New Excel.Application

w = Range("List1!i4").Text
'nacte adresu slozky se zdrojovymi soubory

MyFile = FileSystem.Dir(w & "\" & "*.*")


Do While MyFile <> ""
ReDim Preserve poleNazvu(x)
poleNazvu(x) = MyFile
MyFile = FileSystem.Dir
x = x + 1
Loop

a = UBound(poleNazvu) + 1
'spocita soubory ve slozce
Range("a1").Value = a

Application.ScreenUpdating = True
For c = 0 To a - 1
xlApp.Workbooks.Open (w & "\" & poleNazvu(c))


Application.Run "'" + poleNazvu(c) + "'" + "!makro25"

'a je pocet souboru, poradi posledniho je ale a-1

xlApp.Workbooks(poleNazvu(c)).Close
Next

Application.ScreenUpdating = True

'my_error:
'If Err.Number = 1004 Then

Range("B1").Select
ActiveWorkbook.Save

End Sub

Zaslat odpověď >

Strana:  « předchozí  1 2
#039537
elninoslov
Ak myslíte "vidieť" ako v zozname dostupných makier pri priraďovaní napr. tlačítku, tak tam to predpokladám nebude z jednoduchého dôvodu - je to iná inštancia Excelu. Teda samostatne spustený program, ktorý nemá z inými nič spoločné. Môžete k makrám pristupovať iba cez premennú xlApp, čo je odkaz na tú druhú inštanciu Excelu. Nemám čas to skúšať, je to len domnienka.citovat
#039538
avatar
Matka je hlavni soubor, ktey by mel otevrit soubory ve slozce a spustit v nich makro (ktere je vepsano v matce).
Příloha: rar39538_pokus.rar (35kB, staženo 20x)
citovat
#039539
elninoslov
Vy stále píšete že chcete v matke "spúšťať makro v otvorených zošitoch". To je úplne zlý popis. Vy chcete spúšťať matkine makro nad otvorenými zošitmi. To je niečo úplne iné. To čo voláte teraz je "makrobla", ktorý v tých otváraných súboroch nieje. Tam je "makro26".

Čo chcete teda robiť ?

Namiesto xlApp.Run... použite:
Call Vykonavacie_makro(xlApp.ActiveWorkbook)
A na konci procedúry "nejmakro" zabúdate zrušiť inštanciu (čo na to správca procesov vo Win ? Koľko tam máte Excelov pri ladení ?).
xlApp.Quit
Set xlApp = Nothing


Vykonávacie makro, umiestnené v matke:
Sub Vykonavacie_makro(WB As Workbook)
'POZOR ! Do A1 napíše "Halóó" !
'Sem vložte požadované operácie nad otvorenými zošitmi,
'ale POZOR (!) vždy sa na zošit odkazujte cez premennú WB,
'ktorá teraz obsahuje zošiť z xlApp.
WB.Worksheets(1).Cells(1, 1).Value2 = "Halóó"
End Sub
citovat

Strana:  « předchozí  1 2

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje