Těch tlačítek je v tomto konkrétním listu (List 3) celkem 8, a jmenují se Button 1, Button 2 atd..Proto jsem Vám poslal ten poslední kód, kde jsem úmyslně zahrunul jen první dvě tlačítka, abych věděl, jestli to půjde, ale nejde. Tak jeětě jednou, tento kód používám pro export a jsem s ním spokojený, až na ty tlačítka, které mi sice při následném importu do shopu nevadí, ale byl bych raději, kdyby tam nabyly. Takže samotný kód je tento. A já ho potřebuju upravit, aby exportoval bez tlačítek.
--------------------------------------------------
ThisWorkbook.Worksheets("List 3").Copy
With ActiveWorkbook
With .Worksheets(1).UsedRange
.Copy
.PasteSpecial Paste:=xlPasteValues
R = .Parent.Cells(Rows.Count, "A").End(xlUp).Row
.Resize(.Rows.Count - R + 1).Offset(R, 0).EntireRow.Delete Shift:=xlUp
End With
Application.DisplayAlerts = False
.SaveAs "C:\Users\DELL i7\Desktop\IMP Produkty\import1.xlsx", xlOpenXMLWorkbook
Application.DisplayAlerts = True
.Close False
End With
Já se Vám ani nedivím Elnino, mě už se o tom i zdá. Vyřešil jsem to vnořenýma funkcema KDYŽ, je to pro mě přehlednější, než pomocný sloupec. U těch výrobců to budu muset udělat jak jste psal s těmi maticovými vzorci (až je pochopím) , protože jich je docela dost a hlavně přibývají. U těch dárků je to víceméně stejné a je jich jen pár. Máte svatou trpělivost a moc si toho vážím. Tak, nebo tak jste mě strašně posunul vpřed, i když cíl je ještě hóóódně daleko
Já Vám rozumím Elnino, ale kam to mám zakomponovat? Když používám tento kód?
------------------------------------------------------------------------------
Sub akce_tydne_export_new_final()
ThisWorkbook.Worksheets("List 3").Copy
With ActiveWorkbook
With .Worksheets(1).UsedRange
.Copy
.PasteSpecial Paste:=xlPasteValues
R = .Parent.Cells(Rows.Count, "A").End(xlUp).Row
.Resize(.Rows.Count - R + 1).Offset(R, 0).EntireRow.Delete Shift:=xlUp
End With
Application.DisplayAlerts = False
.SaveAs "C:\Users\DELL i7\Desktop\NÁZEV.xlsx", xlOpenXMLWorkbook
Application.DisplayAlerts = True
.Close False
End With
End Sub
-----------------------------------------------------------------------
Když to udělám takto, nefunguje to.
Sub akce_tydne_export_new_final()
ThisWorkbook.Worksheets("List 3").Copy
With ActiveWorkbook
With .Worksheets(1).UsedRange
.Copy
.PasteSpecial Paste:=xlPasteValues
R = .Parent.Cells(Rows.Count, "A").End(xlUp).Row
.Resize(.Rows.Count - R + 1).Offset(R, 0).EntireRow.Delete Shift:=xlUp
ActiveWorkbook.Worksheets(List 3).Buttons(Array("Button 1", "Button 2")).Delete
End With
Application.DisplayAlerts = False
.SaveAs "C:\Users\DELL i7\Desktop\NÁZEV.xlsx", xlOpenXMLWorkbook
Application.DisplayAlerts = True
.Close False
End With
End Sub
Tento kód mi to vyexportuje perfektně, akorát, že tam zůstanou tlačítka.
Tak už jsem na to přišel, jen jsem nevěděl, jak používat vnořené funkce
Už jsem to pochopil, psal jste to "maticový vzorec" Přesto se zeptám, šlo by to i jednodušeji? Resp: v případě výrobců bych to použil, vzhledem k jejich počtu, ale hodilo by se mi to pro případ třeba jen 10-ti variant slov, bez pomocného sloupce. Myslíte, že by to šlo? Ideálně funkcí "Když" Když například B2 obsahuje určitý přesný text, vloží do A1 zvolené slovo, to zvládnu, ale když těch frází potřebuju třeba 5? Napíšu to jednodušeji v A1-A5 mám prázdné buňky. V B1-B5 mám Dárek č.1, Dárek č.2, Dárek č.3, Dárek č.4, Dárek č.5 a já na základě třeba dárku č.5 potřebuju, aby se mi do A5 napsala propiska atd. Potřebuju jen těchto 5 frází.
Tak jestli jste mi někdy zamotal hlavu,tak právě teď. Marně se snažím pochopit, odkud ten vzorec bere toho výrobce. Je mi jasné, že ze sloupce F, ale na jakém základě? To z toho vzorce nejde nijak vyčíst. Můžete mi to trochu osvětlit?
=IFERROR(INDEX(VYROBCI;POZVYHLEDAT(PRAVDA;COUNTIF(A2;"*"&VYROBCI&"*")>0;0));"")
Ano, to je přesně ono Elnino. Chápu, že mám asi občas triviální dotazy pro takové borce, jako jste Vy, ale teprve se učím. Hodně jste mi už v mém učení pomohl a mnohdy ukázal směr, ale stále jsem velký zelenáč. Tak snad se to bude zlepšovat. Děkuji!
Ta druhá varianta funguje, nicméně dělá mi to pak chybu při použití jiného tlačítka. K té první variantě nevím, co myslíte tím jmenným seznamem. Myslíte názvy tlačítek? Viz "najít a vybrat / poddokno výběru? Tam mám Button 1 a Button 2, ale nevím, jak to zakomponovat. Jinak řešili jsme to a funguje to bez problémů, tohle mám od Vás.
Sub akce_tydne_export_new_final()
ThisWorkbook.Worksheets("List 3").Copy
With ActiveWorkbook
With .Worksheets(1).UsedRange
.Copy
.PasteSpecial Paste:=xlPasteValues
R = .Parent.Cells(Rows.Count, "A").End(xlUp).Row
.Resize(.Rows.Count - R + 1).Offset(R, 0).EntireRow.Delete Shift:=xlUp
End With
Application.DisplayAlerts = False
.SaveAs "C:\Users\DELL i7\Desktop\NÁZEV.xlsx", xlOpenXMLWorkbook
Application.DisplayAlerts = True
.Close False
End With
End Sub
Tento kód mi to vyexportuje perfektně, akorát, že tam zůstanou tlačítka.
Elnino, nevím, jestli něco dělám špatně, nebo jsem to nepochopil, ale nějak mi to nejde. Viz příloha.
Ještě bych se Vás zeptal Elnino. Když v exportovaném listu mám ovládací tlačítka, vyexportuje se mi to i s nimi. Jde nějak do toho kódu zakomponovat, aby tomu tak nebylo a zůstal čistý excelový soubor? Děkuji
Poprosil bych o radu. Potřebuji, aby se mi do buňky B1 vypisovala část zadaného textu z buňky A1. Buňky ve sloupci A obsahují názvy produktů, kdy v každém názvu je uveden výrobce. Já potřebuju, aby se mi do druhého sloupce, v tomto případě B vypisoval pouze ten výrobce. V případě jednoho výrobce to zvládnu, ale nevím, jak vzorec rozšířit o další výrobce, které tam samozřejmě napíšu. Viz například:
V A1 je "Pánská sálová obuv Victor A362 RG" a já tedy vím, že v seznamu výrobců je Victor. Napíšu tedy vzorec do B1
=KDYŽ(JE.ČISLO(HLEDAT("Victor";A1));"Victor";"")
Já zkrátka do této funkce potřebuju vepsat třeba 50 výrobců.
Děkuji za ochotu.
Perfektní, opět moc děkuji Elnino.
Je to nakopírováno do nového sešitu a vloženo jako hodnota. Formát data je tedy původně textový 2022-11-21, ale tím, že je nakopírovaný jako hodnota zůstáva ve správném formátu 2022-11-21. Když to ale vyexportuju, je tam formát datum 21.11.2022.
Dobrý den, používám pro export samostatného listu níže uvedený kód. Ten mi sice list správně exportuje, ale pravděpodobně všechny buňky s obecným formátem. Já ale používám různé formáty např: datum a potřebuju ho vyexportovat se stejným formátem buňky. Takto se mi ten formát změní na výchozí obecný.
Sub export()
ThisWorkbook.Worksheets("List2").Copy
With ActiveWorkbook
With .Worksheets(1).UsedRange
.Value = .Value
R = .Parent.Cells(Rows.Count, "A").End(xlUp).Row
.Resize(.Rows.Count - R + 1).Offset(R, 0).EntireRow.Delete Shift:=xlUp
End With
Application.DisplayAlerts = False
.SaveAs "C:\Users\DELL i7\Desktop\final.xlsx", xlOpenXMLWorkbook
Application.DisplayAlerts = True
.Close False
End With
End Sub
S makrem mi to funguje, pokud ty prázdné hodnoty nahradím nějakým textem (který se nikde nevyskytuje), pak ho znovu nahradím prázdnou hodnotou. Takže dostačující.
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.