Letko
13.09.19,13:00
Ahojte,

nahral som si makro tak, že otvorím si súbor a vzorový súbor. Do súboru zo vzorového mi natiahne údaje a vzorce. Tých súborov mám veľa. V makre mi pri nahrávaní zadalo názov súboru. Je nejaká možnosť, aby ten názov súboru v makre bol všeobecný tak, aby mi fungoval v každom súbore?

prikladám nižšie:

Sub Trojka()
'
' Trojka Makro
'
' Klávesová skratka: Ctrl+d
'
Windows("03A.xlsx").Activate
Range("AM9:AN12").Select
Selection.Copy
Windows("450 12.xlsx").Activate
Range("AM9:AN9").Select
ActiveSheet.Paste
Windows("03A.xlsx").Activate
Range("A18:AP22").Select
Application.CutCopyMode = False
Selection.Copy
Windows("450 12.xlsx").Activate
Range("A18:A22").Select
ActiveSheet.Paste
Windows("03A.xlsx").Activate
Range("D23:G25").Select
Application.CutCopyMode = False
Selection.Copy
Windows("450 12.xlsx").Activate
Range("D23:G23").Select
ActiveSheet.Paste
Windows("03A.xlsx").Activate
Range("AH23:AK25").Select
Application.CutCopyMode = False
Selection.Copy
Windows("450 12.xlsx").Activate
Range("AH23:AJ23").Select
ActiveSheet.Paste
Windows("03A.xlsx").Activate
Range("A29:AP30").Select
Application.CutCopyMode = False
Selection.Copy
Windows("450 12.xlsx").Activate
Range("A29:I29").Select
ActiveSheet.Paste
End Sub


450 12 by som potreboval urobiť tak, aby sa dalo makro použiť aj v súbore 450 13, 451 00,...

Ďakujem.
ivka70
13.09.19,11:03
Bud ho mozes zadat ako parameter (komplikovanejsie) alebo si pre kazdy vzorovy subor vytvorit makro skopirovanim tohto, kde ten nazov vsade nahradis inym nazvom.
Letko
13.09.19,11:08
Ak by som nahrádzal názov v každom súbore, to by bolo potom pre mňa jednoduchšie urobiť kopírovanie údajov z 1 do 2 súboru ručne. Či neexistuje niečo také ako, vymýšľam, "actualfile" alebo tak.

A ako parameter by to bolo čo?

V živote som vo Visual Basicu nerobil, takže preto hlúpe otázky.
ivka70
13.09.19,11:11
Existuje zadavanie nazvu suboru cez parameter, ale to uz je programovanie, ak si s tym nikdy nerobil tak to nedas. Skus si vygooglit.
To samostatne makro pre kazdy vzorovy subor je jednoduchsia cesta.