< návrat zpět
MS Excel
Téma: kopírování dat mezi soubory
Zaslal/a stejzi 9.1.2025 6:59
Dobrý den, mám makro pro kopírování dat z jednoho souboru do druhého. Občas potřebuji přejmenovat cílový soubor "výkaz hodin.xlsm" např. na "výkaz hodin 2024.xlsm", pak bez úpravy makra nic nefunguje.
Pokouším se přijít na to, jak udělat aby si makro zapamatovalo název souboru, do kterého se má vrátit po zkopírování dat z "PorovnaniHodin.xlsx". Vložit si název do paměti? Pro ukázku jsem makro ořezal jen na základ. Díky za pomoc.
Sub test()
Dim Cesta As String
Dim uzivatel As String
Cesta = "C:\Users"
uzivatel = Application.UserName
Application.DisplayAlerts = False 'potlačí excelová hlášení (např při zavírání souborů)
Workbooks.Open (Cesta & "\" & uzivatel & "\Downloads\PorovnaniHodin.xlsx")
Sheets("Data").Range("A:K").Select
Selection.Copy
Windows("výkaz hodin.xlsm").Activate
Sheets("PorovnaniHodin").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows("PorovnaniHodin.xlsx").Activate
ActiveWindow.Close False
Application.DisplayAlerts = True 'opětovné povolení excelovských hlášené
End Sub
Sub test()
Dim Cesta As String
Dim uzivatel As String
Cesta = "C:\Users"
uzivatel = Application.UserName
Application.DisplayAlerts = False 'potlačí excelová hlášení (např při zavírání souborů)
With Workbooks.Open(Cesta & "\" & uzivatel & "\Downloads\PorovnaniHodin.xlsx")
.Worksheets("Data").Range("A:K").Copy
ThisWorkbook.Worksheets("PorovnaniHodin").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
.Close False
End With
Application.DisplayAlerts = True 'opětovné povolení excelovských hlášené
End Sub
Ak by som videl reálne prílohy, rozmiestnenie, formáty, počet riadkov, kde sú dáta a kde vzorce, orámovanie a pod., tak by som to vedel urobiť bez nutnosti otvárať daný zošit.
citovat
stejzi(9.1.2025 8:47)#057131 Zdrojový sešit není nutné otevírat?
To jsem právě na netu nikde nezjistil.
Není tam žádný vzorec, ani rámování. Jediné co se mění je počet řádků. Zkopírují se jen sloupečky A:K a bez jakéhokoli formátování vloží do cílového souboru. V něm se teprve provádí operace pomocí dalších maker.
citovat
Nejaké príklady. Sú potrebné upresnenia:
-mení sa počet stĺpcov?
-menia sa názvy stĺpcov?
-majú stĺpce hlavičky?
-sú to jednoliate dáta, alebo s medzerami?
-ktorý stĺpec je smerodajný pre počet riadkov?
-výstup má byť tabuľka alebo Tabuľka (objekt)?
...
Příloha: 57132_vykaz_hodin.zip (41kB, staženo 6x) citovat
stejzi(10.1.2025 6:29)#057133 Makro "CopyFormula" - kopírování dat bez formátů, ve sloupečku A:A jsou vždy hodnoty, je bez mezer. Tak ta funguje úplně přesně. Moc děkuji.
citovat