Public Sub radky2()
Application.ScreenUpdating = False 'zakázat vykreslování v průběhu makra - zvýší rychlost
Dim radek As Long
radek = 1
Do While Cells(radek, 1) <> "" 'maximum řádků na listu, ale lze nastavit vlastní a nižší šíslo - makro pak bude rychlejší protože bude ověřovat jen třeba 2000 řádků
Rows(radek + 1).Resize(2).EntireRow.Insert ' Cells(radek + 1, 1).EntireRow.Insert
radek = radek + 3
Loop
Application.ScreenUpdating = True 'povolit vykreslování
End Sub
Private Sub CommandButton1_Click()
Dim Radek As Long
With Worksheets("List2")
Radek = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(Radek, 1).Value = Worksheets("List1").Cells(1, 1).Value
End With
End Sub
Tohle by mělo pomoct:
Select Case True
Case Item Like "*A*": X_X = 10
Case Item Like "*B*": X_X = 11
Case Else: X_X = 12
End Select
Např:
Sub prepis_komentar()
Dim Oblast As Range
Dim Bunka As Range
Set Oblast = Range("A1:A20")
For Each Bunka In Oblast
If Not Bunka.Comment Is Nothing Then
Bunka.Comment.Text Text:=Replace(Bunka.Comment.Text, "f", "7")
End If
Next Bunka
Set Oblast = Nothing
End Sub
Upraveno
Ten kód co si sem vložil běží 10 minut?
A když vypneš překreslování obrazovky a automatický přepočet listu? (viz soubor)
Jednoduše.
Řešení maticovým vzorcem. Jeho ukončení se provede trojkombinací CTRL+SHIFT+ENTER
Sakra ještě ten soubor.
Proboha odkud se berou ty soubory *.xls?
Při otevření hlásí chybu viz obr.
Předělal sem kód, protože vzorce vracely chybu #odkaz
a upravil rozsahy buněk. Né u všech souborů xls začínají data na řádku 31 !
Je to sice pomalé, ale vypadá to, že i snad funkční.
Otestuj.
zdroje:
Několik knih o VBA a internet, převážně zdejší fórum a youtube
WiseOwlTutorials
Excel Macro Mastery
Leila Gharani
atd...
No, to si to zadání, ale sakra změnil.
V příloze máš pokus o řešení. Kód je sice jako když pejsek a kočička vařili dort - původně sem se chtěl držet zvolenýho postupu a používat vzorce bez nutnosti soubory otevírat, což se povedlo jen částečně. Nakonec sem byl stejně dokopán k otevření souboru. Část dat se tedy tahá pomocí vzorců a další část je přes pole.
Kód dokáže načítat jak soubory xls tak xlsx nebo xlsm.
Jeden sešit sem pro ukázku uložil jako xlsx a upravil rozmístění dat, která nezačínala na řádku 31, jako v ostatních případech.
Možná se ukáže Elnino a dá tomu štábní kulturu
Udělal sem takový nástřel možného řešení.
Makro vytvoří současně seznam souborů i jejich hodnoty z buňky A1. Není potřeba spouštět 2 makra, vše se vyřeší v jednom cyklu.
K získání hodnot z jednotlivých listů sem použil metodu, kterou s oblibou používá Elninoslov©.
Nedochází k otevírání jednotlivých souborů, do buněk se vloží vzorec (odkaz) na buňku, který se následně převede na hodnotu. Makro je rychlejší.
PS: Samozřejmě by se dali udělat další úpravy, jména souborů a hodnoty by se načítaly do polí a následně až vložily do příslušných listů, což by mělo být zase o kousek rychlejší ...
Celé sem to několikrát přečet a není mi zcela jasný, jak si představuješ funkci.
Má se vytvořit seznam souborů ve složce a z toho seznamu se budou vybírat konkrétní soubory? Proč?
Buď si přes dialog rovnou vybereš konkrétní soubory a provedeš import dat, nebo ve smyčce projdeš celý adresář DATA a import provedeš ze všech souborů.
Jak píše Kabaka
=2000/86400 a buňku naformátuješ na čas což vrátí => 0:33:20
pak už jen sčítáš časy.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
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.