Příspěvky uživatele


< návrat zpět

Strana:  « předchozí  1 2 3 4 5 6   další »

Dobrý den,

V příloze mám ukázkový příklad, ve kterém pomocí cells kopíruji konkrétní (jednotlivé) buňky. Je možné definovat resp kopírovat oblast buněk pomocí cells?

defakto potřebuji např. zápis

Worksheets("List2").Range("B7:D21") = Worksheets("List1").Range("B9:D23") nahradit zápisem pomocí cells, jelikož využívám cyklus DO WHILE a potřebuji se v případě neprázdné buňky posunout o 5 sloupců vpravo.

Napadá mě kopírovat každou buňku separátně, což znamená dalších 45 řádků kódu, ale možná to jde nějakou jednodušší cestou?

Logika kopírování je doufám pochopitelná z přílohy (pokud je pole B2 Listu 2 prázdné, uloží se data z Listu1 po kliknutí na tlačítko data do první tabulky na Listu2, pokud prázdné není, testuje se obsazenost pole G2 atd.)

Za postřehy děkuji

Miroslav

Díky moc, funguje skvěle. Existenci daného adresáře si ošetřím. Co se týče existence souboru o stejném názvu, nabídne excel sám možnost přepisu stávajícího souboru.

Problem solved

ještě jednou díky

Dobrý den,

poradí prosím někdo, jakým způsobem uložit více listů do samostatného souboru?

Uložit celý sešit do nového souboru není problém (viz příloha), ale nevím si rady s uložením vybraných listů (např. list "faktura" a "doprava"). Případné vzorce by měly zůstat zachovány, nechci kopírovat jen hodnoty.

Příkazem Sheets(Array("faktura", "doprava")).Copy jsem schopen vytvořit nový soubor pouze s těmito listy, ale bohužel jsem nepřišel na to, jak tento nový soubor uložit (název by měl být vytvořen stejným způsobem, jak je uvedeno v příloze tzn. název "sample_" + text z buňky A1 na listu faktura).

Díky moc

Miroslav

Odzkoušeno, funguje skvěle.

Jen nevím, jak je bezpečné mít v outlooku povolena všechna makra. Předpokládám, že záleží jako vždy na edukaci uživatele. 1

Každopádně děkuji mockrát.

Dobrý den,

Je prosím možné v Outlooku nadefinovat vlastní tlačítko, po jehož odkliknutí by se spustilo makro, které by ze zadané cesty ke konkrétnímu souboru automaticky vytvořilo hypertextový odkaz k tomuto konkrétnímu souboru?

V příloze je názorná grafika, jak by to mělo fungovat.

Díky moc

To je přesně ono, geniální! :-)

díky moc

Asi jsem to popsal poněkud nešťastně.

@ JoKe: takhle to právě nechci, uvádím to i v tom svém prvním kódu

@ elninoslov: chci vždy natvrdo kopírovat konkrétní listy, v uvedeném příkladu leden a únor (když bude checkbox zaškrtnutý) a duben, když zaškrtnutý nebude.

chci se vyhnout řešení pomocí:

ThisWorkbook.Worksheets(Array("leden", "unor")).Copy

Když ten svůj dotaz zjednoduším, tak potřebuji do proměnné rozsah nacpat názvy dvou listů (leden a unor), a to se mi právě nedaří. Prostě něco ve smyslu:

rozsah = "leden", "unor"

aby mi pak fungovalo níže uvedené makro pro leden a unor (při zaškrtnutém checkboxu). V makru mám záměrně nyní jen leden pro ilustraci, že makro pro kopírování samostatných listů funguje. Jen místo leden bych tam chtěl dostat leden a unor. Jde to vůbec tímto způsobem?

Pevně doufám, že už je to srozumitelné.

Private Sub CommandButton1_Click()
If CheckBox1.Value = True Then
rozsah = "leden"
Else
rozsah = "duben"
End If
ThisWorkbook.Worksheets(Array(rozsah)).Copy
End Sub

Dobrý večer,

mám jednoduché makro, které kopíruje buď list "leden" nebo list "duben" podle toho, zda je zaškrtnuto zaškrtávací políčko. Nyní bych chtěl docílit toho, aby se při zaškrtnutém políčku ze sešitu zkopírovaly dva listy "leden" a "unor".

Samozřejmě bych to mohl udělat jednoduše, ale to nechci, jelikož to hodlám napasovat do kódu, který je už sám o sobě velmi dlouhý, je v něm několik větvení atd. Tímto dalším zapodmínkováním bych ho defakto ještě zdvojnásobil.

Private Sub CommandButton1_Click()

If CheckBox1.Value = True Then

ThisWorkbook.Worksheets(Array("leden", "unor")).Copy

Else

ThisWorkbook.Worksheets(Array("duben")).Copy

End If

End Sub


Rád bych to udělal následujícím způsobem, který pro samostatné listy funguje. Nevím, jak rozšířit rozsah o další list "unor". Zkoušel jsem několik zápisů, ale bezvýsledně. Lze to tímto způsobem vůbec provést?

Snad jsem to popsal srozumitelně.

Za postřehy děkuji

Private Sub CommandButton1_Click()

If CheckBox1.Value = True Then

rozsah = "leden"

Else

rozsah = "duben"

End If

ThisWorkbook.Worksheets(Array(rozsah)).Copy

End Sub

Dobrý den,

řešení od opičáka defakto ukládá do log souboru veškeré otevření souboru (i bez jakékoli editace). Poradí někdo prosím, jak to udělat, aby se do logu zapisovaly jen údaje (čas + datum + jméno příslušného uživatele) pouze v případě skutečné editace?

díky za feedback

Pomohl by mi to prosím někdo trochu ozřejmit?

rozumím tomu zhruba takhle:

-Jedná se o událostní proceduru, která se spouští při každé změně příslušného listu.

-Proměnné rng je přiřazeno pole A1:F10

- pokud neexistuje průnik mezi "Target" a rng, bude formátování smazáno (zde netuším, co je to target resp co obsahuje target... beru to logicky jako test, zda je označená buňka v uvedeném poli prázdná. Mohl by mi někdo blíže vysvětlit ten target (je to proměnná? jak se plní hodnotami? jak funguje?)

- rng.FormatConditions(1) ta jednička na konci v závorce funguje jako else k podmínce If (If Not Intersect(Target, rng) Is Nothing Then)? Jedná se jen o nějaký zjednodušený zápis?

díky moc

Díky za váš čas pánové. Jak píše Zbygi, tak mi řešení od JoKe taky nefunguje. Zbygiho řešení funguje, ale našel jsem ještě jedno řešení, které funguje ještě lépe.

Není to bohužel z mé hlavy a upřímně řečeno, úplně do detailu tomu kódu nerozumím.

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
Set rng = Range("A1:F10")
If Not Intersect(Target, rng) Is Nothing Then
With rng.FormatConditions
.Delete
.Add xlNoBlanksCondition
End With
With rng.FormatConditions(1)
.Borders.LineStyle = xlContinuous
With .Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent3
.TintAndShade = 0.399975585192419
.PatternTintAndShade = 0
End With
End With
End If
End Sub

Pánové děkuji za pomoc. Řešení od JoKE je super a defakto dělá to, co od toho čekám. Jediné co chybí je to ohraničení.

Jak jsem psal v jednom z mých předchozích příspěvků, dokážu první problém vyřešit pomocí referenční buňky.

Nyní mi šlo již jen o to ohraničení, aby u sloučených buněk bylo kolem dokola.

img

@JoKe

tím to bohužel není... i když prvně smažu obsah sloučené buňky a teprve potom ji rozdělím, zůstane podmíněné formátování zachováno jen v buňce, která byla ve sloučené buňce úplně vlevo (v ostatních buňkách bohužel ne).

@marjankaj

přikládám screeny, jak se mi to Vaše řešení chová
Podmíněné formátování po kliknutí na "sloučit buňky" nefunguje bohužel nikde (do buněk samozřejmě píšu nějaký text, abych ověřil funkčnost formátování - nefunguje 4 )

img

img

img

Tu přílohu jsem nějak nepochopil. Po kliknutí na sloučit vybrané buňky dojde sice ke sloučení buněk, ale podmíněné formátování přestane úplně fungovat.

Používám Microsoft Office Proffesional Plus 2016

No, já bych rád to podmíněné formátování zachoval, tak jak funguje ve zbytku definované oblasti. Takhle bych musel i nesloučené buňky nejdříve pomocí VBA "obarvit/ohraničit" a teprve poté bych zapsal příslušné jméno.

Našel jsem, myslím, elegantnější řešení. Do jiné buňky mimo definované pole vložím stejné podmíněné formátování. Tato buňka bude sloužit jako reference následujícím způsobem. Pod tlačítko rozdělit buňky vložím kód, díky kterému se do všech rozdělených buněk překopíruje podmíněné formátování z referenční buňky. 1

Co se druhého problému s ohraničením týče tady zřejmě narážím na jistou "nedokonalost" excelu, kterou dle mě vyřešit nelze. Ano lze to obejít způsobem jaký navrhl Zbygi, ale není to to pravé ořechové. Každopádně bez celistvého ohraničení sloučených buněk asi žít můžu. 1 Je to v podstatě jen optická záležitost.

@marjankaj: ručně to podle mě uživatel měnit nebude.

1. Bude to obsluhovat jeden člověk, případně jeho zástupce (dvěma lidem to snad vysvětlím 1 )

2. Člověk je tvor líný a slučování/rozdělování buněk je pomocí tlačítek rychlejší a "more user friendly". Pomocí pravého tlačítka myši, přes formát, zarovnání je to zkrátka zdlouhavé.

Každopádně děkuji oběma za vaše podněty


Strana:  « předchozí  1 2 3 4 5 6   další »

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse

excell uprava riadku vzorca

orangezradca • 13.6. 20:37

pomala tlac s exelu

jano5 • 12.6. 9:44

GRAF teploty

JoKe • 12.6. 9:22

Filtrování dat

Imh0tep • 12.6. 8:35

Filtrování dat

Lader • 11.6. 23:22

Filtrování dat

Imh0tep • 11.6. 21:15

Zjištění směny dle data a času

Ontik • 11.6. 14:23